至于代码,如果它使用 if (OrderSymbol() == Symbol()...) 那么 if (OrderSymbol()!= Symbol()) 继续;我们不需要其中任何一个。
for (int k = 0; k < OrdersTotal(); k++) 你最好把这句话改为
对于(int k = OrdersTotal()-1; k >=0; k--),它更安全。
我是这样写的
if(NumberOfPositionsSell(Symbol())==1 && NumberOfPositionsBay_otl(Symbol())==1 &&GetOrderLotsOtlBay(Symbol())==start_Lot*2 &&GetOrderLotsSell(Symbol())==start_Lot)
{
for (int kk = OrdersTotal()-1; kk >=0 ; kk--)
{
if (OrderSelect(kk,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:if (OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP ) {
tp_buy_otl=NormalizeDouble(b+((((2*Point)+spred+(b+Point+spred-GetOrderPriceSell(Symbol()))/Point)/2)*Point), Digits);
sl_buy_otl=NormalizeDouble(GetOrderPriceSell(Symbol()), Digits);
OrderModify(OrderTicket(), NormalizeDouble(b+Point+spred, Digits),sl_buy_otl,tp_buy_otl,0);
Alert("tp_buy_otl = ",DoubleToStr(tp_buy_otl, Digits)+"\n"+"sl_buy_otl = ",DoubleToStr(sl_buy_otl, Digits)+"\n"+" цена открытия бай стоп = ", DoubleToStr(b+Point+spred, Digits)+"\n"+"OrderSymbol() = ",OrderSymbol()+"\n"+"OrderType() = ",OrderType());
}
if (OrderSymbol() == Symbol() && OrderType() == OP_SELL ) {
sl_sell_otl=NormalizeDouble(b+spred+Point, Digits);
OrderModify(OrderTicket(),OrderOpenPrice(), sl_sell_otl,OrderTakeProfit(),0);
}
}
}
}
а в алерте почемуто OrderSymbol()==GBPUSD посмотрите на скин
да и открытый селл он модифицировал а отложенный нет
在编辑面板上有SRC按钮,代码会自动在那里着色;)
至于代码,如果它使用 if (OrderSymbol() == Symbol()...) 那么 if (OrderSymbol()!= Symbol()) 继续;我们不需要其中任何一个。
for (int k = 0; k < OrdersTotal(); k++) 你最好把这句话改为
对于(int k = OrdersTotal()-1; k >=0; k--),它更安全。
我是这样写的
当我删除gbpusd的挂单,并从中删除EA时,欧元的订单立即被修改。
当我删除gbpusd的挂单,并从中删除EA时,欧元订单立即被修改。
大家好。朋友们,你们能不能告诉我,这种对一个EA 进行5年以上的测试 能不能算作成功。还是获利能力小而缩水大。我想听听我的意见,测试者的数据与真实账户有很大差别吗(我在Alpari终端测试过)?我正在展示结果。
大家好。朋友们,你们能不能告诉我,这种对一个EA进行5年以上的测试能不能算作成功。还是获利能力小而缩水大。我想听听我的意见,测试者的数据与真实账户有很大差别吗(我在Alpari终端测试过)? 我正在展示结果。
这是一个巨大的缩减,而盈利能力是不够的...资金的缩减量是多少?
也可能是这样。
相对值:0.78%)
最大金额: 97.81% )))
缩水很大,利润率有点低...资金的缩减量是多少?
可能是这样。
相对比例:0.78
资金的最大值。97.81% ))
我在EA中使用我自己的指标,在测试过程中我看到它正在增长,根据条件它应该打开买入,但它没有发生。
我在日志中看到以下错误(我有两种类型,我逐一显示)。
TestGenerator:不匹配的数据错误(在2013.12.11 21:00超过了体积限制372)。
TestGenerator:不匹配的数据错误(2013.09.12 19:45的低值1.33097没有从最低的时间框架达到,低价1.33105不匹配)。
也许自定义指标的操作有一些特殊性?我已经在这个EA上捣鼓了两个月,我正在无限期地推迟它。
一个EA上不时出现129,138的错误。只有在重新启动终端后,问题才得以解决。
我想添加市场信息功能来更新买入和卖出,然后进行检查。
是否有可能人为地调用129,138的错误?
错误129 - 错误的价格
错误138--新价格(重新报价)。
在发送交易请求 之前,通过使用RefreshRates()刷新交易环境,或直接从MarketInfo()获取最新价格。
不要忘记这一点。
专家顾问和脚本使用他们自己的历史数据副本工作。当前符号上的数据副本是在第一次启动专家顾问或脚本时创建的。
每次专家顾问或脚本下次运行时,最初创建的副本都会被更新。在专家顾问或脚本运行时,可能会有一个或多个新的点位到来,因此数据可能会过时。
错误129--价格不正确
错误138--新价格(重新报价)。
在发送交易请求之前,通过使用RefreshRates()更新交易环境,或直接从MarketInfo()获取最新价格。
不要忘记这一点。
专家顾问和脚本使用他们自己的历史数据副本工作。当前符号上的数据副本是在第一次启动专家顾问或脚本时创建的。
每次专家顾问或脚本下次运行时,最初创建的副本都会被更新。在专家顾问或脚本运行时,可能会有一个或多个新的点位到来,因此数据可能会过时。
非常感谢您!
现在我知道问题出在哪里了。
我用它来买东西。
据我所知,买入是要价,但iClose(Symbol(),Period(),0)从要价中获取价格。这可能是出错的原因。
但是,我有一个问题,因为该EA不是基于点数的EA,价格在买入区有很长一段时间,而且每一个刻度都在更新。现在我使用以下组合。
为什么交易不开放?事实证明,EA挂在错误上,没有看到进一步的价格运动?
我的专家顾问的模板来自https://c.mql5.com/mql4/book/mq4/experts/tradingexpert.mq4
在您看来,我是否应该在该EA的错误处理功能中加入对129和138错误的检查?
如果是,如何做呢?