Помогите с индикатором для Бинарного Опциона

 

Добрый день, уважаемые специалисты.

Помогите решить 2 простые задачки. Наверняка, Вам, они очень просты, но мне, как человеку далекому от программирования, не по зубам. 

1)

В обычном стандартном индикаторе Alligator выводить на экран объект (к примеру прямоугольник):

- зеленый, если текущая цена выше зеленой линии, зеленая выше красной, красная выше синией 

- красный, если текущая цена ниже зеленой линии, зеленая ниже красной, красная ниже синией 

- серый, если эти условия не соблюдаются. 

Ну, т.е. сигналы на опцион вверх или вниз. (нарисовал сплошным зеленым прямоугольником). 

Вот код Аллигатора если нет:

 

//+------------------------------------------------------------------+
//|                                                    Alligator.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright   "2005-2014, MetaQuotes Software Corp."
#property link        "http://www.mql4.com"
#property description "Bill Williams' Aligator"
#property strict

//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1  Blue
#property indicator_color2  Red
#property indicator_color3  Lime
//---- input parameters
input int InpJawsPeriod=13; // Jaws Period
input int InpJawsShift=8;   // Jaws Shift
input int InpTeethPeriod=8; // Teeth Period
input int InpTeethShift=5;  // Teeth Shift
input int InpLipsPeriod=5;  // Lips Period
input int InpLipsShift=3;   // Lips Shift
//---- indicator buffers
double ExtBlueBuffer[];
double ExtRedBuffer[];
double ExtLimeBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
  {
   IndicatorDigits(Digits);
//---- line shifts when drawing
   SetIndexShift(0,InpJawsShift);
   SetIndexShift(1,InpTeethShift);
   SetIndexShift(2,InpLipsShift);
//---- first positions skipped when drawing
   SetIndexDrawBegin(0,InpJawsShift+InpJawsPeriod);
   SetIndexDrawBegin(1,InpTeethShift+InpTeethPeriod);
   SetIndexDrawBegin(2,InpLipsShift+InpLipsPeriod);
//---- 3 indicator buffers mapping
   SetIndexBuffer(0,ExtBlueBuffer);
   SetIndexBuffer(1,ExtRedBuffer);
   SetIndexBuffer(2,ExtLimeBuffer);
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE);
//---- index labels
   SetIndexLabel(0,"Gator Jaws");
   SetIndexLabel(1,"Gator Teeth");
   SetIndexLabel(2,"Gator Lips");
  }
//+------------------------------------------------------------------+
//| Bill Williams' Alligator                                         |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int limit=rates_total-prev_calculated;
//---- main loop
   for(int i=0; i<limit; i++)
     {
      //---- ma_shift set to 0 because SetIndexShift called abowe
      ExtBlueBuffer[i]=iMA(NULL,0,InpJawsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
      ExtRedBuffer[i]=iMA(NULL,0,InpTeethPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
      ExtLimeBuffer[i]=iMA(NULL,0,InpLipsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
     }
//---- done
   return(rates_total);
  }
//+------------------------------------------------------------------+

 

2)

Ниже выводить на экран объект (к примеру прямоугольник) изменения баланса после сделки:

- зеленый, если баланс увеличился,

- красный, если уменьшился,

- серый, если не изменился. 

Тут нюанс вот в чем. В бинарных опционах, по всяком случае у этого брокера, схема такая - ты ставишь лот, он уходит с нулевым изменением баланса, а затем, по истечении времени экспирации, приходит изменение баланса. Если ставка не сыграла, то баланс уменьшается на сумму ставки. Если ставка сыграла, то на баланс приходит только процент выйгрыша (выделил зеленой рамкой). Если цена не изменилась, то НИЧЕГО не приходит (выделил серой рамкой).

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

 

 

 

 Господа, будьте добры, прям кодом, если можно. А то я очень не силен в кодах.

Делаю я это для автоматизации торговли бинарными опционами. 

Большое спасибо! 

 
maximsedov:

Помогите решить 2 простые задачки. Наверняка, Вам, они очень просты, но мне, как человеку далекому от программирования, не по зубам.

Регулярно удивляюсь - как люди определяют что задачки очень просты, если сами от решения очень далеки ?? Кака-то абсолютно небулева логика

---

Здесь есть сервис платной автоматизации, если вы не обратили внимание - https://www.mql5.com/ru/job

---

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

"Этот брокер" в коммент закрытого ордера пишет нужную информацию. Напр: DOWN/WIN/9.75. С балансом не стоит заморачиваться - у вас же может быть несколько сделок одновременно с разным исходом
Фриланс-сервис на MQL5.com
Фриланс-сервис на MQL5.com
  • www.mql5.com
Заказы на разработку программ для трейдинга
 
Alexander Puzanov:

Регулярно удивляюсь - как люди определяют что задачки очень просты, если сами от решения очень далеки ?? Кака-то абсолютно небулева логика

---

Здесь есть сервис платной автоматизации, если вы не обратили внимание - https://www.mql5.com/ru/job

---

"Этот брокер" в коммент закрытого ордера пишет нужную информацию. Напр: DOWN/WIN/9.75. С балансом не стоит заморачиваться - у вас же может быть несколько сделок одновременно с разным исходом

Александр, ну мне так показалось, что это не сложно.

 

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

По вопросу темы есть что-то конкретное?

 
maximsedov:

По вопросу темы есть что-то конкретное?

В смысле написать код для индикатора и автоматизации торговли? Извините, нет, могу только полезные советы раздавать - они отнимают на 3 порядка меньше времени
 
Alexander Puzanov:
В смысле написать код для индикатора и автоматизации торговли? Извините, нет, могу только полезные советы раздавать - они отнимают на 3 порядка меньше времени
Хотя бы по первому вопросу. Условие проверки уровней и рисования сигнала (хотя бы стрелки "ВВЕРХ" или "ВНИЗ")