//买入条件
entry_condition1 = MidLine[1] < MidLine[0];
entry_condition2 = CrossOver(kValue[0], DValue[0]);
if( MarketPosition<>1 and entry_condition1 and entry_condition2)
{
buy(lots,Open);
takeprofeprice = open+win*minmove*pricescale;
stoplostprice = open-loss*minmove*pricescale;
}
PlotNumeric ("takeprofeprice ",takeprofeprice,0,Red);
PlotNumeric ("stoplostprice ",stoplostprice,0,Green);
//出场
how_S =T*60;
for i=0 to how_S
{
if( MarketPosition == 1 and High>=takeprofeprice)
{
Sell(0,max(Open,takeprofeprice));
}
if( MarketPosition == 1 and Low<=stoplostprice)
{
Sell(0,Min(Open,stoplostprice));
}
}
历史回测,怎么是同时买入/平仓呢
实盘中,平仓作废
程序顺序,是先入场,后出场啊
该怎么改进呢?
历史回测,每一根bar只跑一次,用收盘状态下bar的数据来运行公式,如果同时满足了开平条件,就会标记开仓和平仓信号。
你策略的问题就在于,你的止损跳数对于你使用的周期来说太小了,导致同时满足条件。
你可以加上barssinceentry函数判断强制开仓bar不平仓
或者放大跳数
或者跨周期处理