В окне MetaTrader 5 выводятся значения Bid & Ask, по которым (насколько я понимаю) определяется выигрыш/проигрыш.
Однако, когда я пытаюсь использовать минутные котировки истории, для тестирования своей стратегии, эти котировки не содержат значений Bidи Ask, а дают значения «OPEN», «HIGH» «LOW», «CLOSE», «TICKVOL»,«VOL», «SPREAD». При этом совершенно не понятно как из этих значений получить Bidи Ask, а также как из этих значений высчитывается спред.
Абсолютно всё доступно. Опишите более подробно, что именно подразумевается под "когда я пытаюсь использовать минутные котировки истории"? Что именно Вы делаете или хотите сделать?
longSymbolInfoInteger(
string name, // символ ENUM_SYMBOL_INFO_INTEGER prop_id // идентификатор свойства
);
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.
boolSymbolInfoInteger(
string name, // символ ENUM_SYMBOL_INFO_INTEGER prop_id, // идентификатор свойства long& long_var // сюда примем значение свойства
);
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.
#property copyright"Copyright 2018, Sergey S Morozov"#property link"https://www.mql5.com"#property version"1.00"#property strict//#property indicator_separate_window // Индик. рисуется в новом окне#property indicator_chart_window// Индик. рисуется в основном окне#property indicator_buffers1// Количество буферов#property indicator_color1 Red // Цвет первой линииexternint History =50; // Колич.баров в расчётной историиexternint Aver_Bars=5; // Количество баров для расчётаdouble ArrayBuff[];
//----------------------------------------------------------------------------------------------------intOnInit()
{
SetIndexBuffer(0,ArrayBuff);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
return(INIT_SUCCEEDED);
}
intOnCalculate(
constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int i, // Индекс бара
n, // Формальный параметр
Counted_bars; // Количество просчитанных баров double
Sum_H, // Сумма значений High за переиод
Sum_L; // Сумма значений Low за переиод//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанногоif (i>History-1) // Если много баров то ..
i=History-1; // ..рассчитывать заданное колич.while(i>=0) // Цикл по непосчитанным барам
{
Sum_H=0; // Обнуление в начале цикла
Sum_L=0; // Обнуление в начале циклаfor(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
{
Sum_H=Sum_H + High[n]; // Накопление суммы макс.значений
Sum_L=Sum_L + Low[n]; // Накопление суммы мин. значений
}
ArrayBuff[i]=(Sum_H-Sum_L)/Aver_Bars; // Знач. 0 буфера на i-ом баре
i--; // Расчёт индекса следующего бара
}
return(rates_total);
}
//+------------------------------------------------------------------+
Начала только, вообще еще не умею на этом языке писать. Но проблема в следующем - если в новом окне, то график появляется. А вот отобразить его у текущем я никак не могу... В чем моя ошибка? Учитывая, что сам я не смог написать и составил из примеров найти тут не могу. Тем более, что все это явно не через функцию в духе SetChartData(point1,point2); а как то само происходит...
Ну и переменная вроде стоит (indicator_chart_window), но все равно не срабатывает....
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Как прописать расписание торговли робота? Здравствуйте...
Абсолютно всё доступно. Опишите более подробно, что именно подразумевается под "когда я пытаюсь использовать минутные котировки истории"? Что именно Вы делаете или хотите сделать?
Для того чтобы скачать котировки истории загружаем MetaTrader 5, кликаем иконку cсимволом доллара: «Отображение списка символов» (или можно нажать CtrlU). Появится окно «Символы». Во вкладке «СПЕЦИФИКАЦИЯ» находим нужную пару валют, например GBPCHF. Во вкладке «БАРЫ» задаём минутные котировки (М1) и даты начала и конца необходимого периода. После нажатия на кнопку «ЗАПРОС» будет загружен файл в формате csv, который можно использовать для тестирования стратегий с помощью метатрейдера или своими программами.
С помощью EXCELможно посмотреть содержание этого файла, в котором первая строчка раскрывает содержание информации в файле, т.е. «дата, время», и, затем, «OPEN», «HIGH» «LOW», «CLOSE», «TICKVOL», «VOL», «SPREAD»
Я прекрасно понимаю что значат эти данные, но как из них сделать BITи ASK, которые использует MetaTrader 5?
Модераторы многоуважаемые не подскажите где в mt5 можно посмотреть информацию о символе? Помню в mt 4 можно было проверить в тестере стратегий, а в mt5 тестере я эту функцию не обнаружил.
Для того чтобы скачать котировки истории загружаем MetaTrader 5, кликаем иконку cсимволом доллара: «Отображение списка символов» (или можно нажать CtrlU). Появится окно «Символы». Во вкладке «СПЕЦИФИКАЦИЯ» находим нужную пару валют, например GBPCHF. Во вкладке «БАРЫ» задаём минутные котировки (М1) и даты начала и конца необходимого периода. После нажатия на кнопку «ЗАПРОС» будет загружен файл в формате csv, который можно использовать для тестирования стратегий с помощью метатрейдера или своими программами.
С помощью EXCELможно посмотреть содержание этого файла, в котором первая строчка раскрывает содержание информации в файле, т.е. «дата, время», и, затем, «OPEN», «HIGH» «LOW», «CLOSE», «TICKVOL», «VOL», «SPREAD»
Я прекрасно понимаю что значат эти данные, но как из них сделать BITи ASK, которые использует MetaTrader 5?
В советнике MetaTrader 5 просто обращайтесь за получением цен через SymbolInfoTick() и получите цены. И не нужно ничего никуда складировать :) В MetaTrader 5 уже есть вся тиковая история (реальные тики) как только Вы подключаетесь к торговому серверу.
Форумчане уважаемые помогите позязя!!!
хочу присвоить переменной шаг цены:
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
вылетает ошибка: 'SymbolInfoInteger' - no one of the overloads can be applied to the function call
в чём опять моя ошибка?
int V=(int)SymbolInfoInteger(Symb,SYMBOL_POINT);
так попробуйте
Уважаемые Форумчане!
Подскажите, пожалуйста!!!
В окне MetaTrader 5 выводятся значения Bid & Ask, по которым (насколько я понимаю) определяется выигрыш/проигрыш.
Однако, когда я пытаюсь использовать минутные котировки истории, для тестирования своей стратегии, эти котировки не содержат значений Bid и Ask, а дают значения «OPEN», «HIGH» «LOW», «CLOSE», «TICKVOL», «VOL», «SPREAD». При этом совершенно не понятно как из этих значений получить Bid и Ask, а также как из этих значений высчитывается спред.
Абсолютно всё доступно. Опишите более подробно, что именно подразумевается под "когда я пытаюсь использовать минутные котировки истории"? Что именно Вы делаете или хотите сделать?
Форумчане уважаемые помогите позязя!!!
хочу присвоить переменной шаг цены:
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
вылетает ошибка: 'SymbolInfoInteger' - no one of the overloads can be applied to the function call
в чём опять моя ошибка?
Справка SymbolInfoInteger:
1. Непосредственно возвращает значение свойства.
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.
То есть ИЛИ long ИЛИ bool.
Форумчане уважаемые помогите позязя!!!
хочу присвоить переменной шаг цены:
int V=SymbolInfoInteger(Symb,SYMBOL_POINT);
вылетает ошибка: 'SymbolInfoInteger' - no one of the overloads can be applied to the function call
в чём опять моя ошибка?
Point - значение типа double. При получении его в виде int будет иметь нулевое значение.
Справка SymbolInfoInteger:
1. Непосредственно возвращает значение свойства.
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.
То есть ИЛИ long ИЛИ bool.
понял спасибо)
Начала только, вообще еще не умею на этом языке писать. Но проблема в следующем - если в новом окне, то график появляется. А вот отобразить его у текущем я никак не могу... В чем моя ошибка? Учитывая, что сам я не смог написать и составил из примеров найти тут не могу. Тем более, что все это явно не через функцию в духе SetChartData(point1,point2); а как то само происходит...
Ну и переменная вроде стоит (indicator_chart_window), но все равно не срабатывает....
Абсолютно всё доступно. Опишите более подробно, что именно подразумевается под "когда я пытаюсь использовать минутные котировки истории"? Что именно Вы делаете или хотите сделать?
Для того чтобы скачать котировки истории загружаем MetaTrader 5, кликаем иконку c символом доллара: «Отображение списка символов» (или можно нажать Ctrl U). Появится окно «Символы». Во вкладке «СПЕЦИФИКАЦИЯ» находим нужную пару валют, например GBPCHF. Во вкладке «БАРЫ» задаём минутные котировки (М1) и даты начала и конца необходимого периода. После нажатия на кнопку «ЗАПРОС» будет загружен файл в формате csv, который можно использовать для тестирования стратегий с помощью метатрейдера или своими программами.
С помощью EXCEL можно посмотреть содержание этого файла, в котором первая строчка раскрывает содержание информации в файле, т.е. «дата, время», и, затем, «OPEN», «HIGH» «LOW», «CLOSE», «TICKVOL», «VOL», «SPREAD»
Я прекрасно понимаю что значат эти данные, но как из них сделать BIT и ASK, которые использует MetaTrader 5?
Для того чтобы скачать котировки истории загружаем MetaTrader 5, кликаем иконку c символом доллара: «Отображение списка символов» (или можно нажать Ctrl U). Появится окно «Символы». Во вкладке «СПЕЦИФИКАЦИЯ» находим нужную пару валют, например GBPCHF. Во вкладке «БАРЫ» задаём минутные котировки (М1) и даты начала и конца необходимого периода. После нажатия на кнопку «ЗАПРОС» будет загружен файл в формате csv, который можно использовать для тестирования стратегий с помощью метатрейдера или своими программами.
С помощью EXCEL можно посмотреть содержание этого файла, в котором первая строчка раскрывает содержание информации в файле, т.е. «дата, время», и, затем, «OPEN», «HIGH» «LOW», «CLOSE», «TICKVOL», «VOL», «SPREAD»
Я прекрасно понимаю что значат эти данные, но как из них сделать BIT и ASK, которые использует MetaTrader 5?
В советнике MetaTrader 5 просто обращайтесь за получением цен через SymbolInfoTick() и получите цены. И не нужно ничего никуда складировать :) В MetaTrader 5 уже есть вся тиковая история (реальные тики) как только Вы подключаетесь к торговому серверу.
Помогите пожалуйста!!!
хочу подсчитать стоимость лота
double Lts =1;
if(OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),Lts,SymbolInfoDouble(Symbol(),SYMBOL_ASK),Margin));
Alert(Margin);
Вылетает предупреждение: empty controlled statement found
Margin принимает значение 0.
Самое странное то, что в чистой версии mt5 эта функция работает, а в mt5 от "открытие брокер" функция передаёт 0.