inputstring Symbol_Main="EURUSD"; //Валютная пара, на которую ставим советникinputENUM_TIMEFRAMES Time_Frame=PERIOD_H1; //Таймфрейм, на который ставим советник//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
/* Определим график валютной пары и таймфрейм, на который будем устанавливать советник. *//* Если текущий график валютной пары и текущий таймфрейм совпадают со входными параметрами */if(_Symbol==Symbol_Main && _Period==Time_Frame)
{
/* выводим окно сообщений на торговом терминале и продолжаем работу советника */MessageBox("Работа советника разрешена! Продолжим!");
return(INIT_SUCCEEDED); //возвращаем для функции OnInit значение означающее "удачная инициализация"
}
/* Если текущий график валютной пары и текущий таймфрейм не совпадают со входными параметрами */if(_Symbol!=Symbol_Main && _Period!=Time_Frame)
{
/* выводим окно сообщений на торговом терминале и закрываем советник */MessageBox("Не совпадают валютная пара и таймфрейм! Выходим!");
return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
}
/* Если текущий график валютной пары не совпадает со входным параметром */if(_Symbol!=Symbol_Main)
{
/* выводим окно сообщений на торговом терминале и закрываем советник */MessageBox("Не совпадает валютная пара! Выходим!");
return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
}
/* Если текущий таймфрейм не совпадает со входным параметром */if(_Period!=Time_Frame)
{
/* выводим окно сообщений на торговом терминале и закрываем советник */MessageBox("Не совпадет таймфрейм! Выходим!");
return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
}
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- достаточно ли количество баров для работыif(Bars(_Symbol,_Period)<60) // общее количество баров на графике меньше 60?
{
Alert("На графике меньше 60 баров, советник не будет работать!!");
return(-1);
}
//--- получить хэндл индикатора Bollinger Bands и DEMA
BolBandsHandle=iBands(NULL,PERIOD_M30,bands_period,bands_shift,deviation,PRICE_CLOSE);
demaHandle=iDEMA(NULL,PERIOD_D1,dema_period,0,PRICE_CLOSE);
//--- Нужно проверить, не были ли возвращены значения Invalid Handleif((BolBandsHandle<0) || (demaHandle<0))
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
return(-1);
}
return(0);
}
Artem Trishkin也回答了我的问题,因为它是一个链接(upperand),所以它可以站在任何地方。为了实验的纯洁性,应该尝试没有空格。
谢谢你,Valery!如果我遇到类似的问题,一定会考虑这一点。
圣诞快乐!
真诚的,弗拉基米尔。
祝大家交易愉快,心情愉快!
我继续学习MQL5编程语言。我对以前发表的代码 进行了一些修改,这是我得到的结果。
也许有人会需要它。
问候,弗拉基米尔。
大家今天好,心情好
我有一些空闲时间,决定继续我的自学。但突然间,我遇到了一个问题。早些时候,当我在我的专家顾问Trailing_Stop_(v.2).mq5中向贸易服务器发出这样的请求时。
在代码编译过程中没有任何问题。现在,编译器产生了以下错误。
不能将0转换为枚举'ENUM_TRADE_REQUEST_ACTIONS'Trailing_Stop_(v.2).mq5 411 30
如果我在大括号中的请求 后面去掉一个零。
那么我就没有得到一个错误。请帮助我,这是什么原因?
问候,弗拉基米尔。
大家今天好,心情好
我有一些空闲时间,决定继续我的自学。但突然间,我遇到了一个问题。早些时候,当我在我的专家顾问Trailing_Stop_(v.2).mq5中向贸易服务器发出这样的请求时。
在代码编译过程中没有任何问题。现在,编译器产生了以下错误。
不能将0转换为枚举'ENUM_TRADE_REQUEST_ACTIONS'Trailing_Stop_(v.2).mq5 411 30
如果我在大括号中的请求 后面去掉一个零。
那么我就没有得到一个错误。请帮助我,这是什么原因?
问候,弗拉基米尔。
是的,现在不要写零,以备归零。
ENUM_TRADE_REQUEST_ACTIONS,这个枚举缺乏值 "0"。
正确的方法应该是。
MqlTradeRequest request={};
是的,现在不要为归零而写0。
谢谢你,Vladimir!
你活了很久,也学了很久!如果MQL5参考文献 的开发者能到处纠正这个问题,那就再好不过了。
真诚的,弗拉基米尔。
大家早上好!
我正在继续自学MQL5编程语言。我决定写一个函数,从ZigZag指标中获取信号。我开始彻底研究它,它立即引起了一些问题。我在它的输入参数 里有它。
我的英语并不流利,所以我必须使用谷歌翻译器。什么是纯粹的翻译。
Depth - глубина
Deviation - отклонение
Backstep - шаг назад
问题。
亲爱的专家,请帮助我理解
真诚的,弗拉基米尔。
大家早上好!
我正在继续自学MQL5编程语言。我决定写一个函数,从ZigZag指标中获取信号。我开始彻底研究它,它立即引起了一些问题。我在它的输入参数 里有它。
我的英语并不流利,所以我必须使用谷歌翻译器。什么是纯粹的翻译。
问题。
亲爱的专家,请帮助我理解
真诚的,弗拉基米尔。
小学-- 搜索帮助," 难道它不前进吗"--整个故事在这里向后移动!!!!:-)
https://www.mql5.com/ru/code/7796
深度是指不会出现第二个高点(低点)少于(多于)前一个高点(低点)的最小条数,即ZigZag总是可以发散,但收敛(或整体转移)多于偏差,ZigZag只能在深度条后。后退是指高点(低点)之间的最小条数。
在搜索框中输入:如人字形参数,https://www.mql5.com/ru/search#!keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0%B0%D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&page=2</b></p>
PS初级的东西...
小学-- 搜索帮助," 不是在往前走吗"--整个故事在这里往后走!!!!:-)
https://www.mql5.com/ru/code/7796
深度是指没有第二个最大值(最小值)小于(大于)前一个偏差点的最小条数,即ZigZag总是可以发散,但它可以收敛(或整体转移)超过偏差,ZigZag只能在深度条后。后退是指高点(低点)之间的最小条数。
在搜索框中输入:如人字形参数,https://www.mql5.com/ru/search#!keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0%B0%D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&page=2</b></p>
PS初级的东西...
非常感谢你,罗曼!你给出了最简明,但同时也是最容易理解的解释。
尊敬的弗拉基米尔。
非常感谢你,罗曼!你已经给出了最简洁,但同时也是最容易理解的解释。
尊敬的弗拉基米尔。
大家好!
在测试一个专家顾问时,我遇到了一个问题。它的EA初始化函数的代码如下。
在测试EA的 过程中,我在日志中得到了信息。
我发现问题出在检查布林线 和DEMA 指标手柄上。我已经检查了布林线和DEMA指标柄,所以我有一个问题:我应该在我的代码中改变什么来纠正这些错误?
问候,弗拉基米尔。