不知道您這里是要求close>lowest(L,10) 連續滿足十根bar還是十天,那這兩種情況下面都會給出相應的代碼:
一、連續滿足十根bar,countif(close>lowest(L,10),10)=10即可,因為countif(test,length)統計的是最近length根bar(包括當根bar)上test成立的次數,若結果是length次就表明連續length根bar都滿足條件。
二、連續滿足十天,這個有點麻煩,需要使用數組、關于每天的開始時間和結束時間的初始參數。
input: starttime(2100), endtime(1500);
{一天的開始時間starttime和一天的結束時間endtime}
var: flag(-1), var_true(true);
{flag用于統計天數,var_true變量用于判斷當天close>lowest(low,10)是否連續成立,默認是true}
array: arr0[9](false);
if time=starttime then begin
? ? ? ? var_true=true;
? ? ? ? flag=flag+1;
end;
{每天的開始時間點,變量設定,將flag累加1,將var_true賦值為true,因為在下面只判斷為false的情況}
if flag<>-1 and var_true=true and close<=lowest(low,10) then
? ? ? ? var_true=false;
{判斷當天是否有不連續的情況,若有則賦值var_true為false,當天的剩余時間將不再判斷}
if time=endtime and flag<>-1 then
? ? ? ? arr0[mod(flag,10)]=var_true;
{每天的結束時間點,將var_true賦值存儲到數組中,通過mod求余運算,使數組中存儲的是始終是最近10天是否連續的情況}
if flag>9 then
? ? ? ? condition1=not array_contains(arr0,false);
{當flag>9說明數組中已經存儲了最近10天是否連續的情況,若數組中沒有false,則說明連續10天close>lowest(low,10)成立,此時condition1為true;否則condition1為false}
注意事項:對于短周期,比如1分鐘甚至更小,或者對于交易量比較小的商品合約,有可能開始時間或者結束時間點沒有K線,那么這個算法就會出現問題;所以這里只是給出一個模板,關于時間的界定,您可能需要貼出您的具體情境,然后特別定制代碼界定時間。
此外,更簡單的辦法是,通過插入日線周期的子圖,然后聲明一個基于子圖的變量,通過這個變量來保存當天是否連續。
?
不知道您這里是要求close>lowest(L,10) 連續滿足十根bar還是十天,那這兩種情況下面都會給出相應的代碼:
一、連續滿足十根bar,countif(close>lowest(L,10),10)=10即可,因為countif(test,length)統計的是最近length根bar(包括當根bar)上test成立的次數,若結果是length次就表明連續length根bar都滿足條件。
二、連續滿足十天,這個有點麻煩,需要使用數組、關于每天的開始時間和結束時間的初始參數。
input: starttime(2100), endtime(1500);
{一天的開始時間starttime和一天的結束時間endtime}
var: flag(-1), var_true(true);
{flag用于統計天數,var_true變量用于判斷當天close>lowest(low,10)是否連續成立,默認是true}
array: arr0[9](false);
if time=starttime then begin
? ? ? ? var_true=true;
? ? ? ? flag=flag+1;
end;
{每天的開始時間點,變量設定,將flag累加1,將var_true賦值為true,因為在下面只判斷為false的情況}
if flag<>-1 and var_true=true and close<=lowest(low,10) then
? ? ? ? var_true=false;
{判斷當天是否有不連續的情況,若有則賦值var_true為false,當天的剩余時間將不再判斷}
if time=endtime and flag<>-1 then
? ? ? ? arr0[mod(flag,10)]=var_true;
{每天的結束時間點,將var_true賦值存儲到數組中,通過mod求余運算,使數組中存儲的是始終是最近10天是否連續的情況}
if flag>9 then
? ? ? ? condition1=not array_contains(arr0,false);
{當flag>9說明數組中已經存儲了最近10天是否連續的情況,若數組中沒有false,則說明連續10天close>lowest(low,10)成立,此時condition1為true;否則condition1為false}
注意事項:對于短周期,比如1分鐘甚至更小,或者對于交易量比較小的商品合約,有可能開始時間或者結束時間點沒有K線,那么這個算法就會出現問題;所以這里只是給出一個模板,關于時間的界定,您可能需要貼出您的具體情境,然后特別定制代碼界定時間。
此外,更簡單的辦法是,通過插入日線周期的子圖,然后聲明一個基于子圖的變量,通過這個變量來保存當天是否連續。