Там есть очень интересная функция пометок найденных переменных. Нажмите Ctrl+F, введите имя переменной, поставьте галочки "Помечать закладкой" и "Помечать найденное". Затем нажмите кнопку "Найти все". Чтоб убрать это нажмите кнопку "Убрать все"
Есть вот такой вариант, который при включении не работает (в выключеном состоянии сделки открываются, но не один раз в день). За основу брался код, взятый где-то на этих просторах. Исправте меня, пожалуйста.
extern bool WaitForNewDay = true; //-----переключатель на проверку каждого дня
bool Trade=true; //---флаг для последующей сделки (установлен на true)
datetime bt,tm; //----переменные для функции проверки дня
....
int init()
{
if(WaitForNewDay) {Trade=false;} //----если режим включен, то в инициализации флагу присваивается запрет на торговлю
return(0);
}
.....
int start()
{
if(WaitForNewDay) CheckForNewDay();
...
if(CalculateCurrentOrders(Symbol())==0 && Trade) //-----проверка открытых ордеров и проверка флага
{
CheckForOpen(); //---------открытие ордера
if (WaitForNewDay) {Trade=false;} //-----------если режим одного дня включён, то после сделки включается запрет на торговлю
return;
}
}
//--------------функция проверки одного дня
void CheckForNewDay()
{
tm=iTime(Symbol(),PERIOD_D1,0); //---------проверяется текущий день
if (bt!=tm) {bt=tm; Trade=true;} //----------если старая дата не соответствует текущей дате, то старой дате присваивается текущее значение даты и флагу даётся разрешение на торговлю
Ошибка в исходном посте, сейчас подправлю. Когда WaitForNewDay = false, то советник работает без ограничения - 1 сделка в день.
Код не верный. Во-первых, если функция start() имеет тип int, то она должна возвращать целочисленное значение. У Вас ретурн возвращается только по условию. А если условие не выполнено, что тогда должна вернуть терминалу функция Старт?
Далее, Вы слишком усложнили проверку - сделать лучше так: делаем счётчик ордеров, открытых и закрытых сегодня. Если количесовт сегодняшних ордеров больше нуля, то не торгуем. В противном случае торг разрешён.
Danil93: как тиковый график увидеть, со всей историей?
Написать индикатор, который будет после запуска отрисовывать тики. Вариант 2 - отписывать каждый тик в текстовый документ и впоследствии извлечь всю тиковую историю в нужный момент.
Написать индикатор, который будет после запуска отрисовывать тики. Вариант 2 - отписывать каждый тик в текстовый документ и впоследствии извлечь всю тиковую историю в нужный момент.
мда...сложно. тогда вдруг ответите на такое: 5 пунктов или 10, без отката. сколько прожить цена может?
Там есть очень интересная функция пометок найденных переменных. Нажмите Ctrl+F, введите имя переменной, поставьте галочки "Помечать закладкой" и "Помечать найденное". Затем нажмите кнопку "Найти все". Чтоб убрать это нажмите кнопку "Убрать все"
А по двойному клику переходит на фрагмент кода))) То, что нужно, спасибо)
Не понял, по какому объекту нужно сделать двойной клик?
Торговля один раз в день!!! Как бы это сделать?
Есть вот такой вариант, который при включении не работает (в выключеном состоянии сделки открываются, но не один раз в день). За основу брался код, взятый где-то на этих просторах. Исправте меня, пожалуйста.
extern bool WaitForNewDay = true; //-----переключатель на проверку каждого дня
bool Trade=true; //---флаг для последующей сделки (установлен на true)
datetime bt,tm; //----переменные для функции проверки дня
....
int init()
{
if(WaitForNewDay) {Trade=false;} //----если режим включен, то в инициализации флагу присваивается запрет на торговлю
return(0);
}
.....
int start()
{
if(WaitForNewDay) CheckForNewDay();
...
if(CalculateCurrentOrders(Symbol())==0 && Trade) //-----проверка открытых ордеров и проверка флага
{
CheckForOpen(); //---------открытие ордера
if (WaitForNewDay) {Trade=false;} //-----------если режим одного дня включён, то после сделки включается запрет на торговлю
return;
}
}
//--------------функция проверки одного дня
void CheckForNewDay()
{
tm=iTime(Symbol(),PERIOD_D1,0); //---------проверяется текущий день
if (bt!=tm) {bt=tm; Trade=true;} //----------если старая дата не соответствует текущей дате, то старой дате присваивается текущее значение даты и флагу даётся разрешение на торговлю
}
И где же у него кнопка???
(в выключеном состоянии сделки открываются, но не один раз в день)
А это как?
Ошибка в исходном посте, сейчас подправлю. Когда WaitForNewDay = false, то советник работает без ограничения - 1 сделка в день.
Ошибка в исходном посте, сейчас подправлю. Когда WaitForNewDay = false, то советник работает без ограничения - 1 сделка в день.
Код не верный. Во-первых, если функция start() имеет тип int, то она должна возвращать целочисленное значение. У Вас ретурн возвращается только по условию. А если условие не выполнено, что тогда должна вернуть терминалу функция Старт?
Далее, Вы слишком усложнили проверку - сделать лучше так: делаем счётчик ордеров, открытых и закрытых сегодня. Если количесовт сегодняшних ордеров больше нуля, то не торгуем. В противном случае торг разрешён.
как тиковый график увидеть, со всей историей?
Написать индикатор, который будет после запуска отрисовывать тики. Вариант 2 - отписывать каждый тик в текстовый документ и впоследствии извлечь всю тиковую историю в нужный момент.
Написать индикатор, который будет после запуска отрисовывать тики. Вариант 2 - отписывать каждый тик в текстовый документ и впоследствии извлечь всю тиковую историю в нужный момент.