[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 316

 
fore-x:

Подскажите, пожалуйста, как можно научить программу запоминать последние использованные переменные. Нужно запоминать - символ, таймфрейм, бокс, реверс, ширину и количество баров. После подобранных пользователем настроек, делалась бы запись где-то и в последующем, если параметры где-то записаны, то они загружались бы от туда. Что юзать, как быть?

Нажмите F7

Откроются Свойства советника.

В закладке "Входные параметры" жмите кнопку "Сохранить".

Аналогично можно загрузить сохраненные параметры.

 

Помогите с парой функций.Картинка(с алгоритмом) не вставляется, поэтому прикрепил.

Суть такая. (1)Советник должен открывать ордер и заданными s\l, t\p, лотом. (2)Потом если была прибыль в сделке то просто повторяет её.(3) Если убыток то изменяет нек значения и новый ордер уже с ними, и так до тех пор пока не будет прибыльная сделка. (4)Тогда он восстанавливает начальные значения из пункта 1 и все крутит заново. Не получается организовать цикл(пункт 3) с выходом из него если была прибыть в сделке, и восстановить начальные параметры после выхода из него.

 
enya:

Помогите с парой функций.Картинка(с алгоритмом) не вставляется, поэтому прикрепил.

похоже у вас они и не прикрепляются.

но вообще то эта ветка для новичков программистов, а не новичков трейдеров.

здесь обсуждают ошибки в коде.

у вас есть хотя бы наброски кода вашего алгоритма?

 
sergeev:
похоже у вас они и не прикрепляются.

.

во вставилось. проблемы с циклом и восстановлением начальных значений после выхода из цикла

 
да какие тут могут быть наброски.10 строк.вопрос заключается в "как выглядит аналог Do while из VB и как в переменную запихнуть значение прибыли(результат) последнего ордера"
 
Подскажите как избавиться от ошибки symbol name for MarketInfo function must be a string
 
enya:
да какие тут могут быть наброски.10 строк.вопрос заключается в "как выглядит аналог Do while из VB и как в переменную запихнуть значение прибыли(результат) последнего ордера"

Прочитайте учебник для начала https://book.mql4.com/ru/

Полного аналога do loop с пред и пост-проверками нет, но есть обычный while (постпроверку можно изобразить через for).

Программы не совсем линейные, проще ориентироваться на события, а не зацикливать процедуру start.

примерно схема будет такая,

1. задаем SL,TP...

2. проверяем количество открытых ордеров, если их меньше одного открываем новый.

Логика блок-схемы пока страдает, еще много вопросов, на которые она не отвечает. К примеру что будет если запустить несколько экспертов, или что будет если перезапустить эксперт до закрытия ордера и т.п.

 
dofer-dert:
Подскажите как избавиться от ошибки symbol name for MarketInfo function must be a string

Функции MarketInfo требуется строка в качестве имени инструмента. Приведите строчку с ее использованием.
 

что может быть сдесь неправильно

здесь в коде

{

if (lot1 < MarketInfo(NULL,MODE_MINLOT)) {lot1=MarketInfo(NULL,MODE_MINLOT);lot2=lot1*2;lot3=lot1*3;lot4=lot1*4;lot5=lot1*5;

}

или же здесь

STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL);

 
 MarketInfo(Symbol(),MODE_MINLOT)
Причина обращения: