策略與指標統計上的問題

  •   174 
  • 最後發表   小彬  2022 六月 17
小彬 發文於   2022/06/07

想請問小編 有一MA通道策略:原先是空手,現在價格跌破下軌且當期SMA20相較20天前的SMA20值大買進。

擷取部分程式碼:

if _marketposition=0 and close crosses under LB_6 and average(close,_daymain)>average(close[_afterday],_daymain)

then begin

_buy=low*0.97;

_marketposition=1; //建立多頭成本。

_entryprice=close; //買進成本。

end

else

_buy=0;

 //非建立多頭部位時,買進做多的向上箭頭位置畫在0的位置。

 if _marketposition = 1 and ((close crosses over MA) or close/_entryprice<(1-_percent)) then 

begin //手上有多頭部位之下,點到停損百分比或是價格回到中軌。

_marketposition=0; //手上多頭部位平倉。

_sell=high*1.03;

//標示平倉符號(圈圈中有個X)在K線向上3%的位置。

end

圖示:

已先收尋過討論區但還是沒有想法,想請教:

1.如何用countif語法或迴圈來計算策略中的建立多頭部位次數(若要給區間以240日)?

2.承上,計算手上有多頭部位之下 點到停損百分比和回到中軌次數?

3.計算區間內多頭部位之累積損益(先不計交易成本)?

謝謝小編

 

排序方式: 標準 | 最新
小彬 發文於   2022/06/09

小編你好~

1.2題的問題我已用countif語法寫出來了~

第3題計算區間內多頭部位累積損益卡關,要麻煩小編了

主要想寫出之前討論區上有一篇文章的概念,其程式碼:

if condition2 then setposition(0, market);

if filled[1] = 1 and filled = 0 then begin

value2 = FilledRecordPrice(FilledRecordCount);  //紀錄賣出價格

value3 = (value2 - value1) * multiplier;   //計算此次獲利

value4 += value3;   //計算累積獲利

end;

另外有個問題,假若區間內多頭部位最後一筆交易可能尚未達到停損或出場條件,想把這筆交易排除在計算累積獲利之外

 

 

KYT 發文於   2022/06/10

if  _marketposition[1] = 1 and marketposition = 0 then begin

單次損益=((賣出價-成本價)*1000)-(((賣出價+成本價)/2)*6)

                                                 //一千股       交易成本%

累計=累計+單次損益

交易次數=交易次數+1  

end

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

Hello 小彬,

 

您要寫的應該是指標腳本 (無法使用交易函數),小幫手會建議您可以用變數來記錄進出場的價格,並以此計算損益。

舉例來說:

var: _position(0), _profit(0);

condition1 = 多頭條件...;

condition2 = 空頭條件...;

if condition1 then begin 

    value1 = close;   //紀錄進場價格

    _position = 1;  

    end;

if condition2 then begin 

    value2 = close;   //紀錄出場價格

    _position = 0;

    end;

 

if _position[1] = 1 and _position = 0 then _profit += (value2 - value1) * 1000;

 

如果是交易腳本的話,可以使用交易函數取得進出場價格。

 

感謝 KYT 的熱心回覆。

小彬 發文於   2022/06/17

 KYT 大大與小編回覆

發表回覆
Close