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

MQL4 지표 다른 C++

명시

Здравствуйте, нужно сделать, индикатор для терминала 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
무료
비슷한 주문
Есть советник, нужно только поменять название,описание, сделать привязку к счету, чтобы была защита,чтобы мы могли клиенту давать советник, и была привязка к 1-3 счетам только. Если возможно , сделать привязку к времени, чтобы была привязка лицензии еще на время, например на месяц, 2-3 по ценам договоримся отдельно
Здравствуйте, ищу исполнителя, который поможет реализовать следующее: Нужно реализовать выдачу лицензионных ключей для программного обеспечения через оплату подписки в телеграмм боте. Как это должно выглядеть: Пользователь заходит в телеграмм бот, выбирает вариант подписки, после чего его перебрасывает на сайт 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 일