你好 小編
我想請問 自動交易的程式碼
如果有value1=getField("high"); 如果是在1分K的頻率之下
他是指當下最大的交易價嗎
這個數值再跑回測的時候是否會出現問題呢?
另外這個數值會等於value2=highD 這個數值嗎?
舉例來說
我想要當價格超過今日最高下的當下進場
是否能寫成 if c cross over value1 then setposition(1,market)
high的問題
- 480
- 最後發表 Benzing 2021 九月 22
Hello Benzing,
High 會回傳該頻率的最高價。
所以用在一分鐘頻率上的話,High指的就是當根一分鐘Bar的最高價。
HighD 會回傳指定日的最高價。
您也可以使用 GetField("High", "D") 來取得日頻率的最高價。
您沒辦法寫價格超過今日最高價,因為當收盤價超過時今日最高價時今日最高價就會被更新為該價格,所以不會發生超過。
這時有兩種方法:
1. 收盤價等於當日最高價
if close = getfield("High", "D") then setposition(1, market);
2. 收盤價超過上一筆的當日最高價 (非昨日最高價,是該頻率中的"上一筆")
value1 = getfield("High", "D");
if close cross over value1[1] then setposition(1, market);
想請問 假設開盤 10分鐘 出現了一個當時最高價 100元
在第15分鐘的時候 出現超過 100元
這樣是不是寫成第二個的寫法呢在一分k下
value1 = getfield("High", "D");
if close cross over value1[1] then setposition(1, market);
這樣在第15分鐘 就會發動程式嗎?
Hello Benzing,
您舉的例子,如果在第15分鐘時收盤價同時也等於超過100元的價格的話,兩者都會觸發。
如果收盤價超過100元,但並不等於當日最高價的話就只會有第二種寫法會觸發。
舉例來說,第15分鐘Bar出現時的當日最高價為105,而收盤價為103的話,由於收盤價有向上穿越之前的100所以第二種寫法會被觸發。
但第一種寫法會因為收盤價並不等於105故不觸發。
了解 感謝小編
4 評論