想寫一個當沖交易腳本,計算Z分鐘內內外盤加總比例,若外盤比例持續XI分鐘都增長超過YI則市價買進,若內盤比例持續XD分鐘都跌幅超過YD則市價全部清倉賣出,但下列的語法回測後只有開盤成交一筆,想請小幫手協助確認是否有哪裡有錯。
input: Z(15,"計算內外盤量加總之時間範圍(分鐘)");
input: XI(2,"增幅持續增加時間(分鐘)"); //I for Increase
input: YI(1,"每分鐘增幅(%)");
input: XD(2,"跌幅持續增加時間(分鐘)"); //D for Decrease
input: YD(1,"每分鐘跌幅(%)");
input:DealingTime(60,"自開盤起之交易時間(分鐘)");
Vars: i(0);
for i = 0 to (Z-1)
Begin
value1 += getfield("外盤量","1")[i]; //Z分鐘內的外盤量總和
End;
for i = 0 to (Z-1)
begin
value2 += getfield("內盤量","1")[i]; //Z分鐘內的內盤量總和
end;
Value3=(value1/value1+value2)*100; //Z分鐘內的外盤比例
value4=(value2/value1+value2)*100; //Z分鐘內的內盤比例
for i = 0 to XI-1
Begin
if (value3[i] - value3[i+1]) >= YI then //若K棒的外盤比例 比前一根K棒高出YI 則執行以下運算
value5 += (value3[i]-value3[i+1]) //計算出XI分鐘內外盤比例差額的總和
Else
Break;
end;
for i = 0 to XD-1
Begin
if (value4[i] - value4[i+1]) >= YD then //若K棒的內盤比例 比前一根K棒高出YD 則執行以下運算
value6 += (value4[i]-value4[i+1]) //計算出XD分鐘內外盤比例差額的總和
Else
Break;
end;
if value5 > YI * XI then setposition(+1,market) ; //若XI分鐘內外盤比例差額的總和大於YI*XI 則市價買進
if value6 >= YD * XD then setposition(0, Market); //若XD分鐘內外盤比例差額的總和大於YD*XD 則市價全部清倉
1 評論