來看看不怎麼樣的績效吧…手續費來回還是設二千…
真的是個不怎麼樣的程式啊…所以程式碼就順便貼了…醜話說在前頭,可別直接拿去用然後賠錢找我算帳…
以下,TS 程式碼…
var:count(0), buyline(99999), sellline(0);
if date[0] <> date[1] then begin
count = 0;
buyline = 99999;
sellline = 0;
end;
if time = 1100.00 then begin
buyline = highest(high, 27);
sellline = lowest(low, 27);
end;
if time > 1100.00 and time < 1230.00 and count = 0 then begin
if open < buyline and close > buyline and opend(0) > closed(1) then begin
buy ("b4") next bar at market;
count = count + 1;
end;
if open > sellline and close < sellline and opend(0) < closed(1) then begin
sell ("s4") next bar at market;
count = count + 1;
end;
end;
if marketposition > 0 and time < 1335.00 and close < closed(1) and count > 0 then begin
exitlong next bar at market;
end;
if marketposition < 0 and time < 1335.00 and close > closed(1) and count > 0 then begin
exitshort next bar at market;
end;
if marketposition > 0 and time = 1335.00 then begin
exitlong next bar at market;
end;
if marketposition < 0 and time = 1335.00 then begin
exitshort next bar at market;
end;
DK大
回覆刪除感謝分享程式碼!可否幫忙轉成HTS可以用的呢? 先謝謝您!!
大大你好
回覆刪除我想請問一下
如果說我想畫出這各高低點的線
if time = 1100.00 then begin
buyline = highest(high, 27);
sellline = lowest(low, 27);
end;
plot1(buyline,"buyline");
不知道為什麼都畫不出來
謝謝
我試了一下可以...你 k 線週期用幾分?
回覆刪除大大你好
回覆刪除我是用5分K線
那應該不會有問題…檢查一下程式…另外畫線的要用指標才行喔
回覆刪除請問大大我想寫一個一天只交易3次的程式
回覆刪除可是我這樣寫出來之後
發現一天只會交易一次
不知道是哪裡出了問題
謝謝
if date <> date[1] then begin
count = 0 ;
end ;
if time >= 0930 and time <= 1230 then begin
if marketposition <= 0 and count < 4 then begin buy at a1 stop;
count = count +1 ;
end;
if marketposition >= 0 and count < 4 then begin sell at a2 stop;
count = count +1 ;
end;
end;
你的 if 其實是一直在進去的..所以不能這樣用喔..
回覆刪除比較好的用法的話..就是等倉位改變後再去加 count
vars:mc(0);
mc = marketposition * currentcontracts;
if mc[1] <> mc then
count = count + 1;
交易的人生
回覆刪除if open < buyline and close > buyline and opend(0) > closed(1) then begin
回覆刪除buy ("b4") next bar at market;
這邊寫成
if opend(0) > closed(1) then begin
buy ("b4") next bar at buyline stop;
就沒有訊號了,是我那邊有寫錯嗎?謝謝
HsinFeng:看來是沒問題…可能要看你其它地方是否有改到了。
回覆刪除想請問一下,這支程式回測的日期是從何時開始到何時? 謝謝喔
回覆刪除time 11:00 ~ time 12:30 然後拉過高做多
回覆刪除殺破底作空,程式是這個意思嗎?這樣一天可能已經拉一大段然後過高又拉一大段,尾盤平倉的話已經沒甚麼獲利空間了吧~
Breton: 我忘記了呢…可以試著自己測一下吧
回覆刪除Jerry: 當然有可能是這樣的結果。
回覆刪除好的,謝謝
回覆刪除想請問另一個問題
我想用一分鐘k來寫簡單的當沖突破策略
九點半前抓當天高低點,九點半之後到下午一點間若突破就進場
但發現如果我當天的分鐘k有遺漏的話
當天就無法判斷出高低點以做突破
網路上找不到類似的問題,所以不好意思麻煩你了
不知是否我的程式寫錯了
input:settime(930),wpt(20),percent(0.4),stoploss(20);
vars:highline(0),lowline(99999),flag(0),p(200),count(0);
if date<>date[1] then begin
highline=0;
lowline=99999;
flag=0;
count=0;
end;
if time>=845 and time<=settime then begin
count=count+1;
end;
if time>settime and flag=0 then begin
highline=highest(h,count);
lowline=lowest(l,count);
flag=1;
end;
if time>settime and time<=1300 and marketposition=0 and flag=1 and highline<>0 and lowline<>99999 then begin
buy("b") next bar at highline+1 stop;
sell("s") next bar at lowline-1 stop;
flag=2;
end;
if marketposition<0 then begin
exitlong("sl") next bar at entryprice(0)-stoploss stop;
end
else
if marketposition>0 then begin
exitshort("bl") next bar at entryprice(0)+stoploss stop;
end;
if time>=1330 and marketposition<>0 then begin
exitlong("sv") next bar at market;
exitshort("bv") next bar at market;
end;
setpercenttrailing((wpt*p),percent);
抓高低點不太一樣的是因為怕當天有漏掉的k棒,所以不用固定的數值抓k棒
回覆刪除麻煩您了
謝謝
Breton: 似乎你想的太麻煩了點…
回覆刪除if time = settime then begin
highLine = highd(0);
lowLine = lowd(0);
end;
搞定。接下來就是你的進出場了。
大大你好, 現在才學程式, 若然是用秒圖的話可以嗎, 即係091505-091510..即是5秒內的高低點進場, 可行嗎?
回覆刪除