Potrzebuje do swojego systemu wskaznik Tema w takiej postaci TEMA(close,period)
Nie wiem co zle robie ale nie dzialała tzn zmienna Var1 ktora powinna miec wartosc funkcji Tema(close,4) to jest pusta, Zle cos przekazuje ?
Robie to tak:
Kod: Zaznacz cały
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link "http://www.metaquotes.ru/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 DarkBlue
#property indicator_width1 2
//---- input parameters
extern int EMA_period=4;
//---- buffers
string txt;
double TemaBuffer[];
double Ema[];
double EmaOfEma[];
double EmaOfEmaOfEma[];
double Var1;
extern int Apply_To_Price=1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Var1);
SetIndexBuffer(1,TemaBuffer);
SetIndexBuffer(2,Ema);
SetIndexBuffer(3,EmaOfEma);
SetIndexBuffer(4,EmaOfEmaOfEma);
IndicatorShortName("TEMA("+EMA_period+")");
switch(Apply_To_Price)
{
case 1:
{txt="Open";break;}
case 2:
{txt="High";break;}
case 3:
{txt="Low"; break;}
case 4:
{txt="Median"; break;}
case 5:
{txt="Typical"; break;}
case 6:
{txt="WghtdClose"; break;}
default:
{txt="Close";}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//---- ===========PRZEKZUJE DO VAR1 FUNKCJE TEMA====
Var1 = Tema(Apply_To_Price,4);
return(0);
}
//===================================================
// ===================================================
//======================FUNKCJA TEMA=================
double Tema(int Cena, int cykl)
{
int i,limit,limit2,limit3,counted_bars=IndicatorCounted();
//----
if (counted_bars==0)
{
limit=Bars-1;
limit2=limit-EMA_period;
limit3=limit2-EMA_period;
}
if (counted_bars>0)
{
limit=Bars-counted_bars-1;
limit2=limit;
limit3=limit2;
}
for (i=limit;i>=0;i--) Ema[i]=iMA(NULL,0,cykl,0,MODE_EMA,Cena,i);
for (i=limit2;i>=0;i--) EmaOfEma[i]=iMAOnArray(Ema,0,cykl,0,MODE_EMA,i);
for (i=limit3;i>=0;i--) EmaOfEmaOfEma[i]=iMAOnArray(EmaOfEma,0,cykl,0,MODE_EMA,i);
for (i=limit3;i>=0;i--) TemaBuffer[i]=3*Ema[i]-3*EmaOfEma[i]+EmaOfEmaOfEma[i];
return(TemaBuffer);
}
//+------------------------------------------------------------------+
Dodano po 1 godzinach 43 minutach:
Ogolnie to problem jedyny jaki jest to przy wywaołaniu tutaj:
Var1 = Tema(Apply_To_Price,4);
w Var1 nie przypisuje zadnych wartosci ...
Pytanie jak wyciagnac te wartosci z tej funkcji ?