Как сделать, чтобы данные всех глобальных переменных сохранялись даже после закрытия терминала в штатном и нештатном режиме?
Вопрос касается переменных объявленных в начале кода вот так:
#property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict
extern double VAR1 = 1;
double VAR2[1000];
Нужно не потерять значения VAR1 и VAR2 (массив наполняется данными в процессе работы советника). Пока из идей только запись в файл (global.txt) на каждом тике, а при запуске терминала чтение из этого файла (global.txt) и воссоздание переменных, а далее опять запись на каждом тике. Какие есть еще варианты?
Приветствую господа! Не хочу что бы это приняли за флуд, но мне без этой функции ни как не обойтись. Ну так что ребят кто нибудь сможет помочь мне с функцией которая перебирает все ордера и удаляет одновременно два ордера, один с самым маленьким лотом и отрицательным профитом из существующих на графике, а второй с самым большим лотом и положительным профитом так же из существующих. "
Что мы видим в представленном Вами коде?
1. Все ордера открыты с помощью эксперта и имеют уникальный Magic.
Вопрос В метатрейдере 4 можно ли написать программу, чтобы открыть от 2 до 250 позиций по моему выбору с заданным стоплоссом и заданным профитом в один клик? Чтоб не открывать вручную по одной
Если ограничения брокера столь крутые, то язык программирования именной этого и создан, чтобы писать автоматически скрипты.
Приветствую господа! Не хочу что бы это приняли за флуд, но мне без этой функции ни как не обойтись. Ну так что ребят кто нибудь сможет помочь мне с функцией которая перебирает все ордера и удаляет одновременно два ордера, один с самым маленьким лотом и отрицательным профитом из существующих на графике, а второй с самым большим лотом и положительным профитом так же из существующих. "
Что мы видим в представленном Вами коде?
1. Все ордера открыты с помощью эксперта и имеют уникальный Magic.
4. Размер лота с положительным профитом строго больше лота с отрицательным.
Где это видно в представленном ТЗ?
Кроме того: из кода видно, что Вы не умеете закрывать встречные ордера, теряя, как минимум, спред.
Я не спорю много недочетов! Я только вникаю в этот вид деятельности. И пишу в эту ветку для того чтобы помогли или указали на ошибки! По моему она для этого и существует. Теперь к коду. 1) Возможно я чего то не понимаю, но что плохого в том что все ордера в советнике имеют уникальный Magic!? 2)Это условие и вообще вся эта функция для того и нужна чтобы при большой нагрузке на маржу закрыть как минимум два встречных ордера и не уйти в минус, 3 и 4 пункты относятся сюда же. А встречные ордера я действительно не знаю как правильно закрыть.
Я не спорю много недочетов! Я только вникаю в этот вид деятельности. И пишу в эту ветку для того чтобы помогли или указали на ошибки! По моему она для этого и существует. Теперь к коду. 1) Возможно я чего то не понимаю, но что плохого в том что все ордера в советнике имеют уникальный Magic!? 2)Это условие и вообще вся эта функция для того и нужна чтобы при большой нагрузке на маржу закрыть как минимум два встречных ордера и не уйти в минус, 3 и 4 пункты относятся сюда же. А встречные ордера я действительно не знаю как правильно закрыть.
Если бы Вы были моим студентом, отметка "хорошо" уже была бы за то, что Вы представили код. А, если в процессе общения, Вы бы смогли показать, что умеете генерировать идеи, тогда "отлично" Из ответа, я вижу, что правильно мыслишь
Здравствуйте ... советник написан на MQL4, торгует рыночными ордерами Buy, Sell с Trailing ... решил добавить в код установку отложенных BuyStop, SellStop ... и тут столкнулся с неожиданной проблемой = как только в окне МТ4 появляется любой отложенный ордер, прекращает работать Trailing (SL не устанавливается, Modify нет) ... не пойму в чём проблема, функция Trailing стандартная с обратным перебором из библиотеки, добавлено две выделенных стр., ... или тут не в функции дело? Может быть кто-то сталкивался с подобным?
int TralFunck(int Ticket)
{ double TralPrice=0,Punkt=0;
chk=OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES);
for(Ticket=OrdersTotal()-1; Ticket>=0; Ticket--)
{ if (OrderProfit()<=0) continue;
if (OrderType()==4)continue;
if (OrderType()==5) continue;
if (OrderType()==0) { Punkt=(Bid-OrderOpenPrice())/Point;TralPrice=NormalizeDouble((Bid-Tral*D*Point),Digits); }
if (OrderType()==1) { Punkt=(OrderOpenPrice()-Ask)/Point;TralPrice=NormalizeDouble((Ask+Tral*D*Point),Digits); }
if (Punkt<MarketInfo(Symbol(),MODE_STOPLEVEL)) continue;
if(Punkt<(Tral+TP)*D) continue;
if(OrderType()==0 && TralPrice<=NormalizeDouble(OrderStopLoss(),Digits)) continue;
if(OrderType()==1 && TralPrice>=NormalizeDouble(OrderStopLoss(),Digits) && OrderStopLoss()!=0) continue;
ModifyOrder(OrderTicket(),OrderOpenPrice(),TralPrice,OrderTakeProfit()); continue;
} return(0);
}
Здравствуйте ... советник написан на MQL4, торгует рыночными ордерами Buy, Sell с Trailing ... решил добавить в код установку отложенных BuyStop, SellStop ... и тут столкнулся с неожиданной проблемой = как только в окне МТ4 появляется любой отложенный ордер, прекращает работать Trailing (SL не устанавливается, Modify нет) ... не пойму в чём проблема, функция Trailing стандартная с обратным перебором из библиотеки, добавлено две выделенных стр., ... или тут не в функции дело? Может быть кто-то сталкивался с подобным?
Замените return(0); на continue; что бы из цикла не выходить. В конце функции оставьте как есть.
Для вставки кода используйте кнопку SRC в редакторе
Замените return(0); на continue; что бы из цикла не выходить. В конце функции оставьте как есть.
Для вставки кода используйте кнопку SRC в редакторе
Спасибо ... подправил ... кнопку SRC в редакторе учту, извините ... но суть проблемы от этого не изменилась, Trailing и Modify по прежнему не хотят работать при наличии отложенных ордеров.
Я недавно начал торговать на mt4. Решил протестировать свою стратегию но у меня в тестере стратегий нет функции визуализация и кнопки пауза. без этих функций тестировать не возможно. как быть?
vsmutew7: Я недавно начал торговать на mt4. Решил протестировать свою стратегию но у меня в тестере стратегий нет функции визуализация и кнопки пауза. без этих функций тестировать не возможно. как быть?
Вероятно, нужно растянуть окно пошире, особенно то, в котором кнопка "Старт"
Как сделать, чтобы данные всех глобальных переменных сохранялись даже после закрытия терминала в штатном и нештатном режиме?
Вопрос касается переменных объявленных в начале кода вот так:
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
extern double VAR1 = 1;
double VAR2[1000];
Нужно не потерять значения VAR1 и VAR2 (массив наполняется данными в процессе работы советника). Пока из идей только запись в файл (global.txt) на каждом тике, а при запуске терминала чтение из этого файла (global.txt) и воссоздание переменных, а далее опять запись на каждом тике. Какие есть еще варианты?
Спасибо за помощь! Пока оставил вот так, сейчас решил немного изменить условия при которых функция вызывается. А вообще вы мне очень помогли))
Все-таки правильно, что Вам не отвечают. Надо ставить задачу, иначе ее невозможно решить.
Посмотрим первоначальное ТЗ:
Приветствую господа! Не хочу что бы это приняли за флуд, но мне без этой функции ни как не обойтись. Ну так что ребят кто нибудь сможет помочь мне с функцией которая перебирает все ордера и удаляет одновременно два ордера, один с самым маленьким лотом и отрицательным профитом из существующих на графике, а второй с самым большим лотом и положительным профитом так же из существующих. "
Что мы видим в представленном Вами коде?
1. Все ордера открыты с помощью эксперта и имеют уникальный Magic.
2. Суммарный профит искомых ордеров положительный.
3. Ордера являются встречными.
4. Размер лота с положительным профитом строго больше лота с отрицательным.
Где это видно в представленном ТЗ?
Кроме того: из кода видно, что Вы не умеете закрывать встречные ордера, теряя, как минимум, спред.
Вопрос В метатрейдере 4 можно ли написать программу, чтобы открыть от 2 до 250 позиций по моему выбору с заданным стоплоссом и заданным профитом в один клик? Чтоб не открывать вручную по одной
Все-таки правильно, что Вам не отвечают. Надо ставить задачу, иначе ее невозможно решить.
Посмотрим первоначальное ТЗ:
Приветствую господа! Не хочу что бы это приняли за флуд, но мне без этой функции ни как не обойтись. Ну так что ребят кто нибудь сможет помочь мне с функцией которая перебирает все ордера и удаляет одновременно два ордера, один с самым маленьким лотом и отрицательным профитом из существующих на графике, а второй с самым большим лотом и положительным профитом так же из существующих. "
Что мы видим в представленном Вами коде?
1. Все ордера открыты с помощью эксперта и имеют уникальный Magic.
2. Суммарный профит искомых ордеров положительный.
3. Ордера являются встречными.
4. Размер лота с положительным профитом строго больше лота с отрицательным.
Где это видно в представленном ТЗ?
Кроме того: из кода видно, что Вы не умеете закрывать встречные ордера, теряя, как минимум, спред.
Я не спорю много недочетов! Я только вникаю в этот вид деятельности. И пишу в эту ветку для того чтобы помогли или указали на ошибки! По моему она для этого и существует. Теперь к коду. 1) Возможно я чего то не понимаю, но что плохого в том что все ордера в советнике имеют уникальный Magic!? 2)Это условие и вообще вся эта функция для того и нужна чтобы при большой нагрузке на маржу закрыть как минимум два встречных ордера и не уйти в минус, 3 и 4 пункты относятся сюда же. А встречные ордера я действительно не знаю как правильно закрыть.
Я не спорю много недочетов! Я только вникаю в этот вид деятельности. И пишу в эту ветку для того чтобы помогли или указали на ошибки! По моему она для этого и существует. Теперь к коду. 1) Возможно я чего то не понимаю, но что плохого в том что все ордера в советнике имеют уникальный Magic!? 2)Это условие и вообще вся эта функция для того и нужна чтобы при большой нагрузке на маржу закрыть как минимум два встречных ордера и не уйти в минус, 3 и 4 пункты относятся сюда же. А встречные ордера я действительно не знаю как правильно закрыть.
Здравствуйте ... советник написан на MQL4, торгует рыночными ордерами Buy, Sell с Trailing ... решил добавить в код установку отложенных BuyStop, SellStop ... и тут столкнулся с неожиданной проблемой = как только в окне МТ4 появляется любой отложенный ордер, прекращает работать Trailing (SL не устанавливается, Modify нет) ... не пойму в чём проблема, функция Trailing стандартная с обратным перебором из библиотеки, добавлено две выделенных стр., ... или тут не в функции дело? Может быть кто-то сталкивался с подобным?
Здравствуйте ... советник написан на MQL4, торгует рыночными ордерами Buy, Sell с Trailing ... решил добавить в код установку отложенных BuyStop, SellStop ... и тут столкнулся с неожиданной проблемой = как только в окне МТ4 появляется любой отложенный ордер, прекращает работать Trailing (SL не устанавливается, Modify нет) ... не пойму в чём проблема, функция Trailing стандартная с обратным перебором из библиотеки, добавлено две выделенных стр., ... или тут не в функции дело? Может быть кто-то сталкивался с подобным?
Замените return(0); на continue; что бы из цикла не выходить. В конце функции оставьте как есть.
Для вставки кода используйте кнопку SRC в редакторе
Замените return(0); на continue; что бы из цикла не выходить. В конце функции оставьте как есть.
Для вставки кода используйте кнопку SRC в редакторе
Спасибо ... подправил ... кнопку SRC в редакторе учту, извините ... но суть проблемы от этого не изменилась, Trailing и Modify по прежнему не хотят работать при наличии отложенных ордеров.
Я недавно начал торговать на mt4. Решил протестировать свою стратегию но у меня в тестере стратегий нет функции визуализация и кнопки пауза. без этих функций тестировать не возможно. как быть?
Вероятно, нужно растянуть окно пошире, особенно то, в котором кнопка "Старт"