策略交易中,我设置的出买入信号以K线开盘价的向下八跳委托,为什么策略会议开盘价直接委托成交?是需要什么设置吗?策略单元设置为滑点0点,委托偏移0跳
因为我的信号出来时价格到不了向下10跳,我想提前以向下10跳的价格委托,这个如何写呢?
比如这个代码
Params
Numeric FastLength(33);// 短期指数平均线参数
Numeric SlowLength(496);// 长期指数平均线参数
Numeric lots(1);
Numeric save(20);
Vars
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Series<Numeric> minpoint;
Events
OnBar(ArrayRef<Integer> indexs)
{
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
PlotNumeric("MA1",AvgValue1);
PlotNumeric("MA2",AvgValue2);
If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1] And AvgValue1[2] < AvgValue2[2] )
{
Buy(0,Open- 10 *MinMove * PriceScale);
}
If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1] And AvgValue1[2] > AvgValue2[2])
{
SellShort(0,Open + 8 *MinMove * PriceScale);
}
//PlotNumeric("PL",Portfolio_TotalProfit);
}
信号条件和信号价格是两码事 分清楚这两个概念
比如你k线开盘价1000 你设置向下10跳买入开仓 那应该写
if(low<1000-10) buy(1,min(open,1000-10));
你如果写成:if(close<open) buy(1,1000-10); 那当然就变成你说的那样
因为我的信号出来时价格到不了向下10跳,我想提前以向下10跳的价格委托,这个如何写呢?
比如这个代码
Params
Numeric FastLength(33);// 短期指数平均线参数
Numeric SlowLength(496);// 长期指数平均线参数
Numeric lots(1);
Numeric save(20);
Vars
Series<Numeric> AvgValue1;
Series<Numeric> AvgValue2;
Series<Numeric> minpoint;
Events
OnBar(ArrayRef<Integer> indexs)
{
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
PlotNumeric("MA1",AvgValue1);
PlotNumeric("MA2",AvgValue2);
If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1] And AvgValue1[2] < AvgValue2[2] )
{
Buy(0,Open- 10 *MinMove * PriceScale);
}
If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1] And AvgValue1[2] > AvgValue2[2])
{
SellShort(0,Open + 8 *MinMove * PriceScale);
}
//PlotNumeric("PL",Portfolio_TotalProfit);
}