請問可以這樣寫嗎?

  •   139 
  • 最後發表   JERRY  2017 一月 13
JERRY 發文於   2017/01/12

比方說我在盤後選到3049

明天開盤直接進場

所以成本價就是開盤價

此時value2會存我的成本價

 

並且設定只有當value1=0的時候

才會記錄成本價

也就是剛開始value1=0 會執行if敘述

執行完之後 value1=1

下次就不會再重新存一次了

 

等到後天開盤的時候
value2會重新變成後天的開盤價嗎

還是仍為昨天的開盤價

 

也就是想問說value1=1之後

再過一天重新開盤時

value1會變回0嗎

 

variable:sma20(0);

 

sma20=average(c,20); 

 

if(value1=0) then 

begin

value2=open;

value1=1;

end;

 

if(q_Last<sma20 or q_Last<value2*0.95) then ret=1;

 

PS: 附件有圖檔

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2017/01/12

 Hi Jerry :

 

您的問題,

Q:value1=1之後,再過一天重新開盤時,value1會變回0嗎?

A:不會,要重新啟動此策略才會變回0。

 

另外,如果您要【開盤直接進場】,這裡需要設日期要為今天的日期,並且時間要大於等於開盤時間(下述程式碼範例是,假設9:00開盤)

if date = currentdate and time >= 090000 then begin ... end;

不然,會因為 Load 到歷史資料,導致 value2 取到歷史的開盤價,讓您的策略不如您的預期,

 

以上,謝謝。

 

 

JERRY 發文於   2017/01/13

重新啟動策略value1會變成0

意思是我無法用這種方式去儲存成本價嗎??

因為關機之後 再重開電腦

這個if敘述又會執行一次

也就是開盤價會變成下一天的開盤價

if(value1=0) then 

begin

value2=open;

value1=1;

end;

XQ小幫手 發文於   2017/01/13

Hi Jerry,

重新啟動策略value1會變成0的意思是,

在策略雷達,執行此策略(燈號綠燈),然後停止執行(或者關閉XQ系統),再執行此策略,value1就會變為0,

 

您的問題,

Q:意思是我無法用這種方式去儲存成本價嗎??

A:成本價,應該是您欲進場買進的價格,

若您是當沖策略,交易時段僅為當日的盤中時間,則應該還是可以用這種方式去紀錄價格的

(注意!是在不關閉系統與停止此策略的前提下),

 

但若您是隔日沖,或者投資期間較長,然後您的電腦在這期間,會關機休息,或者會關閉XQ系統,那這種方法就不適用了,

因為重啟系統,策略腳本都會回歸初始化(也就是value1會變成0的意思)

 

以上,謝謝。

 

 

發表回覆
Close