编码帮助 - 页 471 1...464465466467468469470471472473474475476477478...786 新评论 Mladen Rakic 2015.05.14 05:49 #4701 systemfault: 大家好。我需要帮助...我有一个简单的EA,但为4位数编程。(例如: EUR/USD: 1,1234) 我怎样才能使用我的EA 5位数?(例如: EUR/USD: 1,12345) 谢谢:) simpleea.mq4 你可以添加这个。 *MathPow(10,_Digits%2) 在你使用_Point的地方,然后它将在4位数和5位数的经纪商上同样以点数工作。 ____________________ systemfault 2015.05.14 05:54 #4702 嗨,mladen。 谢谢你的帖子。 我是这样做的。 int CheckForOpen() { double L = Low; double H = High; double Lots = MathRound(AccountBalance()/100)/1000; 如果((H-Bid>Limit*Point)) {OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,",MAGICMA,0,CLR_NONE); for(int i=1; i<5; i++){OrderSend(Symbol(),OP_BUYLIMIT,MathPow(2,i)*Lots,Ask-i*Grid*Point*MathPow(10,_Digits%2),1,0,0,",MAGICMA,0,CLR_NONE); } } 如果((Bid-L>Limit*Point)) {OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,",MAGICMA,0,CLR_NONE); for(int j=1; j<5; j++){OrderSend(Symbol(),OP_SELLLIMIT,MathPow(2,j)*Lots,Bid+j*Grid*Point*MathPow(10,_Digits%2),1,0,0,",MAGICMA,0,CLR_NONE); } } } 其真实性? Coding help 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 Broker digits Vs Symbol Mladen Rakic 2015.05.14 05:58 #4703 systemfault: 你好,mladen。 谢谢你的帖子。我是这样做的。int CheckForOpen(){double L = Low;double H = High;double Lots = MathRound(AccountBalance()/100)/1000;如果((H-Bid>Limit*Point)){OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,",MAGICMA,0,CLR_NONE);for(int i=1; i<5; i++){OrderSend(Symbol(),OP_BUYLIMIT,MathPow(2,i)*Lots,Ask-i*Grid*Point*MathPow(10,_Digits%2),1,0,0,",MAGICMA,0,CLR_NONE); }}如果((Bid-L>Limit*Point)){OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,",MAGICMA,0,CLR_NONE);for(int j=1; j<5; j++){OrderSend(Symbol(),OP_SELLLIMIT,MathPow(2,j)*Lots,Bid+j*Grid*Point*MathPow(10,_Digits%2),1,0,0,",MAGICMA,0,CLR_NONE); }}} 它是真的吗? 是的 但是也要把网格参数 从1500改为150,否则会试图把价格设置在离买入价或卖出价1500点的地方。 systemfault 2015.05.14 06:01 #4704 我正在使用这种配置。 Extern int PeriodX = 60; extern int Limit = 50; extern int Grid = 14; extern int Amount = 1; extern int LockDown = 20; 这是怎样的配置? Mladen Rakic 2015.05.14 06:08 #4705 systemfault: 我正在使用这个配置。外部int PeriodX = 60; Extern int Limit = 50; Extern int Grid = 14; extern int Amount = 1; extern int LockDown = 20; 那是怎样的配置? 它将打开买入和卖出限制,离卖出价和买入价有14个点。 试试吧 systemfault 2015.05.14 06:15 #4706 mladen: 它将打开买入和卖出限制,离卖出价和买入价有14个点的距离 试试吧 我试了一下......好像是这样......。 附加的文件: adsz.png 35 kb Mladen Rakic 2015.05.14 06:40 #4707 systemfault: 我尝试......似乎是这样...... 在我看来,它正在做它想做的事情。 systemfault 2015.05.14 06:46 #4708 mladen: 在我看来,它正在做它想做的事情 是的,Miladen... 但我不想在没有利润的情况下关闭订单,止损14个点。 Mladen Rakic 2015.05.14 06:52 #4709 systemfault: 是的...但我不想在没有利润的情况下关闭订单,止损14个点。 然后再加上获利 和止损 systemfault 2015.05.14 07:01 #4710 mladen: 然后再加上止盈和止损 我添加了这段代码。 int CheckForClose() { 如果(getProfit()>=Amount){CloseAll();}。 如果(LockDown>0) { for(int TradeNumber = OrdersTotal(); TradeNumber >= 0; TradeNumber--) { 如果(OrderSelect(TradeNumber, SELECT_BY_POS, MODE_TRADES)&&(LockDown>0)) { int Pos=OrderType(); 如果((Pos==OP_BUY)&&(Bid-OrderOpenPrice()>Point*MathPow(10,_Digits%2)*LockDown)&&(OrderStopLoss() ==0)) {OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+Point,OrderTakeProfit(),0,CLR_NONE); } 如果((Pos==OP_SELL)&&(OrderOpenPrice()-Ask>Point*MathPow(10,_Digits%2)*LockDown)&&(OrderStopLoss() ==0)) {OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point,OrderTakeProfit(),0,CLR_NONE); } } } } } 例如;欧元/美元订单价格1.12345 sl/tp 1.12346 我想要sl/tp 1.12355 我不明白哪里出了问题? Coding help 如何编码? 初学者的问题 MQL4 MT4 MetaTrader 1...464465466467468469470471472473474475476477478...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好。
我需要帮助...我有一个简单的EA,但为4位数编程。(例如: EUR/USD: 1,1234)
我怎样才能使用我的EA 5位数?(例如: EUR/USD: 1,12345)
谢谢:)
simpleea.mq4你可以添加这个。
*MathPow(10,_Digits%2)
在你使用_Point的地方,然后它将在4位数和5位数的经纪商上同样以点数工作。
____________________
嗨,mladen。
谢谢你的帖子。
我是这样做的。
int CheckForOpen()
{
double L = Low;
double H = High;
double Lots = MathRound(AccountBalance()/100)/1000;
如果((H-Bid>Limit*Point))
{OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,",MAGICMA,0,CLR_NONE);
for(int i=1; i<5; i++){OrderSend(Symbol(),OP_BUYLIMIT,MathPow(2,i)*Lots,Ask-i*Grid*Point*MathPow(10,_Digits%2),1,0,0,",MAGICMA,0,CLR_NONE); }
}
如果((Bid-L>Limit*Point))
{OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,",MAGICMA,0,CLR_NONE);
for(int j=1; j<5; j++){OrderSend(Symbol(),OP_SELLLIMIT,MathPow(2,j)*Lots,Bid+j*Grid*Point*MathPow(10,_Digits%2),1,0,0,",MAGICMA,0,CLR_NONE); }
}
}
其真实性?
你好,mladen。
谢谢你的帖子。
我是这样做的。
int CheckForOpen()
{
double L = Low;
double H = High;
double Lots = MathRound(AccountBalance()/100)/1000;
如果((H-Bid>Limit*Point))
{OrderSend(Symbol(),OP_BUY,Lots,Ask,1,0,0,",MAGICMA,0,CLR_NONE);
for(int i=1; i<5; i++){OrderSend(Symbol(),OP_BUYLIMIT,MathPow(2,i)*Lots,Ask-i*Grid*Point*MathPow(10,_Digits%2),1,0,0,",MAGICMA,0,CLR_NONE); }
}
如果((Bid-L>Limit*Point))
{OrderSend(Symbol(),OP_SELL,Lots,Bid,1,0,0,",MAGICMA,0,CLR_NONE);
for(int j=1; j<5; j++){OrderSend(Symbol(),OP_SELLLIMIT,MathPow(2,j)*Lots,Bid+j*Grid*Point*MathPow(10,_Digits%2),1,0,0,",MAGICMA,0,CLR_NONE); }
}
}
它是真的吗?是的
但是也要把网格参数 从1500改为150,否则会试图把价格设置在离买入价或卖出价1500点的地方。
我正在使用这种配置。
Extern int PeriodX = 60;
extern int Limit = 50;
extern int Grid = 14;
extern int Amount = 1;
extern int LockDown = 20;
这是怎样的配置?
我正在使用这个配置。
外部int PeriodX = 60;
Extern int Limit = 50;
Extern int Grid = 14;
extern int Amount = 1;
extern int LockDown = 20;
那是怎样的配置?它将打开买入和卖出限制,离卖出价和买入价有14个点。
试试吧
它将打开买入和卖出限制,离卖出价和买入价有14个点的距离 试试吧
我试了一下......好像是这样......。
在我看来,它正在做它想做的事情。
在我看来,它正在做它想做的事情
是的,Miladen...
但我不想在没有利润的情况下关闭订单,止损14个点。
是的...但我不想在没有利润的情况下关闭订单,止损14个点。
然后再加上获利 和止损
然后再加上止盈和止损
我添加了这段代码。
int CheckForClose()
{
如果(getProfit()>=Amount){CloseAll();}。
如果(LockDown>0)
{
for(int TradeNumber = OrdersTotal(); TradeNumber >= 0; TradeNumber--)
{
如果(OrderSelect(TradeNumber, SELECT_BY_POS, MODE_TRADES)&&(LockDown>0))
{ int Pos=OrderType();
如果((Pos==OP_BUY)&&(Bid-OrderOpenPrice()>Point*MathPow(10,_Digits%2)*LockDown)&&(OrderStopLoss() ==0))
{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+Point,OrderTakeProfit(),0,CLR_NONE); }
如果((Pos==OP_SELL)&&(OrderOpenPrice()-Ask>Point*MathPow(10,_Digits%2)*LockDown)&&(OrderStopLoss() ==0))
{OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point,OrderTakeProfit(),0,CLR_NONE); }
}
}
}
}
例如;欧元/美元订单价格1.12345 sl/tp 1.12346
我想要sl/tp 1.12355
我不明白哪里出了问题?![](https://c.mql5.com/forextsd/smiles/frown.png)