Скопировать индикатор написанный на mql4 в Ninjatrader.

MQL4 Indikatoren Sonstiges C++

Spezifikation

Здравствуйте, нужно сделать, индикатор для терминала Ninjatrader, такой как приложен mq4.

#property strict
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   5
#property indicator_minimum 0
#property indicator_maximum 100

input int MAPeriod=200;//Price chanel period
input ENUM_MA_METHOD MAMethod=MODE_EMA;//MA Method
input ENUM_APPLIED_PRICE ApPrice=PRICE_CLOSE;//Applied price
input color clrLine=clrLime;//Color line

double ma[],up[],dn[],matrend[],line[];
string realVal="";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
    realVal=_Symbol;
   IndicatorShortName("P_C_O");
   SetIndexBuffer(0,line);
   SetIndexBuffer(1,ma);
   SetIndexBuffer(2,up);
   SetIndexBuffer(3,dn);
   SetIndexBuffer(4,matrend);

   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,clrLine);
   SetIndexStyle(1,DRAW_NONE);
   SetIndexStyle(2,DRAW_NONE);
   SetIndexStyle(3,DRAW_NONE);
   SetIndexStyle(4,DRAW_NONE);

   SetLevelValue(0,20);
   SetLevelValue(1,80);
   SetLevelValue(2,50);

   SetIndexLabel(0,realVal+" Price");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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;
   if(rates_total<=1){ return(0); }
//--- last counted bar will be recounted
   limit=rates_total-prev_calculated;
   if(prev_calculated>0)
      limit=limit+2;

   for(int x=limit-1; x>=0; x--)
     {
      ma[x]=EMPTY_VALUE; up[x]=EMPTY_VALUE; dn[x]=EMPTY_VALUE; matrend[x]=EMPTY_VALUE;  line[x]=EMPTY_VALUE;
      double mal=iMA(realVal,_Period,MAPeriod,0,MAMethod,ApPrice,x);
      double ma1=iMA(realVal,_Period,1,0,MAMethod,ApPrice,x);

      mal=NormalizeDouble(mal,_Digits);
      ma[x]= mal;
      if(x>=rates_total-1)
        {
         matrend[x]=mal;
           }else{
         // not first
         int lwst1 = iLowest(realVal, _Period, MODE_LOW, MAPeriod, x);
         int hgst1 = iHighest(realVal, _Period, MODE_HIGH, MAPeriod, x);

         if(iHigh(realVal,_Period,hgst1)<iHigh(realVal,_Period,hgst1+1))
           {
            up[x]=up[x+1]; dn[x]=dn[x+1];
           }
         if(iLow(realVal,_Period,lwst1)>iLow(realVal,_Period,lwst1+1))
           {
            dn[x]=dn[x+1]; up[x]=up[x+1];
           }

         if(up[x]==EMPTY_VALUE)
           {
            up[x]=iHigh(realVal,_Period,hgst1);
           }
         if(dn[x]==EMPTY_VALUE)
           {
            dn[x]=iLow(realVal,_Period,lwst1);
           }
         // change up and dn 
         if(up[x]!=up[x+1] || dn[x]!=dn[x+1])
           {
            matrend[x]=mal;
              }else{
            matrend[x]=matrend[x+1];
           }
         line[x]=NormalizeDouble(100-((up[x]-ma1)*100/(up[x]-dn[x])),2);

        }

     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------


Bewerbungen

1
Entwickler 1
Bewertung
(548)
Projekte
825
73%
Schlichtung
15
53% / 13%
Frist nicht eingehalten
193
23%
Arbeitet
2
Entwickler 2
Bewertung
(20)
Projekte
43
30%
Schlichtung
6
0% / 50%
Frist nicht eingehalten
17
40%
Frei
3
Entwickler 3
Bewertung
(4)
Projekte
5
40%
Schlichtung
1
0% / 100%
Frist nicht eingehalten
0
Frei
Ähnliche Aufträge
Здравствуйте, ищу исполнителя, который поможет реализовать следующее: Нужно реализовать выдачу лицензионных ключей для программного обеспечения через оплату подписки в телеграмм боте. Как это должно выглядеть: Пользователь заходит в телеграмм бот, выбирает вариант подписки, после чего его перебрасывает на сайт Cryptomus, где пользователь производит оплату, после того, как оплата произведена, генератор ключей
Приобрету готовый продукт, стратегию на pine TradingView или уже переведенный на python , который имеет 1.5-2+ профит фактор. Желательно чтобы торговля осуществлялась и в длинную, и в короткую. Робот обязательно должен контролировать риски, соответственно иметь SL ( не динамический!) на каждую сделку и не иметь огромных просадок (не в эквити, ни на чистом балансе). Просадки MDD выше 30% при оптимальных настройках
1. Понимание экспоненциальной и линейной функций: - Экспоненциальная функция имеет вид: y = a * b^x, где a - начальное значение, b - основание экспоненты. - Линейная функция имеет вид: y = mx + b, где m - коэффициент наклона, b - свободный член. 2. Определение целевых значений: - Необходимо определить, к каким значениям на линейном графике должны соответствовать точки на экспоненциальном графике. 3. Решение
1) Необходимо найти решение, чтобы индикатор выдавал уведомление на одну свечу раньше оригинала индикатора на всех таймфреймах без опоздание по времени в самом начале открытие свечи, и чтобы не перерисовывался индикатор как у оригинала

Projektdetails

Budget
30+ USD
Für die Entwickler
27 USD
Ausführungsfristen
von 3 bis 10 Tag(e)