Доработка ботов (советников, индикаторов)

Статус
Закрыто для дальнейших ответов.

Unfound

Интересующийся
Индикатор nonlagdot

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

Вложения

Alfa555

Активный участник
Добрый день уважаемые товарищи, разбирающиеся в MQL4. Есть простой советник, вроде дает прибыль, но только одно в нем не устраивает - фиксированный лот. Сам пытался это дело исправить - слишком многого не знаю, к сожалению. Если у кого-нибудь найдется время, добавьте пожалуйста параметр настройки "риск" - чтобы сделка не фиксированным лотом совершалась, а допустим 5% от депо. Подозреваю, что дело плевое.
Файл прикрепить почему-то не получается, оставлю ссылку на советник.
_http://www.programs-forex.ru/untitled/sovetniki_pack1/Breakout.rar

Проверяй ... Посмотреть вложение Breakout.rar
 

guzelaa

Местный знаток
робот_forex_2015_Profesional_real

всем привет! выкладываю советника которым торгую прибыльно уже почти 6 месяцев! советник реально прибыльный но опасен если депозит маленький! есть смысл переделать его что бы одновременно ставил ордера бай и сел! так он будет торговать прибыльней и надежней сам я не особо разбираюсь в кодах советника! если кто нибудь смог бы зделать это буду очень благодарен!!!!!
 

Вложения

Krilin

Активный участник
Вкрутите плиз боту статичный, первый SL. чтоб его можно было выбирать (указывать) как начальный параметр ордера. (на 1-й и 2-й ордер)

вот код бота:

extern double TakeProfit = 25.0;
extern double TakeProfit2 = 25.0;
extern double TrailingStop = 20.0;
extern double TrailingStop2 = 20.0;
extern double Lots = 1.0;

color Filter10 = 68;
color Filter12 = 9;
color Filter6 = 80;
color Filter4 = 35;
color Filter2 = 47;
color Filter9 = 46;
string Name_EA = "sca";
int Slippage = 30;
bool UseSound = FALSE;
string EAsound = "alert.wav";

void deinit() {
Comment("");
}

int start() {
if (Bars < 100) {
Print("");
return (0);
}
if (TakeProfit < 10.0) {
Print("");
return (0);
}
if (TakeProfit2 < 10.0) {
Print("");
return (0);
}
double l_iclose_0 = iClose(NULL, PERIOD_M5, 0);
double l_ima_8 = iMA(NULL, PERIOD_M5, 7, 0, MODE_SMA, PRICE_OPEN, 0);
double l_iclose_16 = iClose(NULL, PERIOD_M5, 0);
double l_ima_24 = iMA(NULL, PERIOD_M5, 6, 0, MODE_SMA, PRICE_OPEN, 0);
if (AccountFreeMargin() < 1000.0 * Lots) {
Print(" Free Margin = ", AccountFreeMargin());
return (0);
}
if (!ExistPositions()) {
if (l_iclose_0 < l_ima_8) {
OpenBuy();
return (0);
}
if (l_iclose_16 > l_ima_24) {
OpenSell();
return (0);
}
}
TrailingPositionsBuy(TrailingStop);
TrailingPositionsSell(TrailingStop2);
return (0);
}

bool ExistPositions() {
for (int l_pos_0 = 0; l_pos_0 < OrdersTotal(); l_pos_0++) {
if (OrderSelect(l_pos_0, SELECT_BY_POS, MODE_TRADES))
if (OrderSymbol() == Symbol()) return (TRUE);
}
return (FALSE);
}

void TrailingPositionsBuy(int ai_0) {
for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) {
if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderType() == OP_BUY) {
if (Bid - OrderOpenPrice() > ai_0 * Point)
if (OrderStopLoss() < Bid - ai_0 * Point) ModifyStopLoss(Bid - ai_0 * Point);
}
}
}
}
}

void TrailingPositionsSell(int ai_0) {
for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) {
if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol()) {
if (OrderType() == OP_SELL) {
if (OrderOpenPrice() - Ask > ai_0 * Point)
if (OrderStopLoss() > Ask + ai_0 * Point || OrderStopLoss() == 0.0) ModifyStopLoss(Ask + ai_0 * Point);
}
}
}
}
}

void ModifyStopLoss(double a_price_0) {
int l_bool_8 = OrderModify(OrderTicket(), OrderOpenPrice(), a_price_0, OrderTakeProfit(), 0, CLR_NONE);
if (l_bool_8 && UseSound) PlaySound(EAsound);
}

void OpenBuy() {
double l_lots_0 = GetSizeLot();
double l_price_8 = 0;
double l_price_16 = GetTakeProfitBuy();
string l_comment_24 = GetCommentForOrder();
OrderSend(Symbol(), OP_BUY, l_lots_0, Ask, Slippage, l_price_8, l_price_16, l_comment_24, 0, 0, Filter10);
if (UseSound) PlaySound(EAsound);
}

void OpenSell() {
double l_lots_0 = GetSizeLot();
double l_price_8 = 0;
double l_price_16 = GetTakeProfitSell();
string l_comment_24 = GetCommentForOrder();
OrderSend(Symbol(), OP_SELL, l_lots_0, Bid, Slippage, l_price_8, l_price_16, l_comment_24, 0, 0, Filter6);
if (UseSound) PlaySound(EAsound);
}

string GetCommentForOrder() {
return (Name_EA);
}

double GetSizeLot() {
return (Lots);
}

double GetTakeProfitBuy() {
return (Ask + TakeProfit * Point);
}

double GetTakeProfitSell() {
return (Bid - TakeProfit2 * Point);
}
 
Последнее редактирование модератором:

lexyz1

Интересующийся
BreakdownLevelDay

Всем привет хочу спросит можно ли что нибудь сделать с советником, неправильно выставляет ордера.
Нужно чтобы он выставлял ордера в 00:00 по максимуму и минимуму, а он выставляет черт знает как.
Р.С. Правда минимум выставил правильно!
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    110,5 КБ · Просмотры: 343
  • BreakdownLevelDay.mq4
    BreakdownLevelDay.mq4
    9,9 КБ · Просмотры: 99

gralvi

Почетный гражданин
всем привет! выкладываю советника которым торгую прибыльно уже почти 6 месяцев! советник реально прибыльный но опасен если депозит маленький! есть смысл переделать его что бы одновременно ставил ордера бай и сел! так он будет торговать прибыльней и надежней сам я не особо разбираюсь в кодах советника! если кто нибудь смог бы зделать это буду очень благодарен!!!!!

А для каких целей???
Увеличить убыток встречным ордером???

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

ibraim-k

Интересующийся
Здравствуйте уважаемые програмисты. Учасвствую в конкурсе пытаясь заработать стартовый депозит, но из за основной работы не могу быть у монитора, вечером делаю разметку и часто она правельная, однако заключать зделки не могу в связи с приведенными выше обстоятельствами. В конкурсе защитывается 10 пунктов прибыли,количество открываемых ордеров - 10,(открываюсь всеми),лот - 1, выкладываю скрипты которыми пользуюсь для открытия сделки, нужен советник который будет запускать эти скрипты по заданной разметке, и еще эти скрипты после 30-70 зделок пишут какие то текстовые докуметы в папку "C:\Program Files\InstaTrader\experts\logs" размером в гигобайты,т.е полностью забивают диск С, находясь перед монитором я их удаляю вручную, можно ли это поправить.Пример постарался изобразить на рисунке.Сможет ли кто небудь помочь мне? Искренне признателен всем откликнувшимся.
С уважением Ибраим.

_http://s007.radikal.ru/i301/1103/4c/e14c1a311947.png
пример 2:
_http://s015.radikal.ru/i330/1103/fc/f1dc9047d0bc.png
 

Вложения

Последнее редактирование модератором:

matrai

Новичок форума
Добрый день . А можно сделать чтобы этот советник открывал не BUY LIMIT , SELL LIMIT а BUY STOP , SELL STOP
 

Вложения

nioton

Интересующийся
Индикатор дивергенции

Добрый день уважаемые форумчане. Тестирую терминал МТ5, и очень бы хотелось в работе использовать индикатор дивергенции. Кто то может оказать помощь в перепрограммировании под данный терминал нижеследующего файла. Буду очень признателен.
 

Вложения

machzelet

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

Код:
extern string Pair_1         = "EURUSD";
extern string Pair_2         = "GBPUSD";
extern string Pair_3         = "AUDUSD";
extern string Pair_4         = "NZDUSD";
extern string Pair_5         = "EURJPY";
extern string Pair_6         = "GBPJPY";
extern string Pair_7         = "USDJPY";
extern string Pair_8         = "USDCHF";
extern string Pair_9         = "USDCAD";
extern string Pair_10        = "EURGBP";

string symbol[];
int index=0;

int init()
   {
   if (Pair_1 != "") 
      {
      symbol[index] = Pair_1;
      index++;
      }
   if (Pair_2 != "") 
      {
      symbol[index] = Pair_2;
      index++;
      }
   if (Pair_3 != "") 
      {
      symbol[index] = Pair_3;
      index++;
      }
   if (Pair_4 != "") 
      {
      symbol[index] = Pair_4;
      index++;
      }   
   if (Pair_5 != "") 
      {
      symbol[index] = Pair_5;
      index++;
      }
   if (Pair_6 != "") 
      {
      symbol[index] = Pair_6;
      index++;
      }
   if (Pair_7 != "") 
      {
      symbol[index] = Pair_7;
      index++;
      }
   if (Pair_8 != "") 
      {
      symbol[index] = Pair_8;
      index++;
      }
   if (Pair_9 != "") 
      {
      symbol[index] = Pair_9;
      index++;
      }
   if (Pair_10 != "") 
      {
      symbol[index] = Pair_10;
      }
   }

Затем symbol[index] вставляется в основной код советника, заменяя Symbol().
 

dixit19

Прохожий
Прошу помощи.

Доброго времени суток.Вот советник для торговли в тестере.Помогите пожалуйста добавить в него функцию передвижения SL и TP с помощью мышки.
 

Вложения

Последнее редактирование:

Milord

Местный знаток
ПОМОГИТЕ ПОЖ. ДОРАБОТАТЬ СОВЕТНИК

Привет всем авторам, программерам и начинающим!)
нашел иланоподобный советник, торгует в плюсе, но пока не пойдет против рынка, а против рынка не попрешь))):-)
сразу слив, если сильный и долгий тренд, а виной всему его способность открывать ордера BUY,когда тренд идет вниз(вместо SELL),
а также открывает SELL ордера, когда тренд идет вверх(вместо BUY).Помогите плиз его доработать,чтобы он работал наоборот( вернее как надо), то был бы почти грааль))
Еще момент - как сделать в нем размер первого лота привязанного к размеру депозита? в процентах от 1 до 100% и вывести на оптимизацию размер процентов.размер лота в таком соотношении - при депо=10000, Lots(%)=1,,,100%=0.1....10 лотов.
Прилагаю советник и скрин его работы на трендах.
 

Вложения

  • G.P.Morgan.mq4
    G.P.Morgan.mq4
    17,3 КБ · Просмотры: 139
  • dorabotka.jpg
    dorabotka.jpg
    39,7 КБ · Просмотры: 201

Variator

Новичок форума
Если есть на форуме компетентные программеры на mql4 . то есть интересная задачка, которая поможет решить проблему не только настройки и оптимизации параметров set для советника, но и коррекцию этих параметров в течении торговли. Помогите решить в виде программного кода следующую задачку:
- необходимо найти значения координат (время и цена) для средней линии и границ (верх и низ) канала линейной регрессии объекта mql4 (obj_regression) для заданного временного интервала. Решение этой задачи позволит автоматически вводить коррекцию непосредственно в процессе торговли, исключая тем самым ошибку рассогласования м/д значением МА, заданным при пуске программы и текущим значением оси канала линейной регрессии, определяющего направление и ширину тренда на текущем таймфрейме. В ручную я эту идеологию проверил на нескольких парах - работает идеально, но надо это реализовать в виде программного кода в качестве довеска к советнику cobra v1.1 или adrenaline и желательно внедрить эту идею в сам советник или в виде на худой конец в виде exter func. Я, к сожалению, не настолько хорошо знаком с языком mql4, чтобы корректно решить эту задачу, но буду рыть в этом направлении. Возможно кто-то это сможет сделать гораздо быстрее, если имеет достаточный опыт кодирования на MQL4. Идею вроде изложил доступно, так что жду предложений или вопросы. Наверно общими усилиями возможно решить эту проблемму Программеры !!! Отзовитесь!!!
Эту идею легко проверить, если повесить на окно к советнику cobra1.1 or cobra adrenaline1.12 indicator, который тоже называется cobra, состоящий из двух регрессионных каналов разной протяженности и Вы увидите как все красиво вписывается и в процессе торговли увидите нарастающее рассогласование и уменьшение прибыли и нарастание количества закрытых советников убыточных сделок.
 

sknk2009

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

Но сейчас есть новая идея, которая как мне кажется заслуживает вашего внимания.

И так, едея как мне кажется очень проста, все тотже индикатор LSMA in Color (привык я к нему) я вписал в советник exp_iCustom_v8, разрешил открывать одновременно по одному ордеру Buy и Sell, ориентируясь на сигналы индикатора.
прибыль фиксируется по трейлинг-стопу. Стоп-лосс у ордера изначально нет.

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

Мои предложения по этому поводу:
1. Создать в советнике условие на открытие противоположной сделки, при условии появления сигнала на индикаторе и не сработавшем трелле по первой сделке с увеличенным лотом (регулируемым) допустим в три раза больше первого. при сработке трейлинга по второй сделке, закрывается как она так и первая, открытая ошибочно. Если и эта сделка не дошла до трейлинг-стопа, и поступил сигнал на открытие в сторону первого ордера, то открывается еще одна позиция с заданным увеличением уже по отношению ко второй сделке. И так до полного слива:). Шучу, Зная данный индикатор, могу сказать что таких перекидок может быть не больше трех, главное правильно настроить индюк, после чего мы возьмем свой профит:). Все открытые позиции закрываются также по трейлингу последнего ордера.

2. Смысл тот же, только добавить функцию безубытка +1 пункт в результате возможных перекидок направления движения цены. А далее уже последний ордер сопровождает трейлинг-стоп. При сработке безубытка либо трейлинг стоп, закрываются все открытые позиции, как в первом варианте, так и во втором.

Если будет проще написать нового советника, то должны присутствовать следующие изменяемые параметры:

Индикатор:
1. Rperiod -период индикатора
2. Draw4HowLongg -период индикатора

Советник:

1. BuyBufIndex -№ буфера индикатора для ориентации получения сигнала на Buy
2. SellBufIndex -№ буферв индикатора для ориентации получения сигнала на Sell
3. Shift -№ бара на открытие позиции после полечения сигнала от индикатора
4. SleepBars -сколько баров ждать для повторного открытия позиции в том же направлении что и предыдущая, закрытая по трейлингу, при условии что сигнал от индик-ра все еще поступает в эту сторону. (хотя это можно и не вкючать, я всеравно ставлю 999, зачем лишние риски)
5. TrailingStopStart -растояние в пунктах от линии трейлинга до цены, тянется за ценой
6. TrailingStop -количество пунктов для старта трейлинга
7. BreakEvenStart -сработка безубытка (в пунктах прибыли)

Ну вобщем как-то так. Если вдруг чего не так написал, поправьте пожалуйста.

Если есть уже подобные советники, то помогите сделать опирание на LSMA in Color.

Будут изменения, дополнения, буду только рад. Давайте вместе создадим грааль!:)
По моему мнению данная стротегия должна зарабатывать. СПАСИБО!
 

sknk2009

Прохожий
Забыл еще добавить.

После выхода из так называемых перекидок, советник переходит в стандартный режим работы: Сигнал индюка на Buy, открывается Buy, трейлинг-стоп, взяли профит, ждем сигнала на Sell. Сигнал индюка на Sell, открывается Sell, трейлинг-стоп, взяли профит, ждем сигнала Buy.

Исключение: я в настройках ставил бар для открытия №2, так частично гасятся шумы, и если после Sell мы ждали Buy, а Buy был только на баре №1, после чего опять сигнал Sell, советник ждет бар №2 для подтверждения, и опять входит на Sell.

Во как.

Если нужны советник exp_iCustom_v8, и индикатор LSMA in Color, обьясните как прикрепить. Так и не смог понять. Не особо я с компьютером дружу. По этой причине и не смог сам ничего переделать в советнике, хатя делал распечатка нескольких подобных советников, но закономерности в кодах так и не увидел:(

Вся надежда только на вас! Господа програмисты.
 

мдфвшьшк

Новичок форума
Господа программисты может кто нибудь поможет!

Господа программисты может кто нибудь поможет!




Проводим линию по разворотной точке параболика.Бар закрылся выше линии покупаем,стоп лосс ставим на линию.Цена пошла вниз бар закрылся ниже линии, продаем,стоп лосс ставим на линию.Цена пошла ввех ,бар закрылся выше линии ,покупаем . Все.Прикрутить трал вот и все ,с уважением. Думаю так будет понятно,приношу свои извенения ,торопился,с уважением.

http://www.7image.ru...11/14375266.gif
 
Статус
Закрыто для дальнейших ответов.

Отслеживают (859) Посмотреть

Верх