Перейти к содержанию

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


Рекомендуемые сообщения

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


denis77515, а какие условия открытия и в чём конкретно проблема, как работает и как должно быть?


проблема такова открываются ордера по значениям идикатора, между +10(+30) стоп лоссом является значение этого же индикатора только -10, тейк профитом значения больше равно +70 ,то есть у меня не получается написать обратные закрытие то есть тейк профит -70,стоп лосс +10.Получается такая петрушка когда ордера плавают допустим меньше значения +10(-10) то нормально как только выходят из этого диапазона он их закрывает выше описал как оно должно работать.
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 6,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Смотрим видео-уроки, изучаем MQL:       Скачать видеокурс «MQL программирование. Как самому написать форекс советник/ индикатор/ скрипт»   P.S. Тема про Обучение MQ

Перейти

Циклы цикл for Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. К примеру, мы хотим проанализировать последние 10 баров и выяснить наименьшую цен

Перейти

Речь идет о том, что не будет значимых нововведений. А только баги периодически будут править. А вот все новое мол - в МТ5. Когда они вживую сказали то же самое на конференции в Москве, я уточнил: "То

Перейти
Обучение языку MQL4 под MetaTrader 4 Опубликовано
denis77515 то, что я вижу в Вашем коде можно записать вот так:
if (MathAbs(indi_usd) >= 10) Close_Orders_USD();
это эквивалентно Вашему коду, но Вы пишите, что работает не правильно - поэтому Вы опишите словами, как должно работать, а мы запись на МКЛ сообразим.
Ссылка на сообщение
Поделиться на другие сайты

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


denis77515 то, что я вижу в Вашем коде можно записать вот так:
if (MathAbs(indi_usd) >= 10) Close_Orders_USD();
это эквивалентно Вашему коду, но Вы пишите, что работает не правильно - поэтому Вы опишите словами, как должно работать, а мы запись на МКЛ сообразим.


Здраствуйте OLL Открываем позиции ТОЛЬКО если индикатор находится между -10 и -30 или между 10 и 30.Выходим из позиции если индикатор дошел до 70 или -70 (тейк-профит). Стоп-лоссом для нас будет значение индикатора -10 или 10 то есть открыты ордера при показаниях 10(30) стоп лосс -10,тейк профит 70, открыты ордера -10(-30) то тейк профит -70,стоп лосс 10 в общем получается что открыта корзина ордеро по условию 10(30) тут же закрывает условием больше 10. в общем вот код вместе с индикаторами.посмотрите если не затруднит! Изменено пользователем denis77515
Ссылка на сообщение
Поделиться на другие сайты

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

все там есть


Добавлено: 24-11-2014 17:46:07

из советника traltest вызываю заголовочный файл. который вызывает библиотеку

traltest.mq4
library.txt
library.mq4

Ссылка на сообщение
Поделиться на другие сайты

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

Да,уж - задал задачку...
Запустил я Ваш комплект:
1. Убрал #property strict в сове
2. Добавил в описание вызываемой функции (в библиотеке) void tral (...) export

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
denis77515
условие на вход: if (MathAbs(indi_usd) >= 10 && MathAbs(indi_usd) только с направлением входа надо разобраться.
условие на выход: if (MathAbs(indi_usd) >= 70) Close_Orders_USD();
ну со СЛ и ТР я думаю сами сообразите.
Ссылка на сообщение
Поделиться на другие сайты

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


denis77515
условие на вход: if (MathAbs(indi_usd) >= 10 && MathAbs(indi_usd) только с направлением входа надо разобраться.
условие на выход: if (MathAbs(indi_usd) >= 70) Close_Orders_USD();
ну со СЛ и ТР я думаю сами сообразите.


oll я тут придумал все таки вот какую штуку, как думаете будет это все работать ?
Спойлер

[
//----------------------------------------------------------------------++
void OnTick()
{
if(Uslovie_Close_USD() == true)Close_Orders_USD();
}
//--------------------------------------------------------------------------++
void Uchet_Orderov(int mag, int &mas[7])
{
ArrayInitialize(mas,0);
//mas[0]; OP_BUY;
//mas[1]; OP_SELL;
//mas[2]; Сделки
int tip;
for(int i=0; i{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
tip=OrderType();
switch(tip)
{
case 0: {mas[0]++;mas[2]++;break;}//Buy
case 1: {mas[1]++;mas[2]++;break;}//Sell
}
}
}
//-------------------------------------------------------------------++
bool Uslovie_Close_USD()
{
bool res = false;
Uchet_Orderov(Magic_usd,Array_Close_Orders_usd);
Uslovie_usd=Array_Close_Orders_usd[0];//Buy
Usloviex_usd=Array_Close_Orders_usd[1];//Sell
if(MathAbs(indi_usd) >= 70 && Usloviex_usd == 4 && Uslovie_usd == 3) res = true;
if(MathAbs(indi_usd) if(MathAbs(indi_usd) if(MathAbs(indi_usd) >= 10 && Usloviex_usd == 3 && Uslovie_usd == 4) res = true;
return(res);
}







]

Ссылка на сообщение
Поделиться на другие сайты

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


oll я тут придумал все таки вот какую штуку, как думаете будет это все работать ?

Нет, работать не будет.
Я думаю Вы не чётко представляете чего хотите, а я уж вообще не понял... Пишите буквами, что хотели сделать.
1. Что такое mas[2]? - ответ: общее количество ордеров
2. Чему равно MathAbs(indi_usd)
Ссылка на сообщение
Поделиться на другие сайты

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



oll я тут придумал все таки вот какую штуку, как думаете будет это все работать ?

Нет, работать не будет.
Я думаю Вы не чётко представляете чего хотите, а я уж вообще не понял... Пишите буквами, что хотели сделать.
1. Что такое mas[2]? - ответ: общее количество ордеров
2. Чему равно MathAbs(indi_usd)

oll посмотрите на скрин,я думаю вам станет все понятно !

Image_3.pdf

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
denis77515 мне не стало всё ясно. Вот что я понял:
1. На одной паре открывается 7 ордеров (может 3+4, или 1+6)
2. При +70 - профит для селл при +10 фиксируем убыток по бай, в диапазоне +10+30 - открытие селл
3. При -70 - профит для бай, -10 закрываем в убыток селл, в диапазоне -10-30 - открытие бай
4. Мультивалютный не трогаю - запутаемся.
5. Готовой совы по кукловоду нет?
Если я прав - маякни. или исправь.
Ссылка на сообщение
Поделиться на другие сайты

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


denis77515 мне не стало всё ясно. Вот что я понял:
1. На одной паре открывается 7 ордеров (может 3+4, или 1+6)
2. При +70 - профит для селл при +10 фиксируем убыток по бай, в диапазоне +10+30 - открытие селл
3. При -70 - профит для бай, -10 закрываем в убыток селл, в диапазоне -10-30 - открытие бай
4. Мультивалютный не трогаю - запутаемся.
5. Готовой совы по кукловоду нет?
Если я прав - маякни. или исправь.


Я написал такую сову по кукловоду,входы все правильные,вроде работает нормально.Только вот с выходом у меня мозгов не как не хватает.3 месяц бьюсь и не как не получается.Я почему прошу помощи.Я выкладывал вчера полный код по нему,но посмотрел сутки не кто не скачивает,ну думаю значит не интересно народу,я и удалил.oll если вам интерена эта тема давайте добьем его.Пишите в личку там пообщаемся. А то что вы правильно написали вы или вы не поняли,но то что вы написали я совсем не понял.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
denis77515 Меня-бы заинтересовало, если есть стейты или ручное исследование данной стратегии, а пока я лишь хочу Вам помочь, но вот условия до конца не понимаю.
Давайте зайдём с другой стороны: после пересчёта ордеров по стороне селл убыток - при +10 закрываем, если профит, то ждём -70?
Ссылка на сообщение
Поделиться на другие сайты

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


denis77515 Меня-бы заинтересовало, если есть стейты или ручное исследование данной стратегии, а пока я лишь хочу Вам помочь, но вот условия до конца не понимаю.
Давайте зайдём с другой стороны: после пересчёта ордеров по стороне селл убыток - при +10 закрываем, если профит, то ждём -70?


oll вот мониторинг моего счета,но последнее время я решил влезть на перекуплености при показаниях индикатора боле 90,но как оказалось зря.вот в данный момент уже месяц пересиживаю убыток,на реале конечно так бы не рискнул. http://www.myfxbook.com/members/denis77515/eapuppeteer-v21-auto/986199
на счет того что вы пишите если брать более по проще корзину ордеров то JPY да вход происходит когда индикатор например находится между значениями допустим -10 и -30 открываются ордера на открытии нового дня Buy; AUDJPY, CADJPY, CHFJPY, EURJPY, GBPJPY, NZDJPY, USDJPY при условии если индикатор достигает значение +10 то мы закрываем убыток,то есть всю корзину ордеров не важно есть какие там в прибыли или нет. если же идет в нашу сторону то есть ждем значение -70 то так же закрываем всю корзину ордеров.надеюсь боле менее понятно объяснил.
Ссылка на сообщение
Поделиться на другие сайты

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

Кидай сову, я подрихтую. Если есть где-то подробно расписанные условия - кинь ссылку.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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


Кидай сову, я подрихтую. Если есть где-то подробно расписанные условия - кинь ссылку.


oll других правил к ней нет кроме как на этом же сайте http://tradelikeapro.ru/strategiya-kuklovod/ Изменено пользователем denis77515
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
denis77515
Глянул наскоро сову - я поражён, что она работает... Вы сами писали? - если да, то поздравляю - большая работа.
но открытие ордеров по разным инструментам нужно делать и по ценам этих инструментов.
в общем ошибок много, даже не знаю, что делать - вроде обещал исправить, а там переписывать нужно...
Объясните мне, что должна делать сова при следующем раскладе:
индюк прошёл от 0 до +10 (вошли) потом до +70 (закрыли), потом до +30 - опять входим? в ту-же сторону?
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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


denis77515
Глянул наскоро сову - я поражён, что она работает... Вы сами писали? - если да, то поздравляю - большая работа.
но открытие ордеров по разным инструментам нужно делать и по ценам этих инструментов.
в общем ошибок много, даже не знаю, что делать - вроде обещал исправить, а там переписывать нужно...
Объясните мне, что должна делать сова при следующем раскладе:
индюк прошёл от 0 до +10 (вошли) потом до +70 (закрыли), потом до +30 - опять входим? в ту-же сторону?


Да писал сам :d ,ну я же не профи,не знаю, но каким то образом она работает :d. Да если идюк показыват такие же значения для входа то входим по новой, но каждый вход только на открытии новой свечи. Вообще там я как понял и выход такой же,то есть на закрытии свечи и если есть сигнал от индюка,но решил сделать выход динамичным
Ссылка на сообщение
Поделиться на другие сайты

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

Всем здравствуйте.
Зарегился я на форуме уже давно,но до этого был только читателем(масса интересной информации).
Хотелось бы выразить признательность уважаемому Павлу за создание очень полезного и познавательного блога и пожелать ему всяческих успехов.
Я,как и многие участники форума,заинтересовался программированием на MQL4.Хочу поблагодарить уважаемого XMBS за уроки.Надеюсь,ему не надоест просвещать новичков ;;).
У меня такой вопрос-подскажите,пожалуйста,как закодировать выставление стоплосса по МА?
Вот код:

void OnTick()
{double SLBuy, SLSell, HssVal, LssVal;
//-------------------------------------------вычисление значения индикаторов
double HighMA,LowMA,RSIVal;
HighMA = iMA(NULL,0,HPeriod,0,HMetod,2,0);
LowMA = iMA(NULL,0,LPeriod,0,LMetod,3,0);
RSIVal = iRSI(NULL,0,RSIperiod,RSIprice,0);
//--------------------------------------------определение параметров ордера на покупку
if (Open[1]HighMA && RSIVal>50 && CountBuy() == 0)
//--------------------------------------------открытие ордера на покупку
{
LssVal = iCustom(NULL,0,"Moving Average",LPeriod,0,LMetod,3,0);
SLBuy = NormalizeDouble(LssVal-SLindent*Point,Digits);
int ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,NULL,Magic,0,Blue);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES)== true)
bool OrdBuyMod = OrderModify(ticket,OrderOpenPrice(),SLBuy,0,0);

}

}
//--------------------------------------------определение параметров ордера на продажу
if (Open[1]>LowMA && Close[1] //--------------------------------------------открытие ордера на продажу

{
HssVal = iCustom(NULL,0,"Moving Average",HPeriod,0,HMetod,2,0);
SLSell = NormalizeDouble(HssVal+SLindent*Point,Digits);
ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,NULL,Magic,0,Red);
if(ticket > 0)
{
if(OrderSelect(ticket,SELECT_BY_POS,MODE_TRADES)== true)
bool OrdSellMod = OrderModify(ticket,OrderOpenPrice(),SLSell,0,0);


}

}
}

Компилятор выдает 0 ошибок,0 предупреждений.
Сов позы открывает но стопы не ставит.
Функции CountBuy() и CountSell() взяты из уроков.

Изменено пользователем Айк
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
Айк, Вы бы лучше приложили полный код в виде файла, в эдиторе гораздо удобней смотреть чем так.
Ссылка на сообщение
Поделиться на другие сайты

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


У меня такой вопрос-подскажите,пожалуйста,как закодировать выставление стоплосса по МА?


Вот эта строка - лишняя: LssVal = iCustom(NULL,0,"Moving Average",LPeriod,0,LMetod,3,0);
используйте значение ранее вычисленное: LowMA. Для Селл - тоже самое.
или у Вас ещё более хитрая МА есть?
Ссылка на сообщение
Поделиться на другие сайты

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

Дело в том,что я раньше уже пробовал использовать HighMA и LowMA;стопы все равно не ставились.
Необходимое пояснение-сов предназначен только для открытия позиции.

MAHigh-RSI-MALow.mq4

Ссылка на сообщение
Поделиться на другие сайты

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


Дело в том,что я раньше уже пробовал использовать HighMA и LowMA;стопы все равно не ставились.
Необходимое пояснение-сов предназначен только для открытия позиции.


Я иправил тебе ошибки,сравни два кода и поймешь в чем было дело. Изменено пользователем denis77515
Ссылка на сообщение
Поделиться на другие сайты

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

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...