求助:if 判斷不成立時候也執(zhí)行
作者:開拓者 TB 來源:cxh99.com 發(fā)布時間:2016年06月28日
- 咨詢內(nèi)容:
想寫一個如果10天內(nèi)不創(chuàng)新高就開空的程序,但是發(fā)現(xiàn)if 判斷句內(nèi)置條件不滿足也運(yùn)行,不知道如何解決。
criteria用來判斷當(dāng)天是否是新高,
criteriahigh用來判斷10天是否創(chuàng)過新高,
但是發(fā)現(xiàn)即便if 里的condition是false情況下,criteria還是會被賦值為1,求教這是什么問題?
Params
Numeric days(10); //多少天不創(chuàng)新高就會出現(xiàn)大幅回調(diào)
Numeric highrange(50); // 新高的范圍是多少
Vars
Numericseries criteria(0);
numericseries criteriahigh(0);
bool condition;
numeric myhigh;
Begin
myhigh=highest(close,highrange);
condition= myhigh==Close;
If (condition)
{
criteria=1;
}
criteriahigh=Highest(criteria,days);
if (criteriahigh==0)
{
sellshort(close,1);
}
End
- TB技術(shù)人員:
criteria在這里聲明的是序列變量,只要有過一次被賦值后,如果沒有再次賦值改變前,之后的每一個bar都是延續(xù)之前的值。
- TB客服:
多謝老師指導(dǎo),明白了,在開頭加一個criteria=0,每次賦個初始值就解決了,但是還有點(diǎn)疑問,就是一開始condition是不成立的情況,為什么第一個criteria也會被賦值1?不應(yīng)該是開始的Criteria一直是0,直到condition滿足后,criteria之后全變成1么?
- 網(wǎng)友回復(fù):
haniqwang 發(fā)表于 2016-4-19 08:58
多謝老師指導(dǎo),明白了,在開頭加一個criteria=0,每次賦個初始值就解決了,但是還有點(diǎn)疑問,就是一開始condi ...
上述代碼的條件,在第一個bar上就已經(jīng)滿足了condition.
公式里加上二句調(diào)試信息就可以清楚看到。- Begin
- myhigh=highest(close,highrange);
- condition= myhigh==Close;
- Commentary("myhigh="+text(myhigh));
- Commentary("close="+text(close));
- If (condition)
- {
- criteria=1;
- }
復(fù)制代碼
- 網(wǎng)友回復(fù):
感謝老師! |