假設今天盤中腳本(頻率:15分)已觸發買到台股期貨,同時也算出停損點A/停利點B,但今天都沒達到出場點位,留倉到明天繼續程式交易,電腦關機、明天再開。問題是今天的交易腳本如何自動得知(不須人工輸入)昨天算出來的出場點A/B,只要A/B未曾出現,部位就留倉,每天跑腳本直到A/B某天出現就執行洗價自動賣出? (我想買盤中量化交易之前想知道XS如何解答這個問題。)
盤中量化交易算出停損點如何傳給後來的腳本使用?
- 407
- 最後發表 ERICYU 2024 十二月 11
若關機後重新啟動策略,變數就會恢復成預設的值。要保留之前的變數,只有不關機一途。由於不關機讓策略一直保持啟動狀態,有一定風險,所以一般不建議這麼做。另一種做法是重新啟動策略後,在跑歷史K棒時用變數記錄關鍵價,這個做法會比較實際,也可符合你的需求。
【您所謂的: 另一種做法是重新啟動策略後,在跑歷史K棒時用變數記錄關鍵價,這個做法會比較實際,也可符合你的需求。】 ~ 請問這個做法是否要每次啟動策略前,需要人工在把損點A/停利點B在腳本中指定給變數的起始值,然後開始洗價? 還是有其他更好的方法?
以下是我的程式。 我的問題是: 變數AAA在買入交易時被賦予一個值A(做多停損點),當天沒出現賣出信號,部位被留倉。電腦關機,隔天再開機啟動自動交易,這時如何告訴程式昨天的停損點A ? 讓程式判斷若跌破A,就停損。
var: AAA(0); //做多之停損點。
var: BBB(90000); //做空之停損點。
var: _rsv(0), _k(0), _d(0);
if barfreq <> "min" or barinterval <> 15 then raiseRunTimeError("請設定15分頻率") ;
Stochastic(6, 3, 3, _rsv, _k, _d); //取KD 值
//------------------------------------------------------------------------------------------------------------------
if (_k[1]<20) and (_k[2]< _d[2]) and (_k[1]> _d[1]) then //KD低檔黃金交叉。空單出場 &同時做多1口。
begin
buy(1, close[1]);
AAA = low[1]; //停損點。
end;
if close[1]< AAA then setposition(0, close[1]);
//------------------------------------------------------------------------------------------------------------------
if (_k[1] >80) and (_k[2]> _d[2]) and (_k[1]< _d[1]) then //KD高檔死亡交叉。 多單出場 &同時做空1口。
begin
Sell(1, close[1]);
BBB = high[1]; //停損點。
end;
if close[1] > BBB then setposition(0, close[1]);
重啟策略之後,所有變數都恢復為預設值。你可以讓程式在跑歷史K棒時,用變數記錄停損點。
6 評論