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

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

#2601


Ну так все по правилам. Мы ждем закрытия первой бычьей и на ОТКРЫТИИ следующей после бычьей входим.

П.С. если не ждать закрытия бычьей свечи, то ты еще не знаешь, что она бычья =)))


Добавлено: 03-10-2015 20:25:49

kashmarik, покажи на скрине место открытия позиции по твоим правилам, которое ты считаешь вовремя.

Вот на скрине я показал где,и еще почему он раньше не открыл позицию?

3.jpg

#2602

Думаю вопрос твой должен отпасть.

1.jpg

#2603

:d

kashmarik, вы думаете, если по сырой ТС попросить написать бота, то бот будет лучше угадывать будущее движение рынка?!
Так не бывает...

Попробуйте потестировать бота на м30 и даже м15 - может бот будет входить раньше и в итоге все же торговать в плюс. :)

#2604

а вот именно это пропустили.. причём не только я, но и два нанятых программиста. судя по коду это то что нам нужно :) спасибо огромное.



Плохо искали
https://github.com/sergeylukin/mql4-mysql

#2605

Здравствуйте.
Разыскиваю советник который бы облегчил жизнь :). А именно выставлял бы автоматом тейк и стоп. Да да я знаю таких полно, но нужно не то... чего в инете полно(сейчас поясню). При открытии сделки сразу выставляется стоп и тейк
(это стоп умноженный на 2), при изменении стопа(вручную) на графике, автоматом меняется и тейк профит(стоп умноженный на 2).
И еще бы безубыток(+1пункт) на прохождение 1-го стопа+спред(при выставлении БУ, тейк остается прежним)


Может получится переделать тот который есть? Уважаемые программисты, если у Вас занято время или нет желания, направьте в нужное русло и порекомендуйте необходимую литературу(сугубо для выполнения задачи).
Заранее благодарен!

Helper.mq414 скач.

#2606


:d

kashmarik, вы думаете, если по сырой ТС попросить написать бота, то бот будет лучше угадывать будущее движение рынка?!
Так не бывает...

Попробуйте потестировать бота на м30 и даже м15 - может бот будет входить раньше и в итоге все же торговать в плюс. :)


Я бы не сказал что ТС сырая,в нете она в свободном доступе с описанием,думаю если сова доработать,он покажет не плохие результаты.А на меньших таймфремах ,быстрей сливает
#2607


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


А что дорабатывать-то в сове?
Бот-то в целом вполне добротный...

Другой вопрос что эта ТС содержит только вход - но забыли о выходе, SL и, прости Господи, tp. Это вообще сильно.
Куда и по ком стреляем? :)

И тесты выкладывать думаете? Бота заказали, получили - и как партизан... :)
Что-то делать надо!
#2608



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


А что дорабатывать-то в сове?
Бот-то в целом вполне добротный...

Другой вопрос что эта ТС содержит только вход - но забыли о выходе, SL и, прости Господи, tp. Это вообще сильно.
Куда и по ком стреляем? :)

И тесты выкладывать думаете? Бота заказали, получили - и как партизан... :)
Что-то делать надо!

Да почему как партизан,пытаюсь доделать бота,как что-то получится конечно выложу
#2609

Как сделать тейк в два стопа и бу равный стопу, я понял. Просто заменил значения на мне необходимые. Но вот что делать что бы при ручной смене стопа менялся и тейк и БУ? У меня все получилось из фиксированных значений стопа((

2Helper.mq45 скач.

Изменено 5 октября, 2015 пользователем Strong-Tezis

#2610

удалось извлечь данные. еще один вопрос если позволите. возникла проблема с нехваткой памяти =\ можно ли как то ее обойти в МТ4 или поможет только МТ5, или это вообще не решаемая проблема при извлечении большого числа данных? прикрепляю скрин.
хотя судя по ошибке проблема в клиенте MySQL а не в терминале... хм... ща подумаю.



Плохо искали
https://github.com/sergeylukin/mql4-mysql

rlKcRqgC4H8.jpg

#2611

проблема сохраняется даже если извлекать 3 строчки...
и даже если извлекать конкретный столбец, а не всё через *

Изменено 5 октября, 2015 пользователем chadaevr

#2612

Мне даже интересно стало что это такое вы там выбираете из БД v:)
Попробуйте выгрузку в файл на худой конец :D
p.s. судя по уровню компетентности ваших программистов, следует найти кого-то другого

#2613

да хотя бы одну строку и один столбец извлечь без ошибки. непонятно чего еще ему не хватает =\
я поделюсь со всеми форумчанами, не волнуйтесь) работаете на общее благо.
компетентность оставляет желать лучшего, но в данном случае надёжность важнее. даже имеющийся код является абсолютным граалем.


Мне даже интересно стало что это такое вы там выбираете из БД v:)
Попробуйте выгрузку в файл на худой конец :D
p.s. судя по уровню компетентности ваших программистов, следует найти кого-то другого

#2614

подскажите немного пожалуйста. какая функция возвращает значение стопа???
ну как MarketInfo , только для стоп лосса... или как иначе можно решить мою проблемку?

#2615

Смотрите OrderSelect в справочнике по MQL4.
Там вы найдете OrderStopLoss().

Если вы предполагаете руками изменять стоп-лосс ордера, то вам надо программировать считывание инфы ордера раз в 10-30 секунд для перепроверки не изменился ли СЛ и не надо ли пересчитывать и модифицировать ТР ордера.

#2616

Старик спасибо за ликбез. Я ознакомился уже сегодня с OrderStopLoss(). Но как сделать что бы считывал ордер не могу понять. Да ребята.. ваша подкованность в этом не простом деле поистине вызывает Уважение.

#2617

Взгляните пожалуйста, так должно быть?(только не хватает обновления инфы)

Спойлер




//+------------------------------------------------------------------+
void SetSLTP() {
double sl = 0, tp = 0;
for (int i=0; i if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol()) {
if (OrderType()==OP_BUY && (OrderStopLoss() == 0 && OrderTakeProfit() == 0))
{
if(SL>0) sl = OrderOpenPrice() - SL*Point_;
if(OrderStopLoss()*2) tp = OrderOpenPrice() + OrderStopLoss()*2*Point_;
ModifyStops(sl, tp);
}
if (OrderType()==OP_SELL && (OrderStopLoss() == 0 && OrderTakeProfit() == 0))
{
if(SL>0) sl = OrderOpenPrice() + SL*Point_;
if(OrderStopLoss()*2>0) tp = OrderOpenPrice() - OrderStopLoss()*2*Point_;
ModifyStops(sl, tp);
}
}
}
}
}


//+------------------------------------------------------------------+


Что под верхним спойлером писал, уже понял наверное не пройдет такое))
Думал что выставив значение SL выставит и профит, но тейк так вообще не ставит.


Или тут надо решать???
Спойлер

//+------------------------------------------------------------------+
void ModifyStopLoss(double ldStopLoss) {
bool fm;

fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldStopLoss,OrderTakeProfit(),0,DarkKhaki);
}
//+------------------------------------------------------------------+
void ModifyStops(double ldStopLoss, double ldTP) {
bool fm;
double sl = 0, tp = 0;
if(ldStopLoss>0) sl = ldStopLoss;
if(ldTP>0) tp = ldTP;
fm=OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,0,DarkKhaki);
}
//+------------------------------------------------------------------+



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

Изменено 5 октября, 2015 пользователем Strong-Tezis

#2618

TCB = iCustom(Symbol(), 0, "TradersDynamicIndex-4", RSI_Period, RSI_Price,
Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line,
Trade_Signal_Type, false, 4, 1);
TCS = iCustom(Symbol(), 0, "TradersDynamicIndex-4", RSI_Period, RSI_Price,
Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line,
Trade_Signal_Type, false, 5, 1);

Comment("\n","\n"
"СИГНАЛ " + DoubleToStr(TCB), "\n", "\n",
"СИГНАЛ " + DoubleToStr(TCS));

TradersDynamicIndex-4.mq48 скач.

#2619

В if(SL>0) sl = OrderOpenPrice() - SL*Point_;
if(OrderStopLoss()*2) неверно/непонятно условие, а умножать на 2 явно бессмысленно.

При модификации ордера надо нормализовать до требуемой значности значения СЛ и ТП.

Вы бы поискали/почитали код какого-то любого бота с модификацией ордеров - не надо изобретать с нуля.

#2620

Все! Стыдно признаться, сдаюсь. Если помогут, сделают на соседнем форуме, выложу для всех. Извиняйте, не тяну((

#2621


Все! Стыдно признаться, сдаюсь. Если помогут, сделают на соседнем форуме, выложу для всех. Извиняйте, не тяну((



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

Если Стоп не задан советник выставляет стоп и тейк.
Если Стоп есть, советник корректирует тейк.

TPSLHelper.mq412 скач.

#2622

Спасибо большое.

#2623

Здравствуйте, не могу разобраться в чем ошибка
начал модифицировать Сеточник который был в видео уроке на курсе от Tradelikeapro.
Добавил мартингейл. Он работает, но умножает с 1.5 до 2.
А с 1.1 до 1.4 нет, я не могу понять почему
Если кто знает подскажите

Martin_Setka.mq48 скач.

#2624


Здравствуйте, не могу разобраться в чем ошибка
начал модифицировать Сеточник который был в видео уроке на курсе от Tradelikeapro.
Добавил мартингейл. Он работает, но умножает с 1.5 до 2.
А с 1.1 до 1.4 нет, я не могу понять почему
Если кто знает подскажите



Может дело в округлении, попробуй поставить начальный лот больше в десять раз?
#2625

Парни, такая проблема... А возможно получить данные с другого периода при тестировании 99.9 в Тикстори? У меня например, при тестировании советника на м15, обычная функция iClose(Symbol(), PERIOD_M1, 1) отдает нули, т.е. с м1 данные не подгружает. Сами понимаете, при тестировании индикаторов и функций с значениями периодов отличными от текущего будут косяки.

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

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