不在同一根K線上開平多次
作者:開拓者 TB 來源:cxh99.com 發布時間:2019年01月14日
-
咨詢內容:
本帖最后由 YINZHIHUI 于 2018-9-10 15:17 編輯
老師,您好!
以下是模型的語句。我不想在同一個BAR上出現兩次及以上的信號,請問應該怎樣調整語句可以實現?
我嘗試在條件里加上BARSSINCELASTENTRY()>0,但不出信號。
謝謝!
Params
Numeric K1(0.5);
Numeric K2(0.5);
Numeric M(1);
Numeric N(1);
Numeric Hands(1);
Numeric Length(120);
Vars
Numeric BuyRange;
Numeric SellRange;
Numeric BUYLINE;
Numeric SELLLINE;
Numeric HH;
Numeric LL;
Numeric HC;
Numeric LC;
Numeric MA;
Begin
? ? ? ? MA=AverageFC(Close,Length);
? ? ? ? PlotNumeric("MA",AverageFC(Close,Length));
? ? HH = HighestFC(H[1],M);
? ? ? ? HC = HighestFC(C[1],M);
? ? ? ? LC = LowestFC(C[1],M);
? ? ? ? LL = LowestFC(L[1],M);
? ? ? ?
? ? ? ? BuyRange=MAX(HH-LC,HC-LL);
? ? ? ?
? ? HH = HighestFC(H[1],N);
? ? ? ? HC = HighestFC(C[1],N);
? ? ? ? LC = LowestFC(C[1],N);
? ? ? ? LL = LowestFC(L[1],N);
? ? ? ?
? ? ? ? SellRange=MAX(HH-LC,HC-LL);
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ? BUYLINE??= OPEN + K1*BuyRange;
? ? SELLLINE = OPEN - K2*SellRange;
? ? PlotNumeric("BUYLINE",BUYLINE,0,White);
? ? ? ? PlotNumeric("SELLLINE",SELLLINE,0,Green);
? ? ? ?
if(buyline>sellline && sellline>ma)
{
??if(h>=buyline)
??{
? ? ? ? Buy(hands,buyline);
? ? ? ?
??}
? ?if(l<=ma)
??{
? ? ? ? SellShort(hands,ma);
? ? ? ?
? ? ? ?
??}
}? ? ? ?
? ? ? ?
if(buyline>ma && ma>sellline)
{
??if(h>=buyline)
??{
? ? ? ? Buy(hands,buyline);
? ? ? ?
??}
? ?if(l<=sellline);
??{
? ? ? ? SellShort(hands,sellline);
? ? ? ?
? ? ? ?
??}
}? ? ? ?
if(ma>buyline && buyline>sellline)
{
??if(h>=ma)
??{
? ? ? ? Buy(hands,ma);
? ? ? ?
??}
? ?if(l<=sellline)
??{
? ? ? ? SellShort(hands,sellline);
? ? ? ???
? ? ? ?
??}
} ? ? ? ?
? ? ? ? End
?
?來源:CXH99.COM
-
TB技術人員:
這樣的上下軌通道突破類的條件,是很難從代碼邏輯上去避免同一個bar多個反向條件滿足的可能性。
根本的辦法是擴大通上下軌通道,或是換到小周期圖表上運算,盡可能避免在同一個bar上滿足兩年反向的條件。