我寫了一個指標來標出進出場訊號,
如下圖,
片段code :
Var: Flag(False);
if currenttime >084500 and currenttime < 235959 then Flag = True;
下圖中我的if有寫到 if _stockB = 0 and Flag = True 才可以畫出指標,
但為何沒有在條件時間內的K棒,仍會畫出指標呢?
麻煩小幫手解惑,謝謝

我寫了一個指標來標出進出場訊號,
如下圖,
片段code :
Var: Flag(False);
if currenttime >084500 and currenttime < 235959 then Flag = True;
下圖中我的if有寫到 if _stockB = 0 and Flag = True 才可以畫出指標,
但為何沒有在條件時間內的K棒,仍會畫出指標呢?
麻煩小幫手解惑,謝謝

無情卻慈悲 您好
主要是因為currenttime 是讀取您電腦的時間
假設您電腦的時間是在這個區間內,
那他就會畫出來
請您把currenttime 改為 time 就可以了

那再請問,我如果是警示腳本要自動下單,只想在特定時間下單,我應用time嗎?
無情卻慈悲 您好
是的,如果是固定時間的話,
假設您想要在 9:00開盤進場
可以寫成 time=090000
您好,
有關特定時間下單的問題,我把小幫手之前建議的語法,與自己寫的語法來並列PRINT檢視,發現如下圖有不一樣的TRUE或false,
可否請教為何會不一樣?
20200921.000000 150000.000000 FALSE FALSE FALSE
20200921.000000 150000.000000 早上 TRUE 下午 FALSE 晚上 FALSE

//小幫手之前給的
condition1= time>090000 and time<133000;
condition2= time>151000 and time < 240000;
condition3= time > 000001 and time <040000;
if condition1 or condition2 or condition3 then ret=1;
print(date,time,condition1,condition2,condition3);
//可下單時段
Var: intrabarpersist allow_time(False), intrabarpersist m_time(False),intrabarpersist a_time(False),intrabarpersist n_time(False);
if time >090000 and time < 133000 then m_time = True;//早上盤
if time >151000 and time < 240000 then a_time = True;//下午盤
if time >000001 and time < 040000 then n_time = True;//深夜盤
if m_time = True or a_time = True or n_time = True then allow_time = True;
print(date,time,"早上",m_time,"下午",a_time,"晚上",n_time);
無情卻慈悲 您好
主要是您的if 的寫法,
沒有寫else,
也就是他如果符合 m_time 會是true 那當然沒問題
但是如果是false ,condition 會自動變成false 而 if 你必須在寫一段else m_time = false
不然他會延續上一個紀錄true
您好,
原來如此,但是若是一般的變數,例如 var:_stock(0), 我沒有直接使用vlaue1的話,是否_stock(0)也要加上else來處理呢?以免變數又變成0 ?
無情卻慈悲 您好
抱歉,或許是我沒說清楚造成您的誤解
我們舉個例子
假設五分k 2330 2020/9/23
9:00觸發條件
您的_stock從 0 變 1
但9:05 時 該條件沒被觸發
所以程式的紀錄還是會是1
不會因為您一開始宣告的var:_stock(0) 而又變回0的
您好,
那這樣以後是否只要針對 TRUE或false 的變數特別注意要用else 就好呢?
今日新補充問題:
問題1:
我在尾盤13:40仍會下單,不知是哪裡出問題,因一開始的if就寫了 133000之前才可以下單。

問題2:
我在打這篇文問題時,同時間再print一次,發現我的電腦時間與print的時間不一樣,如下圖,差了11分,請問為何會這樣呢?

問題3:
一樣是時間問題,尾盤要自動平倉,也沒有執行,不知是否是我第二點說的時間誤差而造成沒有執行呢?

無情卻慈悲 您好
A1:您似乎忘了在 allow_time 那行撰寫 else 了喔XDD
初步看起來問題是在那,
如還有疑問,請在提供完整的策略雷達給我 我在幫您檢查看看
A2:請檢查一下您的PRINT 是寫TIME 還是CURRENTTIME
如果為currenttime 才會是您電腦的時間,
以及如果當下有交易量,雷達有運作 才會有print值
A3:如果您是用time的話 那應該要正常出場才對,
是否能請您提供策略匯出檔,我在幫您看看問題在哪 感謝
您也可Mail 至 XQservice@XQ.com.tw,並附上此討論串連結,以利小編請相關人員查看問題的原因。
感謝
28 評論