請問我的做空策略寫法哪裡有問題

  •   47 
  • 最後發表   查理布朗  2 天前
查理布朗 發文於   2018/07/11

請問小幫手,

我的做空進場策略如下

input: Length1(3),Length2(6),Length3(12),Length4(48),Length5(60);

settotalbar(maxlist(Length5,6) * 13 * 7 + 8);
if barfreq ="Min" and Time > 084500 and Time <= 133000 then

value1 = ema(close,Length1);
value2 = ema(close,Length2);
value3 = ema(close,Length3);
value4 = directionmovement(Length3, value5, value6, value7);
value8 = ema(close,Length5);

condition1 = value1 crosses below value8;
condition2 = value8 <= value8[Length3];
condition3 = value5 < value6 and value5 < value5[Length1] and value6 > value6[Length1];

if condition2 and condition3 then ret = condition1;

我回測2018/7/10的小型大立光期07,五分K,無洗價時卻發現進場條件不符合原先策略(結果如下)

回測結果

請問我是哪邊寫錯了? 謝謝!

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2018/07/12

Hi 查理布朗,

您好,想確認一下您的策略想法為何?正確的情況下為何?

有可能是您的想法與您的程式碼有落差,故小幫手須了解後,才能對照查看問題的原因,引導您方向,謝謝。

查理布朗 發文於   2018/07/12

你好,

我希望回測時間是每天的0845-1330。在五分K的頻率下,在現在60MA小於等於12個周期(1小時)前60MA且+DI大於前一個+DI,-DI小於前一個-DI,+DI大於-DI的前題下,如果3MA向下交叉60MA,即進場。

謝謝小幫手

XQ小幫手 發文於   2018/07/16

Hi 查理布朗,

待小幫手查看後再向您說明,謝謝。

XQ小幫手 發文於   2018/07/16

Hi 查理布朗,

+DI大於前一個+DI,-DI小於前一個-DI,+DI大於-DI

您好,您程式碼的 condition3 應該寫錯了,大小寫相反,且前一個+DI/-DI,應該用[1];

directionmovement(Length3, value5, value6, value7);

- 第二個參數(value5)是輸出計算完的+DI值。

- 第三個參數(value6)是輸出計算完的-DI值。

 

小幫手修改後的程式碼範例,跑回測不會觸發 07/10 此交易,以上方向供您參考,謝謝。

condition3 = value5 > value6    //+DI大於-DI
and value5 > value5[1]   //+DI大於前一個+DI
and value6 < value6[1];  //-DI小於前一個-DI

 

發表回覆
Close