期貨程式碼

  •   285 
  • 最後發表   友利環保  2021 九月 10
友利環保 發文於   2021/09/08

小幫手您好 想問簡單的期貨程式碼

 

條件:

日K值<日D值        作空1口

週K值<週D值        作空1口

 

 

 

 

日K值>日D值        作多1口

週K值>週D值        作多1口

 

程式碼:

 

var: 

long_condition(false), { 是否做多 }

exit_long_condition(false), { 是否多單出場 }

short_condition(false), { 是否做空 }

exit_short_condition(false);{ 是否空單出場 }

 

作空1口

condition1 = _k cross over _d; //日K向上穿越日D

condition2 = _wk cross over _wd; //週K向上穿越週D

 

作多1口

condition3 = _k cross under _d; //日K向下穿越日D

condition4 = _wk cross under _wd; //週K向下穿越週D

 

if Position <> 1 and long_condition=(0 or condition3 or condition4) then begin

{ 如果符合做多情境(long_condition), 則把部位變成1 (可能是0->1 or -1->1) }

SetPosition(1);

 

end else if Position <> -1 and short_condition=(0 or condition1 or condition2 ) then begin

{ 如果符合做空情境(short_condition), 則把部位變成-1 (可能是0->-1 or 1->1) }

SetPosition(-1);

 

end else if Position = 1 and exit_long_condition then begin

{ 如果已經做多, 且發生多方出場情形時(exit_long_condition), 則把部位變成0 }

SetPosition(0);

 

end else if Position = -1 and exit_short_condition then begin

{ 如果已經做空, 且發生空方出場情形時(exit_short_condition), 則把部位變成0 }

SetPosition(0);

end;

 

請問這樣程式碼有錯嗎   如果有應該要怎麼修改

謝謝解惑

XQ小幫手 發文於   2021/09/10

Hello 友利環保,

 

您的腳本裡沒有計算KD值,所以您的_k跟_d都會是0。

exit_long_condition 和 exit_short_condition 沒有設條件,所以一直都會是 False。

long_condition 和 short_condition 是 True/False 變數,不能儲存數值。

另外您的 position = 1 與 position = -1 的條件式不會觸發,因為上面的 position <> 1 與 position <> -1 會先觸發。

附上修改後的腳本供您參考。

網站上的教學頁面有XS語法與功能的介紹。

 

附加文件

發表回覆
Close