小幫手您好
假設我用value1記錄當天的日最低價
然後接下來value1有記錄到了
那假設我要寫close如果有大於value1那value2+=1
可是我發覺他close有可能會記錄到value1成立之前的close
意思就是我想要他value1成立了之後 value2只記錄接下來的close
而不要去記錄到value1成立之前的close
再麻煩小幫手看是要在加什麼語法 還是我哪裡有理解錯誤這樣 感恩
小幫手您好
假設我用value1記錄當天的日最低價
然後接下來value1有記錄到了
那假設我要寫close如果有大於value1那value2+=1
可是我發覺他close有可能會記錄到value1成立之前的close
意思就是我想要他value1成立了之後 value2只記錄接下來的close
而不要去記錄到value1成立之前的close
再麻煩小幫手看是要在加什麼語法 還是我哪裡有理解錯誤這樣 感恩
Value1及Value2都改用命名的變數,並用intrabarpersist宣告,就可解決這個問題。
謝謝許教授 可以在請問您一個問題嗎
也是關於變數問題
variable:intrabarpersist vva(0);
if low > low[1] and low[2] > low[1] then vva = low[1];
我發現這個我記錄的vva 他會一直複寫過去 例如
9點10分紀錄一次low[1] 那等等9點20分再發生同樣情況又繼續記錄一次
要怎麼寫才能讓vva這個變數只記錄到第一次就好 接下來就不要再複寫紀錄這樣呢
感謝許教授
(1)可以用Once處理,但要小心跑歷史K棒時就執行。
(2)可再加一個變數來控制。剛開始設這個變數為false,第一次記錄之後就設定為true,這樣就可控制只在第一次記錄。
請問第二個方式(2)true false
variable:intrabarpersist vva(0);
variable: vva(false);
if low > low[1] and low[2] > low[1] then vva = low[1];
那接下來我該怎麼寫true上去呢 不太理解 再麻煩許教授您了
vva是系統函數,不可以用來命名變數。
variable: intrabarpersist myLow(0);
variable: intrabarpersist hasIn(false);
if isFirstCall("Date") then hasIn = false;
if hasIn = false and low > low[1] and low[2] > low[1] then
begin
myLow = low[1];
hasIn = true;
end;
謝謝許教授 另外再請教您一個問題
假設腳本如下
variable: intrabarpersist vv(0);
variable: intrabarpersist hasIn(false);
if high > low then vv+=1;
if isFirstCall("Date") then hasIn = false;
if hasIn = false and vv = 2 then ret = 1;
hasIn = true;
以上腳本我是希望vv=2 那腳本觸發一次後 就不要再觸發了
但我觸發設定是需要設定k棒內單次觸發 因為我可能還會寫別的情況
例如可能if close > low then tt+=1;
所以還是有可能會有tt觸發 所以腳本觸發設定只能設定k棒內單次觸發
請問要怎樣寫才能例如vv觸發後就別再觸發了呢 因為我發現我上面改這樣是錯的
再麻煩教授了!!
單根K棒觸發一次,可參考以下範例:
if barfreq <> "Min" or barinterval <> 5 then raiseruntimeerror("限用5分鐘");
var: intraBarPersist myTime(0);
if GetInfo("IsRealTime") = 0 then return;
if c cross over highest(h[1],3) and Time<>myTime then
begin
SetPosition(Position+1);
myTime=Time;
end;
許教授您好 我可能解釋的不夠好
我意思是想說 假設我設定兩個變數
一個是vv 一個是tt
那假設 腳本內如下
vv = 2 then ret = 1;
tt = 2 then ret = 1;
那我要怎樣寫才能限制住 例如
只要vv=2 然後腳本觸發後 如果還有相同條件 我就不要再執行了 或是
只要tt=2 然後腳本觸發後 如果還有相同條件 我就不要再執行了
腳本內寫兩個觸發條件 所以 觸發設定是需要設定k棒內單次觸發
我希望 vv 跟 tt 就都各只觸發一次就好
感謝您
var: intrabarpersist hasin1(false);
var: intrabarpersist hasin2(false);
if vv=2 and hasin1=false then
begin
ret=1;
hasin1=true;
end;
if tt=2 and hasin2=false then
begin
ret=1;
hasin2=true;
end;
謝謝許教授 感謝您
10 評論