Тики в 5-ке сохраняются на терминале/компе пользователя? Какой же размер файла истории?
Или
Тики сохраняются на сервере? Тогда вопрос, какая глубина истории (по времени) ?
У каждого брокера по своему, пару месяцев на минутках уже хорошо))) На квотах демо лучше, на минутках в тестере пару лет можно получить. Если терминал включать раз в неделю в течении 5 лет, то история будет лет 10 на минутках, но надо понимать, что это гигов 100 просто по мажорам, а это всего 10 символов.
Терминал на компе пользователя, а сервера у кухни, брокера, поставщика ликвидности и на бирже, или месте торгов. Вот там, кто как хочет,так и сохраняет.
Терминал на компе пользователя, а сервера у кухни, брокера, поставщика ликвидности и на бирже, или месте торгов. Вот там, кто как хочет,так и сохраняет.
Как вставляется данная функция для проверки объёма перед открытием ордера? Данную функцию я скопировал и вставил в код, а как правильно ей воспользоваться? Как правильно прописать в коде перед открытием?
//+------------------------------------------------------------------+//| Проверяет объем ордера на корректность |//+------------------------------------------------------------------+bool CheckVolumeValue(double volume,string &description)
{
//--- минимально допустимый объем для торговых операцийdouble min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(volume<min_volume)
{
description=StringFormat("Объем меньше минимально допустимого SYMBOL_VOLUME_MIN=%.2f",min_volume);
return(false);
}
//--- максимально допустимый объем для торговых операцийdouble max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
if(volume>max_volume)
{
description=StringFormat("Объем больше максимально допустимого SYMBOL_VOLUME_MAX=%.2f",max_volume);
return(false);
}
//--- получим минимальную градацию объемаdouble volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step);
return(false);
}
description="Корректное значение объема";
return(true);
}
в эту функцию передается input lot, для проверки корректности, string передается по ссылке благодаря символу @. Это для того что-бы получить не только ДА или НЕТ из (bool функции), а еще и другое, типа - многофункциональная функция становится
если переменную обозначить перед вызовом, то после работы функции в ней будут данные которые по ссылке передались, иногда полезно может быть
Как вставляется данная функция для проверки объёма перед открытием ордера? Данную функцию я скопировал и вставил в код, а как правильно ей воспользоваться? Как правильно прописать в коде перед открытием?
А чем вам не нравится стандартная функция OrderCheck() и в структуре
structMqlTradeCheckResult
{
uint retcode; // Код ответа double balance; // Баланс после совершения сделки double equity; // Эквити после совершения сделки double profit; // Плавающая прибыль double margin; // Маржевые требования double margin_free; // Свободная маржа double margin_level; // Уровень маржи string comment; // Комментарий к коду ответа (описание ошибки)
};
Тики сохраняются только в 5ке. В 4ке только опен клоз хай лоу. Тики в тестере моделируются рандомно.
Тики в 5-ке сохраняются на терминале/компе пользователя? Какой же размер файла истории?
Или
Тики сохраняются на сервере? Тогда вопрос, какая глубина истории (по времени) ?
Тики в 5-ке сохраняются на терминале/компе пользователя? Какой же размер файла истории?
Или
Тики сохраняются на сервере? Тогда вопрос, какая глубина истории (по времени) ?
У каждого брокера по своему, пару месяцев на минутках уже хорошо))) На квотах демо лучше, на минутках в тестере пару лет можно получить. Если терминал включать раз в неделю в течении 5 лет, то история будет лет 10 на минутках, но надо понимать, что это гигов 100 просто по мажорам, а это всего 10 символов.
Терминал на компе пользователя, а сервера у кухни, брокера, поставщика ликвидности и на бирже, или месте торгов. Вот там, кто как хочет,так и сохраняет.
Терминал на компе пользователя, а сервера у кухни, брокера, поставщика ликвидности и на бирже, или месте торгов. Вот там, кто как хочет,так и сохраняет.
Ок, понятно.
Подскажите пожалуйста.
Как вставляется данная функция для проверки объёма перед открытием ордера? Данную функцию я скопировал и вставил в код, а как правильно ей воспользоваться? Как правильно прописать в коде перед открытием?
и там смотреть false или true
descriptionпо ссылке передается, на него можно не обращать внимание в вызове функции
Не могу сооброзить как правильно
Вот часть кода на открытие:
//--Открытие на Buy
if(AllOupenTradeBuy()==0)
{
if(AccountFreeMarginCheck(Symbol(),OP_BUY,buylot)<=0 || GetLastError()==134)
{
Alert("Not enough free funds ",GetLastError());
return;
}
if(lFlagBuyOpen && OrderBuyStop()==0 && (CheckVolumeValue(buylot, сюда требуется какоето значение string)==true))
OpenBuy();
}
//--Открытие на Sell
МОЖЕТ ВООБЩЕ НЕ ПРАВИЛЬНО ПИШУ
Не могу сооброзить как правильно
string там, это отдельная эпопея,
в эту функцию передается input lot, для проверки корректности, string передается по ссылке благодаря символу @. Это для того что-бы получить не только ДА или НЕТ из (bool функции), а еще и другое, типа - многофункциональная функция становится
если переменную обозначить перед вызовом, то после работы функции в ней будут данные которые по ссылке передались, иногда полезно может быть
Подскажите пожалуйста.
Как вставляется данная функция для проверки объёма перед открытием ордера? Данную функцию я скопировал и вставил в код, а как правильно ей воспользоваться? Как правильно прописать в коде перед открытием?
А чем вам не нравится стандартная функция OrderCheck() и в структуре
можно много чего прочесть…