為何我的多單腳本,策略雷達訂單(60分頻率)只能觸發進場,無法觸發出場?!

  •   105 
  • 最後發表   KHJBSNET  2021 八月 23
KHJBSNET 發文於   2021/08/16

我是新手,以下請小編及前輩們不吝指教!

進場腳本:

input: averageVolume(1000);

value1 = average(close,10);

value2 = LinearRegSlope(value1,10);

Value3 = q_Last;//成交價

value4 = average(GetField("Volume", "D")[1], 5);//"5日均量"

condition1 = close >= value1 and close[1] < value1[1] and close[2] < value1[2] and close[3] < value1[3];

condition2 = close[1] >= 20 and value4 >= averageVolume;

condition3 = close >= close[1];

condition4 = value2 > 0;

condition5 = value2 > value2[1] ;

//進場

variable:byin(false),byprice(0);

if byin=false and condition1 and condition2 and condition3 and condition4 and condition5 then

   begin

   byin=true;

   ret=1;

   byprice=close;

   end;

{//出場

if byin=true and open < (value3*0.985) or open >= (value3*1.045) and volume > 0 and then

   begin

   byin=false;

   ret=1;

   end;

//尾盤出場

if byin=true and time > 132400 and volume > 0 and then

   begin

   byin=false;

   ret=1;

   end;}   

print(time,byin,byprice,condition1,condition2,condition3,condition4,condition5);

 

進場雷達達觸發下單設定:

出場腳本:

input: averageVolume(1000);

value1 = average(close,10);

value2 = LinearRegSlope(value1,10);

Value3 = q_Last;//成交價

value4 = average(GetField("Volume", "D")[1], 5);//"5日均量"

condition1 = close >= value1 and close[1] < value1[1] and close[2] < value1[2] and close[3] < value1[3];

condition2 = close[1] >= 20 and value4 >= averageVolume;

condition3 = close >= close[1];

condition4 = value2 > 0;

condition5 = value2 > value2[1] ;

//進場

variable:byin(false),byprice(0);

if byin=false and condition1 and condition2 and condition3 and condition4 and condition5 then

   begin

   byin=true;

   byprice=close;

   end;

//出場

if byin=true and open < (value3*0.985) or open >= (value3*1.045) and volume > 0 then

   begin

   byin=false;

   ret=1;

   end;

//尾盤出場

if byin=true and time > 132400 and volume > 0 then

   begin

   byin=false;

   ret=1;

   end;   

 

print(time,byin,byprice,condition1,condition2,condition3,condition4,condition5);

出場雷達達觸發下單設定:

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/08/19

Hello KHJBSNET,

 

如同小幫手在您其他篇問題的回覆,策略雷達是個觸發後依照您的設定去進行進場或出場的工具。

策略雷達本身並沒有庫存的概念。

所以就算您在同一個腳本裡撰寫進場的 ret = 1 跟出場的 ret = 1,在策略運行的時候都會依設定變成 都進場 或是 都出場。

如果您要在同一個腳本內作進出場的控制,請使用自動交易中心。

KHJBSNET 發文於   2021/08/20

我這其實是兩個腳本!

進場腳本,我把出場的語法用"{}"遮掉了!

出場腳本,我把進場的語法裡的ret=1;去掉了!

 

XQ小幫手 發文於   2021/08/23

Hello KHJBSNET,

 

小幫手知道您有註解掉。

小幫手測試過,您的兩隻腳本在回測的時候都可以觸發,只要將報價欄位改成資料欄位即可回測。(q_last 改成 close)

單一警示腳本只能進場或是出場,所以您指的無法觸發出場是指出場腳本無法觸發?

需要麻煩您提供什麼商品、什麼時間點您覺得應該要觸發60分鐘頻率運算的出場腳本,但卻沒有觸發。

發表回覆
Close