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

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

motolga

Активный участник
прикрутите алерт,пожалуйста

Господа.будьте любезны,прикрутите
 

Вложения

Novikov

Гуру форума
Там автор, видимо, схитро...пил и назвал переменную
extern string Сomment = "12345"; // комментарий к ордеру
написав первую букву кириллицей, а остальные латиницей. Если написать все буквы латиницей, то получится функция выводящая комментарий в верхнем правом углу графика. А вот кто ещё полазил и подправив эту нестыковку - загадка. Это и привело к ошибкам компиляции... Выход оказался простым... Поставили Comment в кавычки и ничего не волнует.
Если хочешь поменять, то найди в тексте две строки error=OrderSend(... и в них замени "Comment" на Сomment не жирным шрифтом, а первую букву кириллицей и без кавычек. Если будет давать ошибку компиляции, значит первая буква написана латиницей.

ps; И ещё, хоть я и не хотел разбираться в логике, но всё-же чуток обратил внимание на бесполезность строки
if(Trade && Terminal()==0) return(0);
Я-бы её удалил без зазрения совести не задумываясь. За открытие первых ордеров отвечает строка выше,
if(!OpenPair) return(0);
а за доливки строка ниже
if(Step<=0 && Terminal()!=0)return(0);

Спасибо большое, помогло!
Comment в двух строках написал без кавычек и С кириллицей - коммент выводится с ордером корректно!
 

DmitriyY87

Прохожий
Добрый день. Друзья, помогите пожалуйста. Нужен алерт, который срабатывает при касании цены. Знаю таких много, но мне нужны некоторые особенности. Индикатор должен срабатывать один раз за свечу. То есть к примеру если на часовой свече, цена коснулась уровня и алерт сработал, то следующее его срабатывание должно быть только при касании на следующей свече. Есть индикатор Price_Alert но он срабатывает не только при касании, но и при каждом изменении цены внутри свечи, что для меня вообще не вариант! В итоге получаем неприрывный вой алерта! Если кто возьмется переделать, буду весьма признателен.
 

Вложения

eevviill

Заблокирован
Добрый день. Друзья, помогите пожалуйста. Нужен алерт, который срабатывает при касании цены. Знаю таких много, но мне нужны некоторые особенности. Индикатор должен срабатывать один раз за свечу. То есть к примеру если на часовой свече, цена коснулась уровня и алерт сработал, то следующее его срабатывание должно быть только при касании на следующей свече. Есть индикатор Price_Alert но он срабатывает не только при касании, но и при каждом изменении цены внутри свечи, что для меня вообще не вариант! В итоге получаем неприрывный вой алерта! Если кто возьмется переделать, буду весьма признателен.
Там есть функция Open on new bar. Вставь в индикатор. Выложишь как получилось.
http://forexsystemsru.com/indikatory/69427-indikatory-ot-eevviill-5.html#post596494
 

DmitriyY87

Прохожий
Там есть функция Open on new bar. Вставь в индикатор. Выложишь как получилось.
http://forexsystemsru.com/indikatory/69427-indikatory-ot-eevviill-5.html#post596494
eevviill, спасибо вам конечно большое, я понимаю, что подправить этот простейший код дело двух минут.но я никогда не програмировал советники, поэтому сюда и обратился. Честно просмотрев видео, ничего не понял, уж простите за подтупливание. Мне не нужно срабатывание на открытии нового бара. Мне нужно срабатывание при касании. Бар при этом может быть уже давно открыт!
 

1comrad

Местный житель
Здравствуйте! С Новым годом! :)
Есть инфо, а у него не корректно отображается спред на JPY, Commodities и CFD - есть возможность исправить это недоразумение?
attachment.php

сам
Посмотреть вложение A_info_1.mq4
Спасибо!
 

Вложения

  • A_info_1-некорректно спред.png
    A_info_1-некорректно спред.png
    33,2 КБ · Просмотры: 344

eevviill

Заблокирован
eevviill, спасибо вам конечно большое, я понимаю, что подправить этот простейший код дело двух минут.но я никогда не програмировал советники, поэтому сюда и обратился. Честно просмотрев видео, ничего не понял, уж простите за подтупливание. Мне не нужно срабатывание на открытии нового бара. Мне нужно срабатывание при касании. Бар при этом может быть уже давно открыт!
Не. Ты не прав. Тебе надо раз на баре.
И ещё в терминале рекомендую зайти в вкладку Алерты. Там можно настроить алерты на любой вкус.

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

Вложения

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

Novikov

Гуру форума
Прошу, кого не затруднит, заменить в советнике Exp_PairTrader v43.mq4
параметр "Lot" (размер ордеров для каждой из 2х пар) на два параметра "Lot_1" и "Lot_2" (размер ордеров для каждой пары по отдельности)
"Lot_1" для "Symbol_1" и "Lot_2" для "Symbol_2"

Заранее благодарю!
 

zhserg

Местный знаток
Прошу, кого не затруднит, заменить в советнике Exp_PairTrader v43.mq4
параметр "Lot" (размер ордеров для каждой из 2х пар) на два параметра "Lot_1" и "Lot_2" (размер ордеров для каждой пары по отдельности)
"Lot_1" для "Symbol_1" и "Lot_2" для "Symbol_2"

Заранее благодарю!

Как то так...
 

Вложения

DmitriyY87

Прохожий
Не. Ты не прав. Тебе надо раз на баре.
И ещё в терминале рекомендую зайти в вкладку Алерты. Там можно настроить алерты на любой вкус.

Я в шоке. Скажи. Нах ты в пару веток просьбу печатаешь? Тебе насрать на труд других людей?
Ты не дождавшись ответа с другой ветки, просишь тут. А если там бы сделали и здесь?
Нельзя так делать, нельзя...
Уавжаемый eevviill, во-первых, огромное вам спасибо за помощь, вы меня очень выручили.
Во-вторых, мне совсем не насрать на труд других людей, я понимаю, что здесь помогают не мне одному! Просто я сначала попал в ветку "звук в индикаторах", потом увидел эту тему, посчитал, что здесь мой вопрос будет более уместен. Извините, я наверняка нарушил правила форума, я просто на форумах не частый гость. В любом случае ещё раз вам огромное спасибо, выручили.
 

eevviill

Заблокирован
Уавжаемый eevviill, во-первых, огромное вам спасибо за помощь, вы меня очень выручили.
Во-вторых, мне совсем не насрать на труд других людей, я понимаю, что здесь помогают не мне одному! Просто я сначала попал в ветку "звук в индикаторах", потом увидел эту тему, посчитал, что здесь мой вопрос будет более уместен. Извините, я наверняка нарушил правила форума, я просто на форумах не частый гость. В любом случае ещё раз вам огромное спасибо, выручили.
Это не правила форума. Надо было там дождатся ответа.
 

Novikov

Гуру форума

Спасибо, ордера открывает как заданно!

Но произошел один БАГ:
После открытия первых ордеров, поставил "торговля - запрещена" и "доливки - включены" - думал, что в таком лучае доливки будут работать, а новые ордера после закрытия по профиту не откроются.

Но при резком скочке котировок доливки не открывались, а во вкладке "эксперты" выдавало сообщение:

PHP:
2014.01.10 15:34:31	PTv44 EURCAD,H1: Error  4051 GBPAUD
2014.01.10 15:34:31	PTv44 EURCAD,H1: invalid lots amount for OrderSend function

Переключил на "торговля - разрешена" и ордера начали открываться, не доливки, а по новому, начиная с 0,01-0,02-0,04, при том, что размеры указаны Lot1=0.1, а Lot2=0.07

Кто-то может подсказать, как с этим бороться? Или может кто-то сможет исправить?

Заранее благодарю!
 

Григорийй

Заблокирован
а линию внутри дня прикрутить к данному надо

Код:
ObjectCreate("SellTP3D1a", OBJ_LABEL, window, 0, 0);
   ObjectSet("SellTP3D1a", OBJPROP_CORNER, corner);
   ObjectSetText("SellTP3D1a", D1TargetSELL3, 8, "Tahoma", color_SellTPD1);
   ObjectSet("SellTP3D1a", OBJPROP_XDISTANCE, 5);
   ObjectSet("SellTP3D1a", OBJPROP_YDISTANCE, 3);
или к сюда прикрутить ...

Код:
double D1TS3 = D1P - (D1r * 0.764);
   D1TargetSELL3 = DoubleToStr(D1TS3,Digits);
имеется в виду когда данное срабатывает, линии отрисовывались бы или Red или Lime внутри дня как на картинке.

Код:
//+------------------------------------------------------------------+
   //D1_TREND
   string D1Mid="",D1Pivot="",D1OPEN="";
   color color_d1op,color_d1mid,color_MTD1,clr_TdD1,color_BuyTPD1,color_SellTPD1;
   double Open_D1 = iOpen(NULL,1440,0);
   D1OPEN =  (DoubleToStr(Open_D1,Digits));
   double D1r = iHigh(NULL,PERIOD_D1,1) - iLow(NULL,PERIOD_D1,1);
   double D1R = (iHigh(NULL,PERIOD_D1,1) + iLow(NULL,PERIOD_D1,1))/2;
   double D1P = (iHigh(NULL,PERIOD_D1,1) + iLow(NULL,PERIOD_D1,1) + iClose(NULL,PERIOD_D1,1))/3;
   D1Mid = DoubleToStr(D1R,Digits);
   D1Pivot = DoubleToStr(D1P,Digits);

   //D1_TREND
   string  D1TProfit1="",D1TProfit2="",D1TargetBUY1="",D1TargetBUY2="",D1TargetBUY3="",//1TargetBUY4="",
           D1_Trend="",D1_Today="",D1TargetSELL1="",D1TargetSELL2="",D1TargetSELL3="";//D1TargetSELL4="";
   double D1TB1 = D1P + (D1r * 0.236);
   D1TargetBUY1 = DoubleToStr(D1TB1,Digits);
   double D1TS1 = D1P - (D1r * 0.236);
   D1TargetSELL1 = DoubleToStr(D1TS1,Digits);
   double D1TB2 = D1P + (D1r * 0.5);
   D1TargetBUY2 = DoubleToStr(D1TB2,Digits);
   double D1TS2 = D1P - (D1r * 0.5);
   D1TargetSELL2 = DoubleToStr(D1TS2,Digits);
   double D1TB3 = D1P + (D1r * 0.764);
   D1TargetBUY3 = DoubleToStr(D1TB3,Digits);
   double D1TS3 = D1P - (D1r * 0.764);
   D1TargetSELL3 = DoubleToStr(D1TS3,Digits);
   
     if (D1OPEN > D1Pivot) {color_d1op=Lime;}
     if (D1OPEN < D1Pivot) {color_d1op=Red;}
     if (D1OPEN == D1Pivot) {color_d1op=Gray;}
     if (D1Mid > D1Pivot) {color_d1mid=Lime; D1TProfit2=D1TargetBUY1;}
     if (D1Mid < D1Pivot) {color_d1mid=Red; D1TProfit2=D1TargetSELL1;}
     if (D1Mid == D1Pivot) {color_d1mid=Gray; D1TProfit2="---------";}

   //MarketD1
     if (Teks > D1OPEN) D1_Trend = "p";
     if (Teks > D1OPEN) D1TProfit1 = D1TargetBUY1;
     if (Teks < D1Pivot) D1_Trend = "q";
     if (Teks < D1Pivot) D1TProfit1 = D1TargetSELL1;
     if ((Teks <= D1OPEN) && (Teks >= D1Pivot)) D1_Trend = "n";
     if ((Teks <= D1OPEN) && (Teks >= D1Pivot)) D1TProfit1 = "---------";
     if ((Teks <= D1OPEN) && (Teks >= D1Pivot)) {color_MTD1 = Gray; color_BuyTPD1 = Gray; color_SellTPD1 = Gray;}
     if (Teks > D1OPEN) {color_MTD1 = Lime; color_BuyTPD1 = Lime; color_SellTPD1 = Gray;}
     if (Teks < D1Pivot) {color_MTD1 = Red; color_BuyTPD1 = Gray; color_SellTPD1 = Red;}

     if ((Teks > D1OPEN) && (MA1_D1 > MA2_D1) && (MA1_D1 < MA5_D1)) {D1_Today = "p"; clr_TdD1 = Lime;}
     if ((Teks < D1OPEN) && (MA1_D1 < MA2_D1) && (MA1_D1 > MA5_D1)) {D1_Today = "q"; clr_TdD1 = Red;}
//+------------------------------------------------------------------+

товарищи! помогите сделать пожалуйста.
 

leba

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

Вложения

ALEX-BAX

Активный участник
Уважаемые програмисты !!! Нужно изменить функцию в советнике , ордер КМ выставляется 4 по счёту ( это параметр задаётся во внешних переменных ) если цена ушла от предыдущего открытого ордера на расстояние DistanceKMsell или DistanceKMbuy пунктов , а нужно что бы он выставлялся не зависимо от очерёдности даже 2 если цена ушла от предыдущего ордега на DistanceKMsell или DistanceKMbuy пунктов ???
 

Вложения

inforex

Прохожий
Здравствуйте, уважаемые программисты.
Есть советник, но в нем нет функции увеличения лота при увеличении средств (эквити).
В общем, нужно внедрить в сову манименеджмент: при увеличении средств, НЕ БАЛАНСА, А ИМЕННО СРЕДСТВ, на 1000$ лоты (их вообще 8, но в торговле участвуют первые три) должны увеличиться на 0.05 (первый и второй), а третий на 0.1. Другими словами, если lot_size_1 и lot_size_2 изначально равны 0.05, а lot_size_3 равен 0.1, то при увеличении средств на 1000$ значения должны стать 0.1, 0.1 и 0.2 соответственно и т.д.
Вносить изменения в принцип открытия и закрытия сделок не нужно, только внедрить систему увеличения лотов.
Кто может помочь? Заинтересовавшимся советника вышлю на почту
 
Статус
Закрыто для дальнейших ответов.

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

Верх