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

Здравствуйте--
Помогите пожалуйста реализовать идею для удобства. Если это возможно конечно
Суть:-- Имеем кнопки с левой стороны чарта с порядковыми номерами шаблонов. При нажатии на кнопку на чарт загружается нужный шаблон.
С правой стороны кнопки с буквами S №1 и т.д. Возможно ли и не затруднит ли людей знающих сделать так чтоб при нажатии на кнопку S №1 автоматически без вопросов сохранялся шаблон №1 и так далее по кнопкам.
 

Вложения

Уважаемые специалисты! Хотелось бы узнать Ваше мнение. Насколько реально автоматизировать мою идею на прилагаемом скриншоте. Идея для парного трейдинга. Индикаторы OverLayChart и Bollindger Bands с отклонением 3. Цена пробивает(либо касается) противоположные крайние линии BB коррелирующих пар. Это момент для входа в позицию.
 

Вложения

  • 0.png
    0.png
    19,7 КБ · Просмотры: 230
Всем привет. Можете к этому индикатору прикрутить аллерты со стрелками к данным полосам . Так что-бы цена коснувшись одной из полос сигналила на возможный разворот (что-бы аллерт был 1 раз на баре при касании) + с возможностью отключения аллертов от каждой полосы (а то при сильном тренде достанет сигналами)

prntscr.com/j8859d
 

Вложения

Последнее редактирование модератором:
Всем привет. Можете к этому индикатору прикрутить аллерты со стрелками к данным полосам . Так что-бы цена коснувшись одной из полос сигналила на возможный разворот (что-бы аллерт был 1 раз на баре при касании) + с возможностью отключения аллертов от каждой полосы (а то при сильном тренде достанет сигналами)

prntscr.com/j8859d
Нужен исходник в формате mq4. Если у вас его нет можно дописать надстройку - второй индикатор который по данным этого индикатора будет рисовать тоже самое но с дополнением которое вы описали. В этом случае нужно будет ставить на график только надстройку, при этом если в терминале не будет первого индикатора она не будет работать.
 
Уважаемые специалисты! Хотелось бы узнать Ваше мнение. Насколько реально автоматизировать мою идею на прилагаемом скриншоте. Идея для парного трейдинга. Индикаторы OverLayChart и Bollindger Bands с отклонением 3. Цена пробивает(либо касается) противоположные крайние линии BB коррелирующих пар. Это момент для входа в позицию.

Вполне себе автоматизируется. В МТ4 тестировать это стандартным способом не получится. Можно сделать виртуальное тестирование при котором отчет будет в виде файла. Либо же все сделать на базе МТ5.
 
Всем привет. Такой вопрос - как посчитать количество баров с момента открытия ордера до текущего момента.
 
Исходник есть в следующем посту #15108 и #15109 . Администратор проверяет , вот и выкладывается не сразу
 
Всем привет. Такой вопрос - как посчитать количество баров с момента открытия ордера до текущего момента.

1) нужно найти/узнать время открытия ордера.
2) воспользоваться стандартной ф-цией iBarShift(), которая вернет значение бара на котором была открыта позиции, что будет равносильно количество баров с момента открытия ордера до текущего момента.
 
Уважаемые специалисты!Помогите пожалуйста сделать буфер обмена по цветам индикатору.
 

Вложения

Уважаемые специалисты!Помогите пожалуйста сделать буфер обмена по цветам индикатору.

там все проще. вам нужен 1 и 3 буфер.
если на 1 !=EMPTY_VALUE && 3 ==EMPTY_VALUE то тренд бай, цвет зеленый
если на 1 ==EMPTY_VALUE && 3 !=EMPTY_VALUE то тренд селл, цвет
красный.

надо проверять оба так как в переходные моменты они оба имеют значения, но еще не факт что тренд сменится.
 
Подскажите ,пожалуйста, как скрины закрытых ордеров по папкам разложить ?
string ord="",LP="",FL="",DATA="";
// ПАРА _Symbol

// ПАПКА МЕСЯЦ
DATA = TimeToStr(TIME_DATE );
// DATA ={"ЯНВАРЬ ","ФЕВРАЛЬ ","МАРТ ","АПРЕЛЬ ","МАЙ ","ИЮНЬ ","ИЮЛЬ ",
// "АВГУСТ ","СЕНТЯБРЬ ","ОКТЯБРЬ ","НОЯБРЬ ","ДЕКАБРЬ " };

// ПАПКА ПРОФИТ ЛОСС
if(OrderProfit()<0)LP="LOSS"; else LP="PROFIT";

// ПАПКА БАЙ ИЛИ СЕЛ
if(OrderType()==0)FL="BUY"; if(OrderType()==1)FL="SELL";

// ОПИСАНИЕ СКРИНА
if(OrderType()==0)ord="BUY"; if(OrderType()==1)ord="SELL";
string name1= ord+" # "+(string)OrderTicket()+" "
+TimeToStr(OrderCloseTime(),TIME_MINUTES )+".gif";

StringReplace(DATA,":",".");
StringReplace(name1,":",".");
WindowScreenShot(_Symbol+"/"+DATA+"/"+LP+" "+FL+"" +name1,Width,Hight);
P.S.Куралесю как могу а оно не куралесится :)
 

Вложения

  • СКРИНОТЕНЬ.jpg
    СКРИНОТЕНЬ.jpg
    56,8 КБ · Просмотры: 52
Подскажите ,пожалуйста, как скрины закрытых ордеров по папкам разложить ?
string ord="",LP="",FL="",DATA="";
// ПАРА _Symbol

// ПАПКА МЕСЯЦ
DATA = TimeToStr(TIME_DATE );
// DATA ={"ЯНВАРЬ ","ФЕВРАЛЬ ","МАРТ ","АПРЕЛЬ ","МАЙ ","ИЮНЬ ","ИЮЛЬ ",
// "АВГУСТ ","СЕНТЯБРЬ ","ОКТЯБРЬ ","НОЯБРЬ ","ДЕКАБРЬ " };

// ПАПКА ПРОФИТ ЛОСС
if(OrderProfit()<0)LP="LOSS"; else LP="PROFIT";

// ПАПКА БАЙ ИЛИ СЕЛ
if(OrderType()==0)FL="BUY"; if(OrderType()==1)FL="SELL";

// ОПИСАНИЕ СКРИНА
if(OrderType()==0)ord="BUY"; if(OrderType()==1)ord="SELL";
string name1= ord+" # "+(string)OrderTicket()+" "
+TimeToStr(OrderCloseTime(),TIME_MINUTES )+".gif";

StringReplace(DATA,":",".");
StringReplace(name1,":",".");
WindowScreenShot(_Symbol+"/"+DATA+"/"+LP+" "+FL+"" +name1,Width,Hight);
P.S.Куралесю как могу а оно не куралесится :)

Держи, для создания скрина нужно вызвать ф-цию ScreenOrderTicket(нужный Ticket); и передать её нужный тикет ордера в момент закрытия, по истории нет поиска, но и тебе нужны только папки...
Вся остальная инфа по ордеру будет определена в этой ф-ции. Вторая ф-ция нужна для преобразования даты.
PHP:
//+------------------------------------------------------------------+
//| Screen Order Ticket                                              |
//+------------------------------------------------------------------+
void ScreenOrderTicket(int oTicket)
  {
    string ПапкаСимвол   = "";
    string ПапкаМесяц    = "";
    string ПапкаПрофЛось = "";
    string ПапкаТипОрдер = "";
    
    int      oType   = -1;
    double   oProfit = 0;
    datetime oCTime  = -1;
    string   oSymbol = "";
    
    if(OrderSelect(oTicket,SELECT_BY_TICKET,MODE_HISTORY))
     {
       oSymbol = OrderSymbol();
       oType   = OrderType();
       oProfit = OrderProfit();
       oCTime  = OrderCloseTime();
     }
    
    if(oSymbol!="") ПапкаСимвол = oSymbol;
    
    if(oCTime !=-1)
     {
       switch(TimeMonth(oCTime))
        {
          case 1:   ПапкаМесяц  = "Январь";   break;
          case 2:   ПапкаМесяц  = "Февраль";  break;
          case 3:   ПапкаМесяц  = "Март";     break;
          case 4:   ПапкаМесяц  = "Апрель";   break;
          case 5:   ПапкаМесяц  = "Май";      break;
          case 6:   ПапкаМесяц  = "Июнь";     break;
          case 7:   ПапкаМесяц  = "Июль";     break;
          case 8:   ПапкаМесяц  = "Август";   break;
          case 9:   ПапкаМесяц  = "Сентябрь"; break;
          case 10:  ПапкаМесяц  = "Октябрь";  break;
          case 11:  ПапкаМесяц  = "Ноябрь";   break;
          default:  ПапкаМесяц  = "Декабрь";  break;
        }  
     }
     
    if(oProfit>=0)     ПапкаПрофЛось = "Профит"; else ПапкаПрофЛось = "Лось";
    if(oType==OP_BUY)  ПапкаТипОрдер = "BUY";
    if(oType==OP_SELL) ПапкаТипОрдер = "SELL";
    
    string data = StrData(TimeToStr(oCTime));
    string FileName = StringConcatenate(oSymbol," - ",oTicket," - ",data);
    string PathFile = oSymbol+"\\"+ПапкаМесяц+"\\"+ПапкаПрофЛось+"\\"+ПапкаТипОрдер+"\\"+FileName;
    
    WindowScreenShot(PathFile+".gif",1366,768);
  }
//+------------------------------------------------------------------+
//| Str Data                                                         |
//+------------------------------------------------------------------+
string StrData(string dt)
  {
    string outdt  = "";
    string tempdt = "";
    
    for(int i=0; i<StringLen(dt); i++)
     {
       tempdt = StringSubstr(dt,i,StringLen(":"));
       if(tempdt==":") outdt = outdt+"."; else outdt = outdt+StringSubstr(dt,i,1);
     }
    return(outdt);
  }
//+------------------------------------------------------------------+
 
Держи, для создания скрина нужно вызвать ф-цию ScreenOrderTicket(нужный Ticket);
Применил к своей функции void--- критических ошибок нет а там будем посмотреть:)

2CGUTLu.png
 
Всем привет. Можете к этому индикатору прикрутить аллерты со стрелками к данным полосам . Так что-бы цена коснувшись одной из полос сигналила на возможный разворот (что-бы аллерт был 1 раз на баре при касании) + с возможностью отключения аллертов от каждой полосы (а то при сильном тренде достанет сигналами)

prntscr.com/j8859d

готово, настройки отображения стрелок и сигналов по ним в самом конце.
стрелки и сигналы сгрупированы по линиям.
High - синяя и красная
Mid (Middle) - голубая и томатная
Low - серебристые.
Посмотреть вложение TMA with Distances S&N 1.02_signal.mq4
 
Просьба осуществить доработку индикатора NoLoss v5.1
добавив туда:

1. Показ прибыли по всем Buy и Sell ордерам в п. по 5-знаку или 4х-знаку с
десятой после запятой - доп. к прибыли в $ к-я есть там.
Sell 2 -20.00$ -10.0р 0.20L
Buy 5 60.00$ 12.0р 0.50L
2. Показ в строке с Margin Call:
Margin Call 148.933 3200п. +40.0$ +80.53$(прибыль по всему счету из терминала, +40.0 - прибыль по инструменту )

3. Учет суммы спред+комиссия+своп в расчёте средней цены для Buy и Sell ордеров. (строки кода с р-том средних цен)
4. Задание в параметрах предельной просадки по эквити(средствам) в % (параметр) и вывод в окно линии уровня этой просадки
+ алерт при достижении средств этого уровня в т.ч. с отправкой по е-майл (да/нет).
5. Показ линии Margin Call на графике с выделением цветом зоны графика "за чертой Margin Call".

Будет для всех ТС отличный, полезный, более полный индикатор контроля за ордерами и счётом!

N7Lfc8gS.png
 

Вложения

Всем привет. Ребят кто хорошо разбирается в отображении объектов, посмотрите инди плиз. Не фурычит автообновление а в мтф вообще беда. Сам по себе инди очень хорошо считает уровни. Авторефраш ставить не хочется, спасибо.
 

Вложения

Посмотрели (2204) Посмотреть

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

Назад
Верх