Nasıl kodlanır? - sayfa 282

 
gilben:
Fiyat dizisinde gösterge algoritmik uygulamak için bir çözüm arıyorum.

MQL4'te bazı göstergeler bu işleve sahiptir, örneğin: iCCIOnArray, iBandsOnArray...

Ancak ADX gibi göstergelerin böyle bir işlevi yoktur.

Gösterge hesaplamasını önceden tanımlanmış dizi üzerinden nasıl uygulayabileceğime dair bir fikri olan var mı (tırnak sunucusundan değil)?

[lang=pl]Verilen göstergenin nasıl hesaplandığını biliyorsanız her şeyi yapabilirsiniz :)

Lütfen tam olarak neye ihtiyacınız olduğunu daha net bir şekilde açıklayın

Şerefe,

Grzesiek[/lang]

 

...

ADX, gerçek aralık (Max(High,PreviousClose)-Min(Low,PreviousClose) denen şeyi kullanır ve bu, ADX hesaplamasının temelidir.

Yüksek, Düşük ve Kapanış değerleri istendiği için bir diziye uygulanamaz, Genel olarak bir fiyat gerekli olduğunu görüyorsanız, o zaman indikatörün bir diziye uygulanabilir olması gerekir. Fiyat parametresi yoksa bir diziye uygulanamayacağı neredeyse kesindir (ilk etapta göstergenin fiyatlar üzerinde çalıştığını varsayarsak)

 
g.pociejewski:
[lang=pl]Verilen göstergenin nasıl hesaplandığını biliyorsanız her şeyi yapabilirsiniz :)

Lütfen tam olarak neye ihtiyacınız olduğunu daha net bir şekilde açıklayın

Şerefe,

Grzesiek[/lang]

Teşekkürler Grzesiek.

İyi bir çözüm arıyordum. sonunda, en iyi çözüm, indi kodunu uzman koduna gömmektir.

neyse biri bana başka bir yol göstermezse bu şekilde uygulayacağım.

 

Kaynak dosyanız var mı? *.ex4 dosyası derlenmiştir, bu nedenle kaynak koduna erişiminiz yoktur.

Saygılarımızla

 

rica etmek

mladen:
yıldız821

Bunu bir deneyin

________________________

Bazı açıklamalar : Gönderdiklerini kullanmadım ama bunları yaptım (gönderinize ekli göstergede benim adım var, ancak bu sürüm bana ait değil, ancak o göstergeyi kullanmamamın tek nedeni bu değil). ...

Saygılarımızla

Mladen

merhaba Mladen

stc EA'yı bir HMA color nrp-indi ve High-low trend indi için uyarlamak mümkün mü?...

sahte bir kod yazdım (* hiç kodlayamıyorum ... *):

******************************************************* **********

hariciler:

Çok güzelsin#

HMA dönemi

???.

................................

tekrarlamak:

zikzak nokta rengini alın (çubuk yakın);

HMA trend rengini alın (çubuk yakın);

-------------------------------------------------- --------------

// açık satış

son zikzak nokta = mavi && HMA trendi = kırmızıysa -> SATIŞ biletini açın (HMA trend rengi başına yalnızca bir kez)

açamadıysa sat-> 3 kez tekrar dene

başarı uyarısı ve e-postası yoksa: sembol, TF, zaman için satış açılamadı;

başka

// satın almayı aç

son zikzak nokta = kırmızı && HMA trendi = mavi ise -> SATIN AL biletini açın (HMA trend rengi başına yalnızca bir kez)

açamadıysa satın al-> 3 kez tekrar dene

başarı uyarısı ve e-postası yoksa: sembol, TF, zaman için satın alma açılamadı;

-------------------------------------------------- -----------------

HMA trendi ( kırmızı ) maviye dönerse -> satışı kapatın, 10 saniye bekleyin. ;

HMA trendi ( mavi ) kırmızıya dönerse -> satın almayı kapatın, 10 saniye bekleyin;

-------------------------------------------------- -----------------

Cuma günü saat 12:00'de (GMT) tüm işlemleri kapat...

******************************************************* **************

Bazı kayıplar olacağını biliyorum ama bu beni rahatsız etmiyor...

SL istemiyorum...

Saygılarımızla

cado

hma_color_nrp.ex4 high_-_low_trend.mq4

Dosyalar:
 

ATR + MA ve Bant Genişliği + MA

[lang=it]Merhaba, ayrı bir pencerede atr yazan ve bunun üzerine hareketli ortalama hesaplayan ve bant genişliği için aynı şeyi yapan özel bir göstergeye ihtiyacım var. Kodu mql4'te yaptım ve MA'yı hesaplamak için IMAONARRAY'i kullanıyorum, ancak gösterge çalışmıyor .. biri bana yardım edebilir mi???

Bu teo kodlarından biridir..

teşekkürler

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

//---- input parameters

extern int AtrPeriod=14;

//---- buffers

double AtrBuffer[];

double TempBuffer[];

double MaBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

string short_name;

//---- 1 additional buffer used for counting.

IndicatorBuffers(2);

//---- indicator line

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,AtrBuffer);

SetIndexBuffer(1,TempBuffer);

SetIndexStyle(2,DRAW_LINE);

SetIndexBuffer(2,MaBuffer);

//---- name for DataWindow and indicator subwindow label

short_name="ATR("+AtrPeriod+")";

IndicatorShortName(short_name);

SetIndexLabel(0,short_name);

//----

SetIndexDrawBegin(0,AtrPeriod);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Average True Range |

//+------------------------------------------------------------------+

int start()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=AtrPeriod) return(0);

//---- initial zero

if(counted_bars<1)

for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;

//----

i=Bars-counted_bars-1;

while(i>=0)

{

double high=High;

double low =Low;

if(i==Bars-1) TempBuffer=high-low;

else

{

double prevclose=Close;

TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);

}

i--;

}

//----

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

for(i=0; i<limit; i++)

AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);

//----

double MyArray[];

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

ArrayResize( MyArray, limit);

ArraySetAsSeries(MyArray,true);

for(i=0; i<limit; i++)

{

MyArray = AtrBuffer;

}

for(i=0; i<limit; i++)

{

MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);

}

//----

return(0);

}

//+------------------------------------------------------------------+

[/lang]

 

...

şimdi dene

k3rn3l:
[lang=it]Merhaba, ayrı bir pencerede atr yazan ve bunun üzerine hareketli ortalama hesaplayan ve bant genişliği için aynı şeyi yapan özel bir göstergeye ihtiyacım var. Kodu mql4'te yaptım ve MA'yı hesaplamak için IMAONARRAY'i kullanıyorum, ancak gösterge çalışmıyor .. biri bana yardım edebilir mi???

Bu teo kodlarından biridir..

teşekkürler

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

//---- input parameters

extern int AtrPeriod=14;

//---- buffers

double AtrBuffer[];

double TempBuffer[];

double MaBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

string short_name;

//---- 1 additional buffer used for counting.

IndicatorBuffers(2);

//---- indicator line

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,AtrBuffer);

SetIndexBuffer(1,TempBuffer);

SetIndexStyle(2,DRAW_LINE);

SetIndexBuffer(2,MaBuffer);

//---- name for DataWindow and indicator subwindow label

short_name="ATR("+AtrPeriod+")";

IndicatorShortName(short_name);

SetIndexLabel(0,short_name);

//----

SetIndexDrawBegin(0,AtrPeriod);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Average True Range |

//+------------------------------------------------------------------+

int start()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=AtrPeriod) return(0);

//---- initial zero

if(counted_bars<1)

for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;

//----

i=Bars-counted_bars-1;

while(i>=0)

{

double high=High;

double low =Low;

if(i==Bars-1) TempBuffer=high-low;

else

{

double prevclose=Close;

TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);

}

i--;

}

//----

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

for(i=0; i<limit; i++)

AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);

//----

double MyArray[];

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

ArrayResize( MyArray, limit);

ArraySetAsSeries(MyArray,true);

for(i=0; i<limit; i++)

{

MyArray = AtrBuffer;

}

for(i=0; i<limit; i++)

{

MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);

}

//----

return(0);

}

//+------------------------------------------------------------------+
[/lang]
Dosyalar:
atr__ma.mq4  2 kb
 

[lang=tr]Merhaba Biri bana bu formülü metatrader kodunda oluşturmam için yardım edebilir mi?

(bu metastock formülünde :)

Q1:=Input("PERIOD",1,1000,3);

Q2:=Input("PERIOD",0.001.100,1);

Q3:=Q2/100;

S4:=Mov( Tipik(),Ç1,E) ;

S5:=If((Ç4*(1-Ç3))>ÖNCEKİ,Ç4*(1-Ç3),If((Ç4*(1+Ç3))<ÖNCEKİ,Ç4*(1+Ç3),ÖNCEKİ)) ;

S5

[/lang]

 

...

ilginç biri

Farklı zaman dilimleri için ayarlamanız gereken tek şey yüzdedir. %1, 4 saatlik bir grafik için iyi bir seçim gibi görünüyor, ancak burada varsayılan %1 yerine %0,5 olan 15 dakikalık bir grafik örneği

Not: Orijinal adının ne olduğu hakkında hiçbir fikrim yok, bu yüzden olduğu gibi adlandırdım.

Saygılarımızla

mladen

cedid:
[lang=tr]Merhaba Biri bana bu formülü metatrader kodunda oluşturmam için yardım edebilir mi?

(bu metastock formülünde :)

Q1:=Input("PERIOD",1,1000,3);

Q2:=Input("PERIOD",0.001.100,1);

Q3:=Q2/100;

S4:=Mov( Tipik(),Ç1,E) ;

S5:=If((Ç4*(1-Ç3))>ÖNCEKİ,Ç4*(1-Ç3),If((Ç4*(1+Ç3))<ÖNCEKİ,Ç4*(1+Ç3),ÖNCEKİ)) ;

S5

[/lang]
Dosyalar:
levels.gif  22 kb
 
mladen:
ilginç biri

Farklı zaman dilimleri için ayarlamanız gereken tek şey yüzdedir. %1, 4 saatlik bir grafik için iyi bir seçim gibi görünüyor, ancak burada varsayılan %1 yerine %0,5 olan 15 dakikalık bir grafik örneği

Not: Orijinal adının ne olduğu hakkında hiçbir fikrim yok, bu yüzden olduğu gibi adlandırdım.

Saygılarımızla

mladen

[lang=tr]teşekkür ederim mladen deneyeceğim, işe yarayacağını düşünüyorum [/lang]

Neden: