如何编码? - 页 19

 

谢谢你的努力,Nicholishen。不幸的是,它没有工作。它正在修改订单,但是是双向的。我的意思是,在买入的情况下,它会将止损点向上移动,但它也会向下移动。我需要停止向下移动

 

我明白你的意思,但代码是正确的。要么是有另一个EA在修改这些订单,要么是EA中有其他代码在做,因为肯定不是这段代码。你需要停止所有其他的EA,并检查 主EA代码中对OrderModify()的其他调用。

祝您好运 =)

附加的文件:
 

谢谢你对我这个不懂的人花时间。

代码中唯一的其他修改是收支平衡和锁定点数,我会附上。

BEx=要锁定的点数

我已经看了很多次了,我确信它正看着我,但我不是专家,充其量是个黑客。

再次感谢Nicholishen!

void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

哦,忘了补充,这是唯一的EA。只是目前正在进行回测

 
C.E.O.:
谢谢你花时间看我的无知自我

代码中唯一的其他订单修改是收支平衡和锁定点数。 我将附上它。

BEx=要锁定的点数

我已经看了很多次了,我相信它就在我眼前,但我不是专家,充其量是个黑客。

再次感谢Nicholishen!

void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}[/PHP]

Oh forgot to add, this is the only EA. Just currently backtesting.

可能发生的情况是,一个函数使另一个函数失效。 你需要检查你的逻辑,以便一次只操作一个。

[PHP]void DoBE(int byPips)

{

for (int i = 0; i < OrdersTotal(); i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES)。

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName) ) ) //只看mygrid和符号的情况。

{

如果(OrderType() == OP_BUY)

{

如果(Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

如果(OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red) 。

}

}

}

如果(OrderType() == OP_SELL)

{

如果(OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

如果 (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red) 。

}

}

}

}

}

返回。

}
 

MQL4命令/代码验证

信息已删除。对不起,给您带来不便。

 

允许实时交易 "的代码

你好,为了让EA工作,我们必须启用 "允许实时交易 "选项,那么在加载EA时,我应该添加哪一行代码来自动在EA中启用该选项,而不是一直勾选它?

谢谢

 

你不需要用代码来做这个。

matrixebiz:
你好,为了让EA工作,我们必须启用 "允许实时交易 "选项,那么在加载EA时,我应该添加哪一行代码来自动启用EA中的该选项,而不是一直勾选它?谢谢

你好,Matrixebiz。

你可以通过进入MetaTrader的菜单轻松做到这一点。进入 "工具",然后进入 "选项"(或者直接输入CRTL-O)。然后,在 "专家顾问 "选项卡中,勾选 允许实时交易选项。这样一来,你之后安装的所有EA都将被允许进行实时交易。

-RJ1-

 

哦,好的,这很容易 谢谢

 

EA时间代码

我想要EA的时间代码。例如,它将只启用18:00-1:00的交易。这可能吗?

 

发现这个

如果(UseHourTrade){

if(!(Hour()>=FromHourTrade&&Hour()<=ToHourTrade)){

Comment("非交易时间!")。

return(0);

有一个问题。

它使用我的外汇经纪人时间:是还是不是?

我想是的,但我想确定一下

我怎么能把分钟放在那里,比如15:30?只有小时吗?