Hello 奇怪的人,
小幫手以正德、鑫科和世禾為範例說明。
需注意您是用1分鐘逐筆,所以1分鐘Bar會被切分成4個Tick來模擬。
小幫手將print的資訊修改為如下讓您比較好理解:
print("進場觸發", date, time, volume, close, close[1], close / close[1], 100 * ((close - GetField("參考價", "D")) / GetField("參考價", "D")));
print("獲利觸發", date, time, high, filledavgprice, addspread(filledavgprice, 3));
print("虧損觸發", date, time, low, filledavgprice, addspread(filledavgprice, -2));
以下是正德print出來的結果:
進場觸發 20210820.000000 90000.000000 181.000000 28.200000 27.350000 1.031079 3.107861
獲利觸發 20210820.000000 90000.000000 28.650000 28.200000 28.350000
進場觸發 20210820.000000 90000.000000 726.000000 28.500000 27.350000 1.042048 4.204753
虧損觸發 20210820.000000 90100.000000 28.450000 28.550000 28.450000
進場觸發 20210820.000000 90100.000000 261.000000 28.800000 28.500000 1.010526 5.301645
獲利觸發 20210820.000000 90100.000000 28.800000 28.550000 28.700000
進場觸發 20210820.000000 90200.000000 381.000000 29.000000 28.550000 1.015762 6.032907
虧損觸發 20210820.000000 90200.000000 28.500000 28.900000 28.800000
進場觸發 20210820.000000 91000.000000 186.000000 28.650000 28.350000 1.010582 4.753199
虧損觸發 20210820.000000 91000.000000 28.300000 28.550000 28.450000
進場觸發 20210820.000000 92700.000000 612.000000 29.100000 28.750000 1.012174 6.398537
虧損觸發 20210820.000000 92700.000000 28.700000 29.100000 29.000000
進場觸發 20210820.000000 93400.000000 291.000000 29.150000 28.850000 1.010399 6.581353
虧損觸發 20210820.000000 93400.000000 28.850000 29.100000 29.000000
可以看得出來,如果在當根1分鐘Bar的開盤價觸發進場的話,很多時候是在相同根Bar的最高價或最低價觸發限價賣出單。
如果您不希望當根就出場,請不要勾選逐筆洗價。
以下是鑫科print出來的結果:
進場觸發 20210820.000000 90000.000000 156.000000 38.950000 37.800000 1.030423 3.042328
虧損觸發 20210820.000000 90000.000000 37.850000 38.950000 38.850000
進場觸發 20210820.000000 90300.000000 132.000000 39.800000 39.150000 1.016603 5.291005
虧損觸發 20210820.000000 90300.000000 39.000000 39.750000 39.650000
鑫科在39.65掛了一張限價賣單,但當日價格沒有再上到39.65過所以未成交。
強制出場未觸發是因為當有兩個setposition符合的時候,只會優先執行上面的那一個。
小幫手想到的解決辦法是將 中午1點20分強制平倉 移到 以買進價為基準,獲利3檔出場或虧損2檔出場 上方,確保其會被優先執行。
並將其修改為:
if filled <> 0 and currenttime >= 132000 then setposition(0, market);
附上小幫手修改過的腳本。
以下是世禾print出來的結果:
進場觸發 20210820.000000 90000.000000 114.000000 63.800000 61.400000 1.039088 3.908795
獲利觸發 20210820.000000 90000.000000 64.500000 63.900000 64.200000
進場觸發 20210820.000000 115600.000000 114.000000 65.700000 64.700000 1.015456 7.003257
虧損觸發 20210820.000000 115600.000000 64.900000 65.700000 65.500000
該根觸發當下的成交量有超過100。
還有每個 close / close[1] 都有大於 1.01
至於您想用X萬元來換算成張數,可以在腳本內自行計算。
舉例來說10萬元好了:
value1 = floor(100000 / (close * 1000));
這樣就可以算出10萬元最多可以買幾張。
9 評論