請問要如何在不需要重新啟動策略下,達到僅新倉1次-->平倉-->僅新倉1次-->平倉 -->重複下去

  •   158 
  • 最後發表   skypan  2020 七月 09
skypan 發文於   2020/07/09

請問如何在XQ的策略雷達內的觸發下單中自動做到(不需要重新啟動策略)

僅新倉1次-->平倉-->僅新倉1次-->平倉-->重複下去
也就是最大同時進場數為1

 

因為碰到的問題是:

啟動策略後,只要進場訊號一到,就開新倉一次,還沒平倉前,如果進場訊號又到,就又再次開個新倉。
PS.如果是用回測來運算則沒這個問題(回測中有勾最大同時進場數1)。

或是如果把屬性設定中的 "啟動後只觸發一次" 或是策略安全設定的 "下單次數最多1次"打勾,不論勾1個或2個都勾,就只能開新倉一次及平倉一次,後面就無法繼續開新倉了,除非重新啟動策略。

 

排序方式: 標準 | 最新
JASON125 發文於   2020/07/09

試試看設定一個變數(ex:position),並進場條件多一個position=0,在ret=1的時候為1,出場後該變數再設為0。

skypan 發文於   2020/07/09

你好,我是用這樣的策略 跑1分鐘的頻率,有用過去相關文章中小編建議的進出場條件,但是我有根據需求做微調




//短期均線突破長期均線

input: Shortlength(1); setinputname(1,"短期均線期數");

input: Longlength(3); setinputname(2,"長期均線期數");

input: GAIN(20); setinputname(3,"GAIN");

input: LOSS(20); setinputname(4,"LOSS");

 

input: _BuyOrSell(1, "進/出場", inputkind:=Dict(["進場",1],["出場",0]));

variable: Forecast_DealPrice(0);

 

settotalbar(8);

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

 

Value1 = Average(Close,Shortlength);

Value2 = Average(Close,Longlength);

 

if Value1 crosses over Value2 then 

begin Forecast_DealPrice = close;

        if _BuyOrSell = 1 then ret = 1;

    end;

 

if close > Forecast_DealPrice + GAIN and _BuyOrSell = 0 then ret = 1;

if close < Forecast_DealPrice - LOSS and _BuyOrSell = 0 then ret = 1;

 

XQ小幫手 發文於   2020/07/09

Hi skypan,

您好,請參考此篇文章架構撰寫,原本提供大家的文章後續會再改一下,以上說明,謝謝。

用策略雷達達成上漲x點買進;低於成本y點出場

skypan 發文於   2020/07/09

謝謝小編,那篇文之前看過,但不是很了解如何套用。

發表回覆
Close