請問期貨自動交易的移動停損點數 有大神可以教一下嗎?

  •   563 
  • 最後發表   swer  2022 一月 07
swer 發文於   2022/01/05

請問期貨自動交易的移動停損點數 有大神可以教一下嗎?

排序方式: 標準 | 最新
swer 發文於   2022/01/05

// 宣告參數

input: Shortlength(10,"短期均線期數"), Longlength(20,"長期均線期數");

 

// 資料讀取筆數設定

settotalbar(5000);

setbarback(maxlist(Shortlength,Longlength,6000));

 

// 多方進場策略:短期均線「黃金」交叉長期均線。

if Average(Close,Shortlength) Cross Above Average(Close,Longlength) then setposition(1);

 

{

多單移動停損(點)

 

設定停損點, 跟停利點(如果不設定停利的話請把profit_point設定成0)

價格碰觸到停損/停利點時出場

如果價格上漲時, 停損點會跟著上漲

}

 

input: profit_point(0, "停利(點)");

input: loss_point(50, "停損(點)");

 

var: long_condition(false); { 進場買進作多 }

 

範例:

 

均線穿越時買進1張

以成交價為基礎, 設定固定停利以及移動停損

}

 

if loss_point = 0 then raiseruntimeerror("請設定停損(點)");

 

long_condition = Average(Close, 5) cross over Average(Close, 20);

 

if Position = 0 and long_condition then begin

SetPosition(1);{ 買進1張 }

end;

 

if Position = 1 and Filled = 1 then begin

{ 依照成本價格設定停損/停利 }

var: intrabarpersist stoploss_point(0);

 

{ 計算停損價格 }

if stoploss_point = 0 then begin

stoploss_point = FilledAvgPrice - loss_point;

end;

 

{ 如果價格上漲的話, 則往上挪動停損價格. 停損價格只會越來越高 }

if Close > FilledAvgPrice then begin

if Close - loss_point > stoploss_point then begin

stoploss_point = Close - loss_point;

end;

end;

 

if profit_point > 0 and Close >= FilledAvgPrice + profit_point then begin

{ 停利 }

SetPosition(0);

stoploss_point = 0;

end else if Close <= stoploss_point then begin

{ 停損 }

SetPosition(0);

stoploss_point = 0;

end;

end;

 

 

 

swer 發文於   2022/01/05

有兩個問題想請教一下

1.這樣的腳本是否等於 進場 跟移動停損都有?

2.可我在看他入場的時候 卻沒照著均線走 反而提早 是否指定天數那裏該修改甚麼? 我用的是15分

XQ小幫手 發文於   2022/01/06

Hello swer,

 

1.

小幫手看了一下,您的腳本中有兩個進場的部分

if Average(Close,Shortlength) Cross Above Average(Close,Longlength) then setposition(1);

還有

if Position = 0 and long_condition then begin

SetPosition(1);{ 買進1張 }

end;

這兩部分是在講進場。

 

if profit_point > 0 and Close >= FilledAvgPrice + profit_point then begin

{ 停利 }

SetPosition(0);

stoploss_point = 0;

end else if Close <= stoploss_point then begin

{ 停損 }

SetPosition(0);

stoploss_point = 0;

end;

end;

這部分是在講出場。

 

另外需注意,複數個交易指令 (SetPositon) 同時執行時,只有最先觸發的會執行,其他的會忽略。

議您可以多加上 position 和 filled 作控管。

 

2.

您的進場有兩種:

10期平均線線向上穿越20期平均線

5期平均線向上穿越20期平均線

所以可能是其中一種達成。

至於實際的狀況需要麻煩您提供 交易腳本、回測商品及設定的截圖、問題發生的時間點 讓小幫手這邊實際測試才知道。

swer 發文於   2022/01/07

看到了 感謝

發表回覆
Close