Как кодировать? - страница 131

 

Значения переменных советника теряются при закрытии MT4

Привет всем,

Я искал и пробовал несколько решений моего вопроса, но не могу найти ни одного работающего.

Я программирую советника, и сделки обрабатываются по номерам тикетов. Номера билетов хранятся в переменной int. Это прекрасно работает в тестере стратегий или на непрерывном MT4, но если вы закрываете MT4, конечно, тикеты теряются, и когда MT4 перезагружается, номера тикетов теряются, следовательно, советник не знает, какие сделки в настоящее время открыты, и начинает открывать новые. Даже если отложенные или открытые ордера уже торгуются.

Надеюсь, это имеет смысл.

Я пробовал статические переменные и знаю о глобальных переменных, но я бы предпочел не использовать их, так как каждый номер тикета и переменная должны быть индивидуальны для TF графика и символа, на котором работает советник.

Есть ли у кого-нибудь простое решение. Я знаю, что, вероятно, можно экспортировать номера билетов в файл, который советник может открыть и прочитать, но это кажется долгим путем. Не очень аккуратный способ, который я сейчас тестирую, заключается в том, чтобы при запуске программы использовать функцию SELECT_BY_POS, ища каждую сделку с одинаковым магическим номером, но это не позволяет использовать всю функциональность советника, так как я иногда запускаю 2 покупки одновременно, и определить, какая из них какая, сложно.

Спасибо за любые ответы.

 
mach_one_man:
Всем привет,

Я искал и пробовал несколько решений моего вопроса, но не могу найти ни одного работающего.

Я программирую советника, и сделки обрабатываются по номерам билетов. Номера билетов хранятся в переменной int. Это прекрасно работает в тестере стратегий или на непрерывном MT4, но если вы закрываете MT4, конечно, тикеты теряются, и когда MT4 перезагружается, номера тикетов теряются, следовательно, советник не знает, какие сделки в настоящее время открыты, и начинает открывать новые. Даже если отложенные или открытые ордера уже торгуются.

Надеюсь, это имеет смысл.

Я пробовал статические переменные и знаю о глобальных переменных, но я бы предпочел не использовать их, так как каждый номер тикета и переменная должны быть индивидуальны для TF графика и символа, на котором работает советник.

Есть ли у кого-нибудь простое решение. Я знаю, что, вероятно, можно экспортировать номера билетов в файл, который советник может открыть и прочитать, но это кажется долгим путем. Не очень аккуратный способ, который я сейчас тестирую, заключается в том, чтобы при запуске программы использовать функцию SELECT_BY_POS, ища каждую сделку с одинаковым Magic-номером, но это не позволяет использовать всю функциональность советника, поскольку я иногда запускаю 2 покупки одновременно, и определить, какая из них какая, очень сложно.

Спасибо за любые ответы.

Вместо номеров билетов попробуйте отслеживать свои ордера с помощью магических номеров. Это лучший способ, который я нашел.

 
FerruFx:
Измените вот так:

if(Show_Settings) subPrintDetails(); else Comment("");

FerruFx

Спасибо большое!!! Я протестирую это в воскресенье вечером. Я очень ценю вашу помощь! Хороших выходных!

Дэйв

 

Модификация советника

Здравствуйте

Буду очень признателен, если кто-нибудь сможет мне помочь. Есть советник, который я взял с другого форума FX. Он выглядит отлично, но я был бы признателен, если бы кто-нибудь помог сделать некоторые изменения в нем.

Я попробовал то немногое, что я думаю, я знаю, но он продолжает давать мне ошибки несбалансированных скобок e.t.c.

Советник открывает 5 лотов и фиксирует прибыль по 1 лоту при заданном значении прироста (скажем, 50 пунктов/пипсов). Таким образом, он закрывает 1 лот каждый раз, когда прибыль увеличивается на указанное число и, наконец, позволяет пятому/последнему лоту работать до тех пор, пока не появится противоположный сигнал.

Модификации:

Я хочу, чтобы он открывал только 3 лота,

закрывать по 1 лоту при увеличении прибыли на заданное количество пунктов.

После достижения первых двух точек Take profit, для третьей следует использовать трейлинг-стоп.

Иллюстрация:

3 лота

Инкрементная точка TP = 40 пунктов

TP 1-го лота = 40, стоплосс перемещен на BE

2-й лот TP = 80

3-й лот = активирован трейлинг-стоп

Все остальное уже есть в советнике, но мне просто нужно изменить размер лота и добавить трейлинг-стоп.

Спасибо

Файлы:
stoch_ac.txt  7 kb
 
Dave137:
Спасибо большое!!! Я протестирую его в воскресенье вечером. Я очень ценю вашу помощь! Хороших выходных! Дэйв

Не за что, Дэйв. Наслаждайтесь воскресеньем!

FerruFx

 

рисование линии и стрелки вверх/вниз на свече

Я пытаюсь запрограммировать очень простой индикатор для рисования линии и стрелки вверх/вниз на свече.

Я не могу понять, как использовать эти style, index, draw и т.д.

У меня есть очень простой оператор if внутри Start(), так что еще мне нужно добавить перед Start() и внутри if Start(), чтобы нарисовать линию, стрелку вверх и стрелку вниз?

Спасибо.

 
MoreYummy:
Я пытаюсь запрограммировать очень простой индикатор для рисования линии и стрелки вверх/вниз на свече.

Я не могу понять, как использовать эти style, index, draw и т.д.

У меня есть очень простой оператор if внутри Start(), так что еще нужно добавить перед Start() и внутри if Start(), чтобы нарисовать линию, стрелку вверх и стрелку вниз?

Спасибо.

Прежде чем пытаться рисовать с некоторыми условиями в функции Start(), необходимо установить/инициализировать буферы[].

Кодирование индикатора - это не простая работа. Возможно, вам придется изучить некоторые основы кодирования mql.

Желаю вам всего наилучшего в процессе обучения.

FerruFx

 

помогите

Здравствуйте товарищи программисты,

У меня есть советник, который торгует на EURUSD, когда я прикрепляю его к графику EURUSD. Вопрос в том, как я могу торговать несколькими парами без необходимости прикреплять советника к нескольким графикам?

Что-то вроде этого?

string pairs = "GBPUSD;EURUSD;USDCHF;USDJPY;USDCAD;GBPJPY;EURJPY;GBPCHF;EURAUD;EURCHF;EURGBP;AUDUSD;CHFJPY";

Заранее спасибо,

LF

 

Поручите вашему коду торговать конкретной парой, когда вы отправляете свой ордер, это очень просто, прямо в документации.

 

Используйте массив вместо строки, затем пройдитесь циклом по массиву, устанавливая порядок для каждой пары на каждой итерации. Если вы не использовали массивы раньше, просто посмотрите на них в файле справки. Они довольно просты.

Удачи

Lux

Причина обращения: