新手求指點marketposttion的問題 [開拓者 TB]
- 咨詢內容:
Params
Numeric teLength(16); // 離市周期 Trailing Exit Length,在15分鐘上用16表達為4小時K線的最低或最高價
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Vars
NumericSeries MACDValue;
NumericSeries AvgMACD;
Numeric MACDDiff;
Numeric ExitHighestPrice; // 離市時判斷需要的N周期最高價
Numeric ExitLowestPrice; // 離市時判斷需要的N周期最低價
BoolSeries Condition1;
BoolSeries Condition2;
NumericSeries duo;
NumericSeries kong;
NumericSeries yid;
NumericSeries yik;
Begin
MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
AvgMACD = XAverage(MACDValue,MACDLength);
MACDDiff = MACDValue - AvgMACD;
PlotNumeric("MACD",MACDValue);
PlotNumeric("MACDAvg",AvgMACD);
If (MACDDiff >= 0)
PlotNumeric("MACDDiff",MACDDiff,0,Red);
Else
PlotNumeric("MACDDiff",MACDDiff,0,Green);
PlotNumeric("零線",0);
Condition1 = CrossOver(MACDValue,AvgMACD); //金叉買進
Condition2 = CrossUnder(MACDValue,AvgMACD); //死叉賣出
ExitLowestPrice = LowestFC(Low[1],teLength);
ExitHighestPrice = HighestFC(High[1],teLength);
If(MarketPosition!=0)
{
If(Condition1[1] && AvgMACD[1]<0 ) // 0線以下金叉開多
{
Buy(1,Open);
duo=ExitLowestPrice-50;
yid=(open-duo)*2+Open;
}Else If(Condition2[1] && AvgMACD[1]>0 ) //0線以上死叉開空
{
SellShort(1,Open);
kong=ExitHighestPrice+50;
yik=Open-(kong-Open)*2;
}
}
If(MarketPosition==1)
{
If(Open>=yid)
{
Sell(0,Open);
}Else
{
If(open<=duo)
{
Sell(0,Open);
}
}
}
If(MarketPosition==-1)
{
If(open<=yik)
{
BuyToCover(0,Open);
}Else
{
If(open>=kong)
{
BuyToCover(0,open);
}
}
}
End
這一段代碼中,為什么 有marketposition!=0這個條件,它就不開倉,去掉marketposition!=0就可以正常開倉。 - TB技術人員:
marketposition==0說明是沒有信號持倉的情況下。
marketposition!=0 是指已經有信號持倉的情況下。
加上marketposition!=0的條件是指已經有信號持倉后再去執行相應的指令。。
整個公式后面的指令也是判斷==1或==-1時,即加倉的指令。。
那圖表上加載一個公式時,一定是從0信號開始的。。在信號持倉為0時是不滿足你的任一開倉指令的。
自然,就一個信號也沒有了。
在公式里這個位置加上這個marketposition!=0的判斷明顯是不合理的。 - TB客服: 謝謝,版主老大,說明文件上沒寫這個。我改成==0了,沒問題了!
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容