另一種方式呢…就是再另外增加一組訊號輸出的程式碼…程式碼如下:
if date = lastcalcdate and time = LastCalcTime and BarInterval = 5 then
FileDelete("C:\DarkKnightTrader\DT3.txt")
FileAppend("C:\DarkKnightTrader\DT3.txt", ("0,"+ NumToStr( Date, 0 ) +","+ NumToStr(Q_time,0)+","+ NumToStr(CurrentContracts,0)+",0,"+NumToStr(close,0)+",1"))
End if
if date = lastcalcdate and time = LastCalcTime and BarInterval = 10 then
FileDelete("C:\DarkKnightTrader\DT2.txt")
FileAppend("C:\DarkKnightTrader\DT2.txt", ("0,"+ NumToStr( Date, 0 ) +","+ NumToStr(Q_time,0)+","+ NumToStr(CurrentContracts,0)+",0,"+NumToStr(close,0)+",1"))
End if
可以看到本來是只用一組輸出即可…這邊用到了第二組的輸出…只要就是加上了 BarInterval 這個判斷式。
BarInterval 是用來判斷分鐘線為幾分鐘的函式。以 5 分鐘為例…BarInterval 就會等於 5 。
所以上面的例子就是把該策略同時放進 5 分鐘和 10 分鐘的 K 線裡執行… 5 分鐘的訊號輸出
至:C:\DarkKnightTrader\DT3.txt
而 10 分鐘的訊號輸出至:C:\DarkKnightTrader\DT2.txt
這兩個檔案…再由下單機去讀取這兩個檔案即可。
當然…第一種作法比較簡單一點…只要另外再新增一個策略檔案…然後把程式碼整個貼過去後…把輸出的訊號檔案改個名子就行了。
感謝大大的分享
回覆刪除那剩下的問題就是:5分線的策略(DT5)如何抓到10分線輸出的策略訊號(DT10)?
james: 兩隻不同的程式要互相抓到訊號大概是不太可能…除非你把他們寫在一起…
回覆刪除D.K大您好:
回覆刪除請問一下如果要用5分K為進場條件,1分K為出場條件,這樣的方式程式該如何寫呢?是否有可以參考的可以提供給我呢?感謝您唷!
補充:
回覆刪除DATA1=5分K,DATA2=1分K,買進訊號是看5分K,賣出訊號是看1分K
chunnannn: 這樣不太行..也許你把 data1 改為 1 分.. data2 改為 5 分會比較容易達成。
回覆刪除DK大:
回覆刪除好的,我來試試看,非常感謝您的回覆唷!
D.K大您好:
回覆刪除在HTS測試時,兩組輸出訊號碼同時貼在5分線, 只有5分的文字檔報價會變動,10分的不會動;若貼到10分線, 只有10分的文字檔報價會變動,5分的不會變動。
程式本身沒有做更動,請問是什麼問題呢?麻煩您回覆,謝謝您!