for (i =0;i<OrdersTotal();i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true&&OrderMagicNumber()==MAGICMA&&OrderSymbol()==Symbol())
{
if (MathAbs(funk-OrderOpenPrice())>Point)
{
if (OrderType()==OP_BUYSTOP||OrderType()==OP_BUYLIMIT&&MathAbs(Ask-funk)>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
{
OrderModify(OrderTicket(),NormalizeDouble(funk,Digits),OrderStopLoss(),NormalizeDouble(funk+TakeProfiti*Point,Digits),0);
}
if (OrderType()==OP_SELLSTOP||OrderType()==OP_SELLLIMIT&&MathAbs(Bid-funk)>MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
{
OrderModify(OrderTicket(),NormalizeDouble(funk,Digits),OrderStopLoss(),NormalizeDouble(funk-TakeProfiti*Point,Digits),0);
}
}
}
}
你能做什么?
开盘前更新数据,使价格正常化
我马上写道,不建议采用这种封闭方式。正在使用一个未记录的功能。但任何未结头寸的平仓时间都是零,平仓价格将等于当前的收盘价。
经过这些经历,已经很明显了)
对此可以做些什么?
仔细看一下你在开仓时设定的价格。当然,一定有...Ask与 Bid 混淆了吗?
是的,它是。我有。
它是。谢谢你。
我试了又试,但得到的结果是挂单像个病人一样在价格后面来回移动...
是否有可能重新制作简单的尾随功能,使其处理订单而不是停止?例如这个。
Print()四舍五入到4位数,以正确地输出到控制台的类型为double(它返回iOpen() 5位小数,在这种情况下),你应该使用DoubleToStr()函数
string DoubleToStr(double value,int digits)
将一个数字值转换为一个包含指定精度格式的数字字符表示的文本字符串。
参数。
value - Величина с плавающей точкой.
digits - Формат точности, число цифр после десятичной точки (громное спасибо.
非常感谢您。
看看这个EA,我已经在那里实现了它。
http://www.rogersignals.com/ru/experts.php?a=Support_Resistance
有人做了一个简单的追踪止损,把挂单移到价格后面,而不是止损水平后面吗?有可能做到吗?
我试了又试,但得到的结果是挂单像个病人一样在价格后面来回移动......
是否有可能重新制作简单的尾随功能,使其处理订单而不是停止?例如这个。
一切都太复杂了:)))
你在方法中传入一个延迟的medge和一个期望的trall作为参数。以下是我的代码
这对你来说有点太复杂了 :))
将方法作为参数传入一个延迟的medjw,以及所需的trall。以下是我的代码