Обучение языку MQL4 под MetaTrader 4📌

От xbms, 13 апреля, 2013 в Уголок Программиста

#3576


у меня всё нормально с тестером. Кол-во баров в окне настраивали?



Максимальное, около 10 000 000 лимит поставил, закачал всю доступную историю котировок в альпах. 1000 баров это програмное ограничение, оно у всех, а не отдельно у меня, или тестера стратегий!
#3577

Вы запускаете цикл от 0-бара в глубь истории, а наоборот пробовали? Например МА периодом 1200 баров как-то рассчитывают. Вот и Вам в эту сторону надо двигаться, заодно индюк летать будет и терминалу без циклов легче...

#3578

Можно ли в одном проекте одновременно юзать OnClaculate и OnTick? Если вдруг я хочу скрестить отрисовку индюка с советником.


Добавлено: 22-05-2016 22:35:45

Еще вопрос над которым уже бьюсь битый час, допустим у меня есть библиотека с функцией в которой вычисляются 3 переменные a, b, c. Как мне ими воспользоваться в основном коде программы? т.е. как заставить библиотеку записывать данные в глобальные переменные советника? ~x( Я создал даже структуру с тремя переменными, но передать её так и не могу.

Изменено 23 мая, 2016 пользователем SVS696

#3579
SVS696 функции OnClaculate и OnTick это точки входа на событие ( МТ получил тик ), имхо их нельзя использовать совместно. Да и многие функции разрешённые в индюках, запрещены в совах.

если библиотека с открытым кодом, то её цепляют к проекту так: #include
эта запись эквивалентна копированию всего кода библиотека в тело совы. Так что даже глобальные переменные и входные параметры ( типа input ) можно описывать в библиотеке. Я этим давно пользуюсь и проблем вообще не было.

если библиотека откомпилирована ( закрытый код ), то надо описывать нужную функцию, но это другая история.
#3580


SVS696
если библиотека с открытым кодом, то её цепляют к проекту так: #include
эта запись эквивалентна копированию всего кода библиотека в тело совы. Так что даже глобальные переменные и входные параметры ( типа input ) можно описывать в библиотеке. Я этим давно пользуюсь и проблем вообще не было.

если библиотека откомпилирована ( закрытый код ), то надо описывать нужную функцию, но это другая история.


Вот, именно хотелось бы с откомпилированной в ex4 работать уметь
#3581

Привет специалистам, нубский вопрос: Переписал по видео уроку "как написать советник мартингейл", но оказалось, что под современный МТ, он не идет. Видимо вопрос с историей, но может кто нибудь отпишет, есть ли лекарство, не сильно сложное.

#3582

Подумайте сначала над тем что вы пишите, я вообще не понимаю что вы спрашиваете! История в школе, лекарство в аптеке, и я не знал что есть современный МТ(выражаясь вашим языком), и дойсторический.


Добавлено: 24-05-2016 09:40:12

Где то видел в справочнике функцию: при наступлений события, например сигнал на вход в коде, открывается график символа, где этот сигнал(событие) наступил(наступило). что то помню, Chart....window(может ошибаюсь), искал в справочнике не нашел. Может кто знает?

Изменено 24 мая, 2016 пользователем vitek01

#3583


Подумайте сначала над тем что вы пишите, я вообще не понимаю что вы спрашиваете! История в школе, лекарство в аптеке, и я не знал что есть современный МТ(выражаясь вашим языком), и дойсторический.


Тут имелся введу не MT, а mql4 который и впрямь можно разделить на неандертальца и кроманьонца ;;)
#3584


хотелось бы с откомпилированной в ex4 работать уметь

Читай
#3585

Друзья, а есть ли в МТ4 какая-то глобальная булевая переменная, выставив которую, можно запретить/разрешить выставление ордеров по конкретной паре?

#3586


Друзья, а есть ли в МТ4 какая-то глобальная булевая переменная, выставив которую, можно запретить/разрешить выставление ордеров по конкретной паре?

Нет. Можно попробовать закрыть вкладку символа вместе с совой
#3587


Подумайте сначала над тем что вы пишите, я вообще не понимаю что вы спрашиваете! История в школе, лекарство в аптеке, и я не знал что есть современный МТ(выражаясь вашим языком), и дойсторический.


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

Изменено 28 мая, 2016 пользователем Старик

#3588

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

Ну если по взрослому, то надо приложить код и поведать об ошибках компиляции - ибо готовых рецептов нет и нужно вникать в каждый случай.
#3589

Помогите пожалуйста.
мне надо написать как отслеживать закрытие ордера в минус.
-один вариант по получению убытка отслеживаемого по уменьшению средств на депозите я сам научился писать
-а как отслеживать другим способом кроме уменьшения депозита не знаю

#3590

как отслеживать закрытие ордера в минус.

Для одного ордера логика может быть такая:
- если есть открытый ордер - запоминаем магик.
- если нет открытых ордеров и имеется магик > 0 - выделяем ордер по магику и читаем его Profit, магик = 0
#3591

советник не дописан, не знаю как реализовать отслеживание закрытия ордера в минус.
идея советника такая:
-10 пунктов тейкпрофит
-40 пунктов стоплосс
в идеале советник будет работать в обе стороны бай и селл

opositBUY.ex45 скач.

#3592

а перебирать ордера в истории религия не позволяет?
алгоритм простой как пять копеек.
1. перебираешь ордера по истории, смотришь последний закрытый ордер.
2. у него есть все параметры как и у обычного ордера в том числе и OrderProfit(). запоминаешь его тикет.
3. дальше каждый тик мониторишь только последний закрытый ордер(считай п.1), если его тикет изменился - п.2

как понимать что ордер последний - в цикле привязываешься либо ко времени закрытия(время закрытия должно быть наибольшим), либо к его тикету(тикет ордера должен быть наибольшим).

Изменено 29 мая, 2016 пользователем dermitay

#3593

мне не совет как текстом а на примере скрипта как можно реализовать сию процедуру явсего три недели учусь писать советники


Добавлено: 29-05-2016 19:14:04

добавляю тестовый график

TesterGraph.gif

Изменено 29 мая, 2016 пользователем boovood

#3594

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


int global_lastTick = -1;

//
bool ZakritVminyseOrder()
{
int ord = OrdersHistoryTotal();
int tick=-1;
datetime dt = 0;
for (int i = ord-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)) continue;
if (OrderTicket()>=0 && (OrderProfit()+OrderSwap()+OrderComission())dt)
{
dt = OrderCloseTime();
tick = OrderTicket();
}
}
if (tick != global_lastTick)
{
global_lastTick = tick;
return true;
}
return false;
}

Изменено 29 мая, 2016 пользователем dermitay

#3595

Здравствуйте уважаемые трейдеры.


случайно нашёл интересный шаблон для программирования .
Хотел вставить в него простой мартингеил (без усреднения),

extern double LotExponent = 2;


double Lots()
{
double lot = Lots;
int total = OrdersHistoryTotal();
for (int i = 0; i {
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderProfit() > 0)
{
lot = Lots;
}
else
{
lot = lot * LotExponent;
}
}
}
return(lot);
}


но после многочисленных попыток так и не получилось. ~x(
Либо появляется куча ошибок либо советник перестаёт открывать ордера. Помогите пожалуйста вставить мартингеил. :((

Exp_-_Templates_#8_TESTER_LIGHT.mq43 скач.
Exp_-_Templates_#8_TESTER_LIGHT.ex40 скач.

#3596

Я тут вижу функцию Lots(), а также приравнивание lot к Lots, возможно это корежет программу, я такого стараюсь избегать.

Изменено 30 мая, 2016 пользователем SVS696

#3597

Обновили последний урок под новый Метаэдитор
http://tradelikeapro.ru/otkryitie-i-modifikatsiya-orderov/

Теперь ВСЕ уроки актуальны >):)

#3598

Здравствуйте уважаемые трейдеры и программисты!!! Подскажите , как в сове добавить доливку по индикатору

форекс24.jpg

#3599

1. Подключаете индикатор к сове через iCustom
2. Опрашиваете его с некой периодичностью
3. если значение индикатора станет соответствовать Вашим условиям - открываете ордер

#3600


Урок по манименеджменту в советнике сделал.
Ломал ломал, голову.
Ппц какой то, нервов не хватит с этим форексом. А так всё просто оказывается. Спасибо.
=d>



А что это за урок по манименеджменту, можно подробнее или сылочку, я тоже хочу голову поломать?

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025