如何编码? - 页 319 1...312313314315316317318319320321322323324325326...347 新评论 NMSS_2 2012.10.22 08:31 #3181 Tomcat98: 编码员你好。如何编写一些额外的编码行,使专家在交易获胜后停止? 点子已经在袋子里了,然后让专家停止... 非常感谢 Tomcat98 如果你有一些编码经验,请看下文。否则,请找一个编码员。 1) 在每次交易结束后,在OrdersHistoryTotal()中做一个循环,检查交易。 2) 检查最后一笔交易的关闭时间(OrderCloseTime())。 3) 如果是最后一笔交易,检查OrderProfit() ==利润。 如果利润==真,设置EndDayTrade==真&&LastTradeDay==年月日()。 如果利润==假,则设置EndDayTrade==假。 4) 当程序通过start()时,你需要在开始任何新的交易之前插入==> if EndDayTrade == false。因为它是真的,那么它将不会触发新的交易。 5)你将需要一个定时器函数 来检查新的一天。(假设新的一天是你想要触发新的交易)。 最简单的形式是 if (LastDay != DayofYear() )。 6) 在上述定时器函数中,设置 LastDay = DayofYear()。 如果 ( LastTradeDay != DayofYear() && EndDayTrade == true) 设置EndDayTrade == false,这样就重新开始了。 用户定义的变量 bool EndDayTrade = false。 int LastTradeDay = 9999999; int LastDay = 999999; 希望这个解释足够清楚。 How to code? 我被起诉了,我在哪里可以找到什么原因? 从 MQL4 迁移到 MQL5 dasio 2012.10.23 12:46 #3182 dasio: 你好。我正在尝试合并这两段代码,但我遇到了麻烦。 我需要的是,当一个挂单成交后,另一个必须被取消。 谢谢你的支持 int opened =0; int pending =0; for(int i=OrdersTotal()-1; i>=0; i--) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol() !=Symbol()) continue; if(OrderMagicNumber()!=Magic) continue; if(OrderType()==OP_BUY || OrderType()==OP_SELL) opened++; else pending++; } if (opened>0 && pending>0) { for(i=OrdersTotal()-1; i>=0; i--) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol() !=Symbol()) continue; if(OrderMagicNumber()!=Magic) continue; if(OrderType()!=OP_BUY && OrderType()!=OP_SELL) OrderDelete(OrderTicket()); } } [/PHP] [PHP] extern int Magic = 68415; extern int Orario_Inizio = 0; extern int Orario_Fine = 6; extern int Buffer = 0; extern double Lotti = 0.1; extern int TakeProfit = 10; extern int StopLoss = 50; double Massimo; double Minimo; int BarCount; int BarStart; int BarShift; double MinLot; double LotSize; int i; int ticket; string Status; string BuyStatus1; string SellStatus1; double Range; string CommentoRange; double pipMultiplier = 1; int init() { } int start() { if (Digits==3 || Digits==5) {pipMultiplier = 10;} else {pipMultiplier = 1; } double TakeProfit1 = TakeProfit*Point*pipMultiplier; double StopLoss1 = StopLoss*Point*pipMultiplier; double Buffer1 = Buffer*Point*pipMultiplier; double StopLossPrice = NormalizeDouble(StopLoss1,Digits); double TakeProfitPrice = NormalizeDouble(TakeProfit1,Digits); double BufferPrice = NormalizeDouble(Buffer1,Digits); //CALCOLA LE BARRE DEL RANGE if(Orario_Inizio>Orario_Fine) { BarCount=24+Orario_Fine-Orario_Inizio; } if(Orario_Inizio<Orario_Fine) { BarCount=Orario_Fine-Orario_Inizio; } //CALCOLA IL MASSIMO E IL MINIMO DEL RANGE if(Hour()>=Orario_Fine) { BarStart=Hour()-Orario_Fine; BarShift=BarStart+BarCount; Minimo=iLow(NULL,PERIOD_H1,BarStart); Massimo=0; for(i=BarStart;i<=BarShift;i++) { Massimo=MathMax(Massimo,iHigh(NULL,PERIOD_H1,i)); Minimo=MathMin(Minimo,iLow(NULL,PERIOD_H1,i)); Range=(Massimo-Minimo)/Point; } } else { Massimo=0; Minimo=0; return(0); } //CONTROLLA SE E' L'ORARIO PER POTER TRADARE if(Hour()==Orario_Fine && OrdersTotal()<2) { //CONTROLLA SE IL MASSIMO E' STATO ROTTO. CONDIZIONE BUY double OpenPriceBuy = NormalizeDouble((Massimo+BufferPrice),Digits); ticket=OrderSend(Symbol(),OP_BUYSTOP,Lotti,OpenPriceBuy,0,OpenPriceBuy-StopLossPrice,OpenPriceBuy+TakeProfitPrice,NULL,Magic,0,Blue); //CONTROLLA SE IL MINIMO E' STATO ROTTO. CONDIZIONE SELL double OpenPriceSell = NormalizeDouble((Minimo-BufferPrice),Digits); ticket=OrderSend(Symbol(),OP_SELLSTOP,Lotti,OpenPriceSell,0,OpenPriceSell+StopLossPrice,OpenPriceSell-TakeProfitPrice,NULL,Magic,0,Red); if (ticket != -1) return(0); } } 谁能帮帮我? Mladen Rakic 2012.10.23 13:03 #3183 dasio 试着把整个代码放在start()程序的开头。当你开立挂单 时,你可能需要过滤掉一些方式,但如果你把这段代码放在开头,如果之前开立的挂单中有任何一个成为 "常规 "订单,它就会清理掉挂单。 dasio: 有人能帮忙吗? dasio 2012.10.25 11:31 #3184 你好。 我从这个主题中学到了很多东西,这也是我继续提问的原因。 现在。我试着自己做,但我还没有成功。 前提是我想在一个离线renko图表中使用这个指标。 我的目的是在蜡烛的上方或下方绘制多长时间的构造。 所以我知道,在蜡烛的规格中,有它打开的时间。因此,如果我用当前蜡烛的时间减去前一个蜡烛的时间,我就能得到我需要的东西。 那么我如何编写代码呢? 非常感谢你 [删除] 2012.10.25 22:33 #3185 不明白为什么这个代码试图修改已关闭的订单 我在两个if语句中加入了OrderCloseTime(),以为这样就可以结束ordermodify函数 的无效票据错误,但每隔一段时间,我的EA就会失去对所有订单的控制,并以某种方式混入一个已关闭的交易,并不断尝试修改它,产生巨大的日志文件,除非我重新启动MT4,否则不会继续交易。我不太确定它是如何接收到一个已关闭的订单的,也许当它在修改所有订单的过程中,其中一个订单在短时间内关闭,使它失去控制?就像我说的,这种情况在一天30-50次交易中可能会发生两次。 谁有什么办法来结束这种情况? if (NewOrdersPlaced_s3) { if (flag_s3 == TRUE) { for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--) { OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_3 || OrderCloseTime()!=0) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_3 && OrderCloseTime()==0)// OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow); //=== while(!OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow)) {Sleep(1000);RefreshRates();} //=== NewOrdersPlaced_s3 = FALSE; } } How to code? Can't Figure Out Why 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. Mastercash 2012.10.27 15:09 #3186 信号问题 mladen 非常感谢你的代码现在可以工作了。警报不再重复。请问我想主持一个脚本,将发送交易警报给多个收件人,如数百个,我怎么能做到这一点......是否有公司可以处理,你或本论坛的任何人知道。 Mastercash: Mladen 谢谢你,我已经仔细看了....Im 还在实验代码。我将在通过时通知你。 Mladen Rakic 2012.10.27 15:54 #3187 ... 2个想法: 1.如果你要发送,那么我认为唯一合理的方式是发送邮件,在这种情况下,你为什么不简单地使用一个在野外的电子邮件垃圾邮件程序? 2.发送信号有太多的问题(这是我的看法,发送的一些问题实际上是无法解决的)。所以你为什么不颠倒一下逻辑:不发送信号,而是制作一个代码,从一个给定的位置读取(包括用户名、密码等等......),这样你就解决了几乎所有发送信号无法解决的问题(包括防止同时从多个IP使用)。 所以,只是一些想法... Mastercash: mladen非常感谢你的代码现在工作了。警报不再重复。请问我想主持一个脚本,将发送交易警报给多个收件人,如数百人,我怎么能做到这一点...是否有公司可以处理,你或本论坛的任何人知道。 Mladen Rakic 2012.10.28 10:00 #3188 试试这样的方法。 #include #define PAUSE_BEFORE_RETRY 1000 #define NumberOfReTries 3 if (NewOrdersPlaced_s3 && flag_s3 == TRUE) { for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--) { if (!OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES)) continue; if (OrderSymbol() != Symbol()) continue; if (OrderMagicNumber() != MagicNumber_3) continue; for (int retry=0; retry<NumberOfReTries; retry++) { OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow); int error = GetLastError(); switch (error) { case ERR_SERVER_BUSY: case ERR_NO_CONNECTION: case ERR_INVALID_PRICE: case ERR_OFF_QUOTES: case ERR_BROKER_BUSY: case ERR_TRADE_CONTEXT_BUSY: Sleep(PAUSE_BEFORE_RETRY); continue; case ERR_PRICE_CHANGED: case ERR_REQUOTE: continue; default: retry=NumberOfReTries; } } NewOrdersPlaced_s3 = FALSE; } } beakon: 我在两个if语句中都添加了OrderCloseTime(),以为这样就可以结束这种无效的ordermodify函数错误,但是每隔一段时间,我的EA就会失去对所有订单的控制,并以某种方式混入一个已关闭的交易,并不断尝试修改它,产生巨大的日志文件,除非我重新启动MT4,否则不会继续交易。我不太确定它是如何接收到一个已关闭的订单的,也许当它在修改所有订单的过程中,其中一个订单在短时间内关闭,使它失去控制?就像我说的,这种情况在一天30-50次交易中可能会发生两次。有谁知道如何结束这种情况? if (NewOrdersPlaced_s3) { if (flag_s3 == TRUE) { for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--) { OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_3 || OrderCloseTime()!=0) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_3 && OrderCloseTime()==0)// OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow); //=== while(!OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow)) {Sleep(1000);RefreshRates();} //=== NewOrdersPlaced_s3 = FALSE; } } How to code? Can't Figure Out Why Questions from Beginners MQL5 Mastercash 2012.10.28 12:12 #3189 警报解决方案 我想我需要更多的解释,你能不能提示我如何编写和设置一个代码,帮助我同时向所有的客户发送警报。是通过在数据库中存储他们的电子邮件地址.....,但服务器语言,如php脚本,如何从mt4平台自动收集警报?......我想这就是问题所在,如果能有一个方法,可以发送到多个手机或电子邮件地址。你的建议,请? mladen: 2个想法。1.如果你要发送,那么我认为唯一合理的方式是发送邮件,在这种情况下,你为什么不干脆使用外面的垃圾邮件程序呢? 2.发送信号有太多的问题(这是我的看法,发送的一些问题实际上是无法解决的)。所以你为什么不颠倒一下逻辑:不发送信号,而是制作一个代码,从给定的位置读取(包括用户名、密码等等......),这样你就解决了几乎所有发送信号不能解决的问题(包括防止同时从多个IP使用)。 所以,只是一些想法... Mladen Rakic 2012.10.28 14:19 #3190 掌握现金 试着在谷歌上搜索 "群发邮件",我想你会找到答案的。 至于 "收集警报":你必须有一些东西可以将其"导出"为一些可读的格式,然后被你选择的软件识别,以分发信号或允许访问该信号。 PS:信号服务比乍看之下要复杂得多,如果你打算做一个,你可以指望大量的费用来使其正常工作。 Mastercash: 我想我需要更多的解释,你能不能提示我如何编写和设置一个代码,以帮助我在同一时间向所有客户发送警报。是通过在数据库中存储他们的电子邮件地址.....,但服务器语言,如php脚本,如何从mt4平台自动收集警报?......我认为这是一个问题,如果可以有一个方法,它可以发送到多个手机或电子邮件地址。你的建议,请? 1...312313314315316317318319320321322323324325326...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
编码员你好。
如何编写一些额外的编码行,使专家在交易获胜后停止?
点子已经在袋子里了,然后让专家停止...
非常感谢
Tomcat98如果你有一些编码经验,请看下文。否则,请找一个编码员。
1) 在每次交易结束后,在OrdersHistoryTotal()中做一个循环,检查交易。
2) 检查最后一笔交易的关闭时间(OrderCloseTime())。
3) 如果是最后一笔交易,检查OrderProfit() ==利润。
如果利润==真,设置EndDayTrade==真&&LastTradeDay==年月日()。
如果利润==假,则设置EndDayTrade==假。
4) 当程序通过start()时,你需要在开始任何新的交易之前插入==> if EndDayTrade == false。因为它是真的,那么它将不会触发新的交易。
5)你将需要一个定时器函数 来检查新的一天。(假设新的一天是你想要触发新的交易)。
最简单的形式是 if (LastDay != DayofYear() )。
6) 在上述定时器函数中,设置 LastDay = DayofYear()。
如果 ( LastTradeDay != DayofYear() && EndDayTrade == true)
设置EndDayTrade == false,这样就重新开始了。
用户定义的变量
bool EndDayTrade = false。
int LastTradeDay = 9999999;
int LastDay = 999999;
希望这个解释足够清楚。
你好。
我正在尝试合并这两段代码,但我遇到了麻烦。
我需要的是,当一个挂单成交后,另一个必须被取消。
谢谢你的支持
int pending =0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
opened++;
else pending++;
}
if (opened>0 && pending>0)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)
OrderDelete(OrderTicket());
}
} [/PHP]
[PHP] extern int Magic = 68415;
extern int Orario_Inizio = 0;
extern int Orario_Fine = 6;
extern int Buffer = 0;
extern double Lotti = 0.1;
extern int TakeProfit = 10;
extern int StopLoss = 50;
double Massimo;
double Minimo;
int BarCount;
int BarStart;
int BarShift;
double MinLot;
double LotSize;
int i;
int ticket;
string Status;
string BuyStatus1;
string SellStatus1;
double Range;
string CommentoRange;
double pipMultiplier = 1;
int init()
{
}
int start()
{
if (Digits==3 || Digits==5)
{pipMultiplier = 10;}
else {pipMultiplier = 1; }
double TakeProfit1 = TakeProfit*Point*pipMultiplier;
double StopLoss1 = StopLoss*Point*pipMultiplier;
double Buffer1 = Buffer*Point*pipMultiplier;
double StopLossPrice = NormalizeDouble(StopLoss1,Digits);
double TakeProfitPrice = NormalizeDouble(TakeProfit1,Digits);
double BufferPrice = NormalizeDouble(Buffer1,Digits);
//CALCOLA LE BARRE DEL RANGE
if(Orario_Inizio>Orario_Fine)
{
BarCount=24+Orario_Fine-Orario_Inizio;
}
if(Orario_Inizio<Orario_Fine)
{
BarCount=Orario_Fine-Orario_Inizio;
}
//CALCOLA IL MASSIMO E IL MINIMO DEL RANGE
if(Hour()>=Orario_Fine)
{
BarStart=Hour()-Orario_Fine;
BarShift=BarStart+BarCount;
Minimo=iLow(NULL,PERIOD_H1,BarStart);
Massimo=0;
for(i=BarStart;i<=BarShift;i++)
{
Massimo=MathMax(Massimo,iHigh(NULL,PERIOD_H1,i));
Minimo=MathMin(Minimo,iLow(NULL,PERIOD_H1,i));
Range=(Massimo-Minimo)/Point;
}
}
else
{
Massimo=0;
Minimo=0;
return(0);
}
//CONTROLLA SE E' L'ORARIO PER POTER TRADARE
if(Hour()==Orario_Fine && OrdersTotal()<2)
{
//CONTROLLA SE IL MASSIMO E' STATO ROTTO. CONDIZIONE BUY
double OpenPriceBuy = NormalizeDouble((Massimo+BufferPrice),Digits);
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lotti,OpenPriceBuy,0,OpenPriceBuy-StopLossPrice,OpenPriceBuy+TakeProfitPrice,NULL,Magic,0,Blue);
//CONTROLLA SE IL MINIMO E' STATO ROTTO. CONDIZIONE SELL
double OpenPriceSell = NormalizeDouble((Minimo-BufferPrice),Digits);
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lotti,OpenPriceSell,0,OpenPriceSell+StopLossPrice,OpenPriceSell-TakeProfitPrice,NULL,Magic,0,Red);
if (ticket != -1)
return(0);
}
}谁能帮帮我?![](https://c.mql5.com/forextsd/smiles/angel_smile.png)
dasio
试着把整个代码放在start()程序的开头。当你开立挂单 时,你可能需要过滤掉一些方式,但如果你把这段代码放在开头,如果之前开立的挂单中有任何一个成为 "常规 "订单,它就会清理掉挂单。
有人能帮忙吗?
你好。
我从这个主题中学到了很多东西,这也是我继续提问的原因。
现在。我试着自己做,但我还没有成功。
前提是我想在一个离线renko图表中使用这个指标。
我的目的是在蜡烛的上方或下方绘制多长时间的构造。
所以我知道,在蜡烛的规格中,有它打开的时间。因此,如果我用当前蜡烛的时间减去前一个蜡烛的时间,我就能得到我需要的东西。
那么我如何编写代码呢?
非常感谢你
不明白为什么这个代码试图修改已关闭的订单
我在两个if语句中加入了OrderCloseTime(),以为这样就可以结束ordermodify函数 的无效票据错误,但每隔一段时间,我的EA就会失去对所有订单的控制,并以某种方式混入一个已关闭的交易,并不断尝试修改它,产生巨大的日志文件,除非我重新启动MT4,否则不会继续交易。我不太确定它是如何接收到一个已关闭的订单的,也许当它在修改所有订单的过程中,其中一个订单在短时间内关闭,使它失去控制?就像我说的,这种情况在一天30-50次交易中可能会发生两次。
谁有什么办法来结束这种情况?
if (flag_s3 == TRUE) {
for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--) {
OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_3 || OrderCloseTime()!=0) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_3 && OrderCloseTime()==0)// OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow);
//===
while(!OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow))
{Sleep(1000);RefreshRates();}
//===
NewOrdersPlaced_s3 = FALSE;
}
}信号问题
mladen
非常感谢你的代码现在可以工作了。警报不再重复。请问我想主持一个脚本,将发送交易警报给多个收件人,如数百个,我怎么能做到这一点......是否有公司可以处理,你或本论坛的任何人知道。
Mladen 谢谢你,我已经仔细看了....Im 还在实验代码。我将在通过时通知你。
...
2个想法:
1.如果你要发送,那么我认为唯一合理的方式是发送邮件,在这种情况下,你为什么不简单地使用一个在野外的电子邮件垃圾邮件程序?
2.发送信号有太多的问题(这是我的看法,发送的一些问题实际上是无法解决的)。所以你为什么不颠倒一下逻辑:不发送信号,而是制作一个代码,从一个给定的位置读取(包括用户名、密码等等......),这样你就解决了几乎所有发送信号无法解决的问题(包括防止同时从多个IP使用)。
所以,只是一些想法...
mladen非常感谢你的代码现在工作了。警报不再重复。请问我想主持一个脚本,将发送交易警报给多个收件人,如数百人,我怎么能做到这一点...是否有公司可以处理,你或本论坛的任何人知道。
试试这样的方法。
#define PAUSE_BEFORE_RETRY 1000
#define NumberOfReTries 3
if (NewOrdersPlaced_s3 && flag_s3 == TRUE)
{
for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--)
{
if (!OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != MagicNumber_3) continue;
for (int retry=0; retry<NumberOfReTries; retry++)
{
OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow);
int error = GetLastError();
switch (error)
{
case ERR_SERVER_BUSY:
case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:
case ERR_OFF_QUOTES:
case ERR_BROKER_BUSY:
case ERR_TRADE_CONTEXT_BUSY:
Sleep(PAUSE_BEFORE_RETRY);
continue;
case ERR_PRICE_CHANGED:
case ERR_REQUOTE:
continue;
default:
retry=NumberOfReTries;
}
}
NewOrdersPlaced_s3 = FALSE;
}
}我在两个if语句中都添加了OrderCloseTime(),以为这样就可以结束这种无效的ordermodify函数错误,但是每隔一段时间,我的EA就会失去对所有订单的控制,并以某种方式混入一个已关闭的交易,并不断尝试修改它,产生巨大的日志文件,除非我重新启动MT4,否则不会继续交易。我不太确定它是如何接收到一个已关闭的订单的,也许当它在修改所有订单的过程中,其中一个订单在短时间内关闭,使它失去控制?就像我说的,这种情况在一天30-50次交易中可能会发生两次。
有谁知道如何结束这种情况?
if (flag_s3 == TRUE) {
for (cnt_s3 = OrdersTotal() - 1; cnt_s3 >= 0; cnt_s3--) {
OrderSelect(cnt_s3, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_3 || OrderCloseTime()!=0) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_3 && OrderCloseTime()==0)// OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow);
//===
while(!OrderModify(OrderTicket(), AveragePrice_s3, OrderStopLoss(), PriceTarget_s3, 0, Yellow))
{Sleep(1000);RefreshRates();}
//===
NewOrdersPlaced_s3 = FALSE;
}
}警报解决方案
我想我需要更多的解释,你能不能提示我如何编写和设置一个代码,帮助我同时向所有的客户发送警报。是通过在数据库中存储他们的电子邮件地址.....,但服务器语言,如php脚本,如何从mt4平台自动收集警报?......我想这就是问题所在,如果能有一个方法,可以发送到多个手机或电子邮件地址。你的建议,请?
2个想法。
1.如果你要发送,那么我认为唯一合理的方式是发送邮件,在这种情况下,你为什么不干脆使用外面的垃圾邮件程序呢?
2.发送信号有太多的问题(这是我的看法,发送的一些问题实际上是无法解决的)。所以你为什么不颠倒一下逻辑:不发送信号,而是制作一个代码,从给定的位置读取(包括用户名、密码等等......),这样你就解决了几乎所有发送信号不能解决的问题(包括防止同时从多个IP使用)。
所以,只是一些想法...掌握现金
试着在谷歌上搜索 "群发邮件",我想你会找到答案的。
至于 "收集警报":你必须有一些东西可以将其"导出"为一些可读的格式,然后被你选择的软件识别,以分发信号或允许访问该信号。
PS:信号服务比乍看之下要复杂得多,如果你打算做一个,你可以指望大量的费用来使其正常工作。
我想我需要更多的解释,你能不能提示我如何编写和设置一个代码,以帮助我在同一时间向所有客户发送警报。是通过在数据库中存储他们的电子邮件地址.....,但服务器语言,如php脚本,如何从mt4平台自动收集警报?......我认为这是一个问题,如果可以有一个方法,它可以发送到多个手机或电子邮件地址。你的建议,请?