重覆觸發買進與賣出

  •   119 
  • 最後發表   無情卻慈悲  2020 八月 11
無情卻慈悲 發文於   2020/08/11

我寫了一段台指自動進場、自動停損停利的程式, 進場的沒問題,唯有在自動停損時,會同時觸發買進與賣出, 這問題我試了一週也試不出原因,不知小幫手可以提點一下嗎?(附上截圖與程式碼)  

▼進場策略中卻出現「停損」的執行,這是進場策略啊? 我看了我寫的if,再怎麼看都不可能同時觸發才對,而且另一個多餘的觸發是多單停損既然多觸發了一個多單停損就至少應是「賣出平倉」,但看記錄卻是「買進新倉」。  

▼出場策略 : 是正常的賣出平倉無誤。  

 

 程式碼我附在下一則回應中,字數太長了無法存檔。

無情卻慈悲 發文於   2020/08/11

 

 input:Length(20,"MA的天數"),

 UpperBand(2,"上通道標準差倍數"),

 LowerBand(2,"下通道標準差倍數"); 

 variable:mid(0),up(0),down(0);

 

variable:_cost(0),_stock(0),_gainprice(0),_lossprice(0);

input:gain(12,"停利點數");

input:loss(10,"停損點數");

 

 up = bollingerband(Close,Length,UpperBand) ; 

 mid = average(close,Length); 

 down = bollingerband(Close,Length,-1*LowerBand);

 

if date <> date[1] 

then begin

_stock =0;

_cost=0;

end;

 

 //多單進場

if close crosses above down 

and _stock =0

then begin

_cost = close ;//

_gainprice = _cost+gain;//停利

_lossprice = _cost-loss;//停損

_stock =1;

ret = 1;

retmsg ="多單進場";

Print(Date,Time,"多單進場:","成本價:",_cost,"庫存",_stock,"close",close,"_gainprice",_gainprice,"_lossprice",_lossprice);

end;

 

//多單停利

if  _stock = 1

and close > _gainprice

then begin

_stock =0;

ret = 1;

retmsg ="多單停利";

Print(Date,Time,"多單停利:","成本價:",_cost,"庫存:",_stock,"close",close,"_gainprice",_gainprice);

end;

 

 

//多單停損

if _stock =1

and close < _lossprice

then begin

_stock = 0;

ret = 1;

retmsg ="多單停損";

Print(Date,Time,"多單停損","成本價:",_cost,"庫存:",_stock,"close",close,"_lossprice",_lossprice);

end;

 

發表回覆
Close