voidOnTick() { Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1); //находим процент просадки и округляем до 1 знака if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3) //если просадка больше заданного и начата новая свеча на 4ч таймфрейме { Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале //Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно // пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры") //что то не выходит } }
我想说的是,如果你想让你的朋友知道你在做什么,那你就得去做。
贸易被禁用t .oshıbka
没有罪过,它是怎么发誓的。
什么是编译器错误
这与该函数必须是全局的事实有关,并且在没有意义的地方等待逗号的出现。例如,在关于经纪人和交易对的信息之间的分离器上
给傻子的建议。我如何开立一个真实账户?
你说 "没有 "是什么意思?按票据排序--总是会有一个顺序,与文件没有矛盾,它说的是按序列号排序,而不是按票据排序,它们是不同的东西。
我们在某一时刻有这样的订单清单(按票据)。
- 购买#1
- 购买#2
- 购买站#3
- 卖出#4
列表中门票的顺序是:#1,#2,#3,#4在3号 购买站之后,门票在列表中的顺序是什么?
是1号、2号、4号、3号 吗?
因此,门票也不能保证秩序井然。
我遇到的另一个问题!不要评判,我已经学习了2-3个星期的语言,也许我只是哑巴!
专家顾问的任务是每4小时通过电子邮件通知交易者,如果账户上的自由保证金增加了一定的价值。
在信息的主题中,你必须写上经纪人的名字和交易的货币对,并在信息的正文中写上 "危险!"。缩减的幅度超过了极限。采取必要的措施"。
编译器出了故障,我的英语不好,我也搞不清楚错误是什么!
double Sag;
void OnTick()
{
Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1); //находим процент просадки и округляем до 1 знака
if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3) //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
{
Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит
}
}
PS:也许在一般情况下,这种问题有一个更简单的解决方案,但到目前为止,我只看到了这种方式)
//| exTestSendMail.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
input double MessageMail = 50.0;
//---
double Sag=0;
string MailSubject="";
datetime PrevTime=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
MailSubject="Mail from EA "+MQLInfoString(MQL_PROGRAM_NAME);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
//--- Находим процент просадки и округляем до 1 знака
Sag=NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_MARGIN_FREE)/AccountInfoDouble(ACCOUNT_BALANCE)),1);
//--- Если открыт новый бар на H4
if(iTime(Symbol(),PERIOD_H4,0) !=PrevTime) {
//--- если просадка больше заданного
if(Sag>MessageMail) {
Alert(Symbol(), ": Просадка = ", DoubleToString(Sag,1), " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале
string MailText=AccountInfoString(ACCOUNT_COMPANY)+" > Опасность! Просадка ("+DoubleToString(Sag,1)+"%) привысила допустимое значение. Примите необходимые меры.";
SendMail(MailSubject,MailText);
}
PrevTime=iTime(Symbol(),PERIOD_H4,0);
}
}
//+------------------------------------------------------------------+
谢谢你!设置了发送信件!
如何修复返回值'' OrderClose必须被检查??????????????????????????????
亲爱的程序员们,请帮助这个行业的一个新手。
EA在一定时间后依次打开买入和卖出订单。我希望它能修改所有以前的订单(具体来说,所有以前的订单都应该通过最后一个订单的获利来关闭。也就是说,如果上一个买入订单和上一个卖出订单,那么上一个订单的止损 被设置为上一个订单的获利水平。
如果之前的买入,那么它的TakeProfit将被设置在最后一次TakeProfit的水平上。重点是,当最后一个订单的获利到来时,所有的订单必须被关闭)。
我希望我解释得很清楚,尽管很难理解应该如何实施它。预先感谢你。
我知道我们可以浏览所有未结订单并进行修改,但我们如何跳过最后一个订单?