求問~自動交易中心的訊號價位,程式碼是否有誤,為何總成交在較高的價位?

  •   146 
  • 最後發表   XQYi  2024 五月 16
XQYi 發文於   2024/05/15

value1 = Average(TrueRange, Length);

value2=open-low; //當日開盤價-今日目前最低價

value3=high-open; //目前最高價-當日開盤價

value4=high-low; //目前最高價-目前最低價

value5=value2/(value4+0.0001); 

value7=open-open*0.00015-(value1*value5)/2.25; 

condition1=close <= value7; //希望當下的價格低於計算出來的Value7時買進

if  position=0 and filled=0  and condition90

then begin

if  condition1  and (GetField("收盤價","Tick") > GetField("收盤價","Tick")[1] or value7 > value7[1] )

 and  currentTime > 090200 and  currentTime <=110000 

then setposition(minList(position+1,1),value7,label:="買1");//有庫存時,不進場加買,維持一張

 

交易頻率適用日頻率。逐筆

在交易中 當下價格小於value7時,使用 Value7、close、GetField("收盤價","Tick") 、GetField("最低價","Tick")

哪一個較為正確,符合當下價格低於Value7時的買進價格?

或整段程式碼所用的價位函數是錯的 ?

因為也有發生訊號未出現,但卻交易了!!

應該在09:09交易,卻在09:02:08就交易了

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/05/15

XQ資料庫提供的8種Tick資料並沒有GetField("最低價","Tick")。你可用Print看看value7及close的數值以確認進場條件是否符合。另外,close<=value7就進場,且以value7當委託價,大部份情況會以比較高的value7價格成交。

 

 

XQYi 發文於   2024/05/15

恩恩 是看ID欄位中有最低價,用鍵盤打的,以為同"收盤價"可打中文!!

沒有GetField("最低價","Tick") 有 getField("Low"),但好像不支援Tick ?

 

價位顯示: getField("收盤價","Tick")= getField("Close","tick") <>  getField("Close")   ?

close的應用很廣結果卻很不一樣? 如何正確使用Close 或者應該說是避免,如何選用較適合腳本的或頻率的?

 

?

 

虎科大許教授 發文於   2024/05/15

getField("Close","tick") 與 getField("Close") 差異的地方在於第二者使用的是預設頻率。若頻率是5分鐘,它代表每根5分K的收盤價。在盤中,最新這根的收盤價,就是即時成交價close,它與getField("Close","tick") 及 getField("Close") 都相同,但加了[1]就不同了,getField("Close","tick")[1]代表前一個Tick的成交價,getField("Close")[1]及close[1]都代表前一根5分K的收盤價。

XQYi 發文於   2024/05/15

感謝教授!

因為交易使用的是日頻率逐筆交易

所以使用上,最好是把頻率先考慮進來,直接用想交易的頻率做編程

Value2~7 所使用的 OHLC是否也要修正?

虎科大許教授 發文於   2024/05/15

既然主頻率是日,OHLC就是一天的OHLC,不需要修改。

XQYi 發文於   2024/05/16

程式碼中  or value7 > value7[1]

原意是現在計算出來的比上一筆大,

但如果這一段也是根據日頻率 ,今天跟昨天比 應如何修正符合原意?

 

發表回覆
Close