перекодить из метастока в МТ

 
Кто может взяться переделать следующий код в формате Метастока под МТ? x:=Input("X",0,10,0.04); y:=Input("Y",0,10,0.9); d:=Input("D",0,10, 0.1); a:=If(Cum(1)=1,C,PREV*(1-x)+C*x); b:=If(Cum(1)=1,C,PREV*(1-y)+C*y); a:=a*(d-x); b:=b*(d-y); top:=b-a; cl:=top/(x-y); cl; Может кому- нибудь тоже понадобится такая штука для собственных разработок...
 

Могу взяться.

 
Был бы очень признателен! Поделился бы кое- какими мыслями ;)
 
a:=If(Cum(1)=1,C,PREV*(1-x)+C*x); -- это скользящая средняя EMA

Ниже код вычислений, проверки и оформление индикатора сами напишите ..
   ...........
extern double x = 0.04;
extern double y = 0.9;
extern double d = 0.1;
 
double Buf[];
 
int Lx = 2./x - 1.;
int Ly = 2./y - 1.;
 
   .............
 
for (int i = .....)
{
   double a = iMA(NULL,0,Lx,0,MODE_EMA,PRICE_CLOSE,i)*(d - x);
   double b = iMA(NULL,0,Ly,0,MODE_EMA,PRICE_CLOSE,i)*(d - y);
   double top = b - a;
   double cl  = top/(x - y);
   Buf[i] = cl;
}
 
Ндаа! Написал бы сам, так ведь языка не знаю... Метасток для меня- предел возможностей. Да и с ним-то нелады порой...:(
 
nikkola:
Ндаа! Написал бы сам, так ведь языка не знаю... Метасток для меня- предел возможностей. Да и с ним-то нелады порой...:(

Примерно так
//+------------------------------------------------------------------+
//|                                                     @nikkola.mq4 |
//|                                   Copyright © 2006, Yuri Makarov |
//|                                       http://www.may.nnov.ru/mak |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Yuri Makarov"
#property link      "http://www.may.nnov.ru/mak"
 
#property indicator_separate_window
#property indicator_color1 Blue
 
extern double x = 0.04;
extern double y = 0.9;
extern double d = 0.1;
 
double Buf[];
 
int Lx = 1;
int Ly = 1;
 
int init()
{
   if (x <= 0 || x >= 1) Alert("x <= 0 || x >= 1");
   if (y <= 0 || y >= 1) Alert("y <= 0 || y >= 1");
   if (x == y) Alert("x == y");
   Lx = 2./x - 1.;
   Ly = 2./y - 1.;
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Buf);
}
 
int deinit(){}
 
int start()
{
   int CountedBars=IndicatorCounted();
   int limit = Bars - CountedBars - 1;
   for (int i = limit; i >= 0; i --)
   {
      double a = iMA(NULL,0,Lx,0,MODE_EMA,PRICE_CLOSE,i)*(d - x);
      double b = iMA(NULL,0,Ly,0,MODE_EMA,PRICE_CLOSE,i)*(d - y);
      double top = b - a;
      double cl  = top/(x - y);
      Buf[i] = cl;
   }
}
Причина обращения: