5分K當沖交易指標請益

  •   624 
  • 最後發表   kaijhen  2023 三月 14
kaijhen 發文於   2023/03/11

希望在每日的第二根5分K決定進場,前K收紅就判斷進多單,前K收黑就判斷進空單

後續當趨勢終止,就反手交易,另外希望這個指標是即時的,在盤中價格符合就觸發

因為是新手,第一次嘗試寫程式,問的問題可能有點蠢XD

目前待解決,

1.如何從第二根k棒開始執行

2.如果在盤中觸發條件時就執行,而不用等收K

 

var:priceA(0); //多單進場價格

var:priceB(0) ;//空單進場價格

var:count(0); //交易次數

var:openK(0); //開盤價

var:closeK(0); //收盤價

var:currentPrice(0);  //現價

var:sub(0);//每次進場損益點數

var:tickA(0);//多方交易次數

var:tickB(0);//空方交易次數

OpenK = GetField("Open", "5"); // 開盤價

CloseK = GetField("Close", "5"); // 收盤價

CurrentPrice =GetField("Close", "1"); // 1分鐘收K現價

sub = closek-openk;

condition1=currentPrice > openK[1];

condition2=currentPrice < openK[1];

 

if getfield("Date") <> getfield("Date")[1]  and condition1=false and tickA=0 then begin  //第一根K收紅,未有交易紀錄

    priceA=closek+2;//第一口多單價格

plot1(priceA,"多單進場價");

tickA=tickA+1;

plot4(tickA,"多單累積交易次數");

end

    else if getfield("Date") <> getfield("Date")[1] and condition1=false and tickB=0 then begin //第一根K收黑,未有交易紀錄

    priceB=closek-2;//第一口空單價格

plot6(priceB,"空單進場價");

tickB=tickB+1;

plot9(tickB,"空單累積交易次數");

end;

 

if condition1 and condition1[1] = false and time >085000 and tickB>0 then //已有空單,現價>前K開盤,反手做多

      begin 

      priceA=closeK[1]+2 ;//多單於前K收盤價+2進場

plot2(priceA,"反手多單進場價");

plot3(priceB-priceA,"空單獲利點數");

plot4(tickA,"多單累積交易次數");

 

 

end 

   else if condition2 and condition2[1] = false and time >085000 and tickA>0   //已有多單,現價<前K開盤,反手做空

   then begin

         priceB=openk[1]-2; //空單於前K收盤價-2進場

plot7(priceB,"反手空單進場價");

         plot8(-(priceA-priceB),"多單獲利點數");

plot9(tickB,"空單累積交易次數");

 

 

 

end; 

 

 

 

 

 

     

 

XQ小幫手 發文於   2023/03/14

Hello kaijhen,

 

小幫手會建議您先從簡單的功能寫起,會比較容易掌握如何撰寫的訣竅,debug也比較容易。

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

 

1.您可以用time來控制,舉例來說使用在1分鐘頻率上的話:

if time = 090100 then begin     //如果是開盤第二根Bar

    ...

    end;

 

2.您的策略設為逐筆洗價就可以。

由於您這邊的腳本是指標腳本,所以預設就會是逐筆洗價的狀況。

 

另外需注意,若您的變數要保存 Bar 內運算值的話,在宣告時要使用 intrabarpersist 語法。

發表回覆
Close