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

指定

Здравствуйте, нужно сделать, индикатор для терминала 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);
  }
//+------------------------


応答済み

1
開発者 1
評価
(548)
プロジェクト
825
73%
仲裁
15
53% / 13%
期限切れ
193
23%
仕事中
2
開発者 2
評価
(20)
プロジェクト
43
30%
仲裁
6
0% / 50%
期限切れ
17
40%
3
開発者 3
評価
(4)
プロジェクト
5
40%
仲裁
1
0% / 100%
期限切れ
0
類似した注文
Здравствуйте, ищу исполнителя, который поможет реализовать следующее: Нужно реализовать выдачу лицензионных ключей для программного обеспечения через оплату подписки в телеграмм боте. Как это должно выглядеть: Пользователь заходит в телеграмм бот, выбирает вариант подписки, после чего его перебрасывает на сайт 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) Необходимо найти решение, чтобы индикатор выдавал уведомление на одну свечу раньше оригинала индикатора на всех таймфреймах без опоздание по времени в самом начале открытие свечи, и чтобы не перерисовывался индикатор как у оригинала

プロジェクト情報

予算
30+ USD
開発者用
27 USD
締め切り
最低 3 最高 10 日