Kodlama yardımı - sayfa 253

 

Gösterge değişikliği yardımı

Selam beyler

Bu MA çapraz göstergesi her tik ile uyarı üretiyor. Birisi sorunu düzeltmek için çok nazik olur mu ya da en azından bana nasıl yapacağımı öğretir mi?

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Lime

#property indicator_color2 Red

double g_ibuf_76[];

double g_ibuf_80[];

int g_period_84 = 5;

int g_period_88 = 34;

extern bool Alerts = TRUE;

extern bool PopAlerts = TRUE;

extern bool PushAlerts = TRUE;

extern bool EmailAlerts = TRUE;

extern bool SoundAlerts = TRUE;

extern string SoundFileUp = "UP.wav";

extern string SoundFileDn = "DN.wav";

int gi_96 = 0;

int gi_100 = 0;

int init() {

SetIndexStyle(0, DRAW_ARROW, EMPTY);

SetIndexArrow(0, 233);

SetIndexBuffer(0, g_ibuf_76);

SetIndexStyle(1, DRAW_ARROW, EMPTY);

SetIndexArrow(1, 234);

SetIndexBuffer(1, g_ibuf_80);

return (0);

}

int deinit() {

return (0);

}

int start() {

int li_20;

double l_ima_24;

double l_ima_32;

double l_ima_40;

double l_ima_48;

double l_ima_56;

double l_ima_64;

double ld_72;

double ld_80;

int li_88 = IndicatorCounted();

if (li_88 < 0) return (-1);

if (li_88 > 0) li_88--;

int li_12 = Bars - li_88;

for (int li_16 = 0; li_16 <= li_12; li_16++) {

li_20 = li_16;

ld_72 = 0;

ld_80 = 0;

for (li_20 = li_16; li_20 <= li_16 + 9; li_20++) ld_80 += MathAbs(High[li_20] - Low[li_20]);

ld_72 = ld_80 / 10.0;

l_ima_24 = iMA(NULL, 0, g_period_84, 0, MODE_EMA, PRICE_CLOSE, li_16);

l_ima_40 = iMA(NULL, 0, g_period_84, 0, MODE_EMA, PRICE_CLOSE, li_16 + 1);

l_ima_56 = iMA(NULL, 0, g_period_84, 0, MODE_EMA, PRICE_CLOSE, li_16 - 1);

l_ima_32 = iMA(NULL, 0, g_period_88, 0, MODE_EMA, PRICE_CLOSE, li_16);

l_ima_48 = iMA(NULL, 0, g_period_88, 0, MODE_EMA, PRICE_CLOSE, li_16 + 1);

l_ima_64 = iMA(NULL, 0, g_period_88, 0, MODE_EMA, PRICE_CLOSE, li_16 - 1);

if (l_ima_24 > l_ima_32 && l_ima_40 l_ima_64) {

g_ibuf_76[li_16] = Low[li_16] - ld_72 / 2.0;

if (li_16 <= 2 && Alerts && !gi_100) {

if (PopAlerts) Alert(Symbol(), " ", Period(), " PRE-BUY ");

if (PushAlerts) SendNotification(Symbol() + " PRE-BUY ");

if (SoundAlerts) PlaySound(SoundFileUp);

if (EmailAlerts) SendMail(Symbol() , " PRE-BUY ");

gi_96 = TRUE;

gi_100 = FALSE;

}

} else {

if (l_ima_24 l_ima_48 && l_ima_56 < l_ima_64) {

g_ibuf_80[li_16] = High[li_16] + ld_72 / 2.0;

if (li_16 <= 2 && Alerts && !gi_100) {

if (PopAlerts) Alert(Symbol(), " ", Period(), " PRE-SELL ");

if (PushAlerts) SendNotification(Symbol() + " PRE-SELL ");

if (SoundAlerts) PlaySound(SoundFileUp);

if (EmailAlerts) SendMail(Symbol() , " PRE-SELL ");

gi_100 = TRUE;

gi_96 = FALSE;

}

}

}

}

return (0);

}

Saygılarımızla

amin

 
aminhakim:
Selam beyler

Bu MA çapraz göstergesi, her tik ile uyarı üretiyor. Birisi sorunu düzeltmek için çok nazik olur ya da en azından bana nasıl yapacağımı öğretir mi?

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Lime

#property indicator_color2 Red

double g_ibuf_76[];

double g_ibuf_80[];

int g_period_84 = 5;

int g_period_88 = 34;

extern bool Alerts = TRUE;

extern bool PopAlerts = TRUE;

extern bool PushAlerts = TRUE;

extern bool EmailAlerts = TRUE;

extern bool SoundAlerts = TRUE;

extern string SoundFileUp = "UP.wav";

extern string SoundFileDn = "DN.wav";

int gi_96 = 0;

int gi_100 = 0;

int init() {

SetIndexStyle(0, DRAW_ARROW, EMPTY);

SetIndexArrow(0, 233);

SetIndexBuffer(0, g_ibuf_76);

SetIndexStyle(1, DRAW_ARROW, EMPTY);

SetIndexArrow(1, 234);

SetIndexBuffer(1, g_ibuf_80);

return (0);

}

int deinit() {

return (0);

}

int start() {

int li_20;

double l_ima_24;

double l_ima_32;

double l_ima_40;

double l_ima_48;

double l_ima_56;

double l_ima_64;

double ld_72;

double ld_80;

int li_88 = IndicatorCounted();

if (li_88 < 0) return (-1);

if (li_88 > 0) li_88--;

int li_12 = Bars - li_88;

for (int li_16 = 0; li_16 <= li_12; li_16++) {

li_20 = li_16;

ld_72 = 0;

ld_80 = 0;

for (li_20 = li_16; li_20 <= li_16 + 9; li_20++) ld_80 += MathAbs(High[li_20] - Low[li_20]);

ld_72 = ld_80 / 10.0;

l_ima_24 = iMA(NULL, 0, g_period_84, 0, MODE_EMA, PRICE_CLOSE, li_16);

l_ima_40 = iMA(NULL, 0, g_period_84, 0, MODE_EMA, PRICE_CLOSE, li_16 + 1);

l_ima_56 = iMA(NULL, 0, g_period_84, 0, MODE_EMA, PRICE_CLOSE, li_16 - 1);

l_ima_32 = iMA(NULL, 0, g_period_88, 0, MODE_EMA, PRICE_CLOSE, li_16);

l_ima_48 = iMA(NULL, 0, g_period_88, 0, MODE_EMA, PRICE_CLOSE, li_16 + 1);

l_ima_64 = iMA(NULL, 0, g_period_88, 0, MODE_EMA, PRICE_CLOSE, li_16 - 1);

if (l_ima_24 > l_ima_32 && l_ima_40 l_ima_64) {

g_ibuf_76[li_16] = Low[li_16] - ld_72 / 2.0;

if (li_16 <= 2 && Alerts && !gi_100) {

if (PopAlerts) Alert(Symbol(), " ", Period(), " PRE-BUY ");

if (PushAlerts) SendNotification(Symbol() + " PRE-BUY ");

if (SoundAlerts) PlaySound(SoundFileUp);

if (EmailAlerts) SendMail(Symbol() , " PRE-BUY ");

gi_96 = TRUE;

gi_100 = FALSE;

}

} else {

if (l_ima_24 l_ima_48 && l_ima_56 < l_ima_64) {

g_ibuf_80[li_16] = High[li_16] + ld_72 / 2.0;

if (li_16 <= 2 && Alerts && !gi_100) {

if (PopAlerts) Alert(Symbol(), " ", Period(), " PRE-SELL ");

if (PushAlerts) SendNotification(Symbol() + " PRE-SELL ");

if (SoundAlerts) PlaySound(SoundFileUp);

if (EmailAlerts) SendMail(Symbol() , " PRE-SELL ");

gi_100 = TRUE;

gi_96 = FALSE;

}

}

}

}

return (0);

}

Saygılarımızla

amin

Amin, fark ettiğiniz sorunları olan bir yeniden boyama göstergesinin derlenmiş versiyonudur. Bunun yerine bu gönderideki göstergeyi kullanın: https://www.mql5.com/en/forum/173574/page447

 

Merhaba sevgili kodlayıcılar!

Renk değiştirdiği anda bu göstergeye uyarı seçenekleri eklemek mümkün müdür?

En önemli şey, mümkün olan en kısa sürede bir uyarı vermek olacaktır (bu her zaman bir mumun açılışında olur).

Seçenek 1: E-posta: (DOĞRU/YANLIŞ)

Seçenek 2: Kutu: (DOĞRU/YANLIŞ)

E-postanın veya kutunun konusunda görüntülenecek metin: [PAIR], TF'yi açtı [TF]

Zamanınızı onurlandırdığım için, kodlamayı önce kendim denedim ama şanssız.

Umarım birisi bana yardım edebilir.

Şimdiden teşekkürler!

hama.mq4

Dosyalar:
hama.mq4  4 kb
 

Merhaba programcılar, fiyat çubuklarını stepMA ortalama formülüne göre boyayan bir gösterge oluşturmaya çalışıyorum. Elit bir gösterge olduğu için buraya koyabileceğimden emin değildim, ancak kodumda orijinal formülün izi yok çünkü bu göstergenin MTF sürümünü iCustom işlevlerini kullanarak yarattım.

Derleyici bana hiç hata vermiyor ama gösterge düzgün çalışmıyor, sanırım arabelleklerle biraz uğraştım. Bana yardım eder misin?

şimdiden teşekkürler.

işte kodum:

//------------------------------------------------------------------

#property copyright "mladen"

#property link "www.forex-tsd.com"

//------------------------------------------------------------------

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DarkGreen

#property indicator_width1 1

#property indicator_color2 FireBrick

#property indicator_width2 1

#property indicator_color3 LimeGreen

#property indicator_width3 2

#property indicator_color4 Orange

#property indicator_width4 2

//

//

//

extern int TimeFrame = 0; // Timeframe

extern int MaLength = 10; // Ma Length

extern int MaMethod = 18; // Ma method

extern double Sensitivity = 3; // Sensivity Factor

extern double StepSize = 3; // Constant Step Size

extern int Shift = 0; // OShify

extern bool HighLow = false; // High/Low Mode Switch (more sensitive)

extern color WickBuyColor = DarkGreen;

extern color WickSellColor = FireBrick;

extern color BodyBuyColor = LimeGreen;

extern color BodySellColor = Orange;

extern int WickWidth = 1;

extern int BodyWidth = 2;

extern bool alertsOn = false;

extern bool alertsOnCurrent = false;

extern bool alertsMessage = false;

extern bool alertsNotification = false;

extern bool alertsSound = false;

extern bool alertsEmail = false;

extern string MaMethods = "";

extern string __0 = "SMA";

extern string __1 = "EMA";

extern string __2 = "Double smoothed EMA";

extern string __3 = "Double EMA (DEMA)";

extern string __4 = "Triple EMA (TEMA)";

extern string __5 = "Smoothed MA";

extern string __6 = "Linear weighted MA";

extern string __7 = "Parabolic weighted MA";

extern string __8 = "Alexander MA";

extern string __9 = "Volume weghted MA";

extern string __10 = "Hull MA";

extern string __11 = "Triangular MA";

extern string __12 = "Sine weighted MA";

extern string __13 = "Linear regression";

extern string __14 = "IE/2";

extern string __15 = "NonLag MA";

extern string __16 = "Zero lag EMA";

extern string __17 = "Leader EMA";

extern string __18 = "Super smoother";

extern string __19 = "Smoother";

//

//

//

double MABuffer[];

double UpBuffer[];

double DnBuffer[];

double UpbBuffer[];

double DnbBuffer[];

double slope[];

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

//| |

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

int init()

{

IndicatorBuffers(6);

SetIndexBuffer(0,UpBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, WickBuyColor);

SetIndexBuffer(1,DnBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, WickSellColor);

SetIndexBuffer(2,UpbBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyBuyColor);

SetIndexBuffer(3,DnbBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodySellColor);

SetIndexBuffer(4,MABuffer);

SetIndexBuffer(5,slope);

IndicatorShortName("StepMA averages MTF candles("+MaLength+","+Sensitivity+","+StepSize+")");

MaLength = MathMax(MaLength,1);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("StepMA averages MTF candles ("+TimeFrameStr+")");

return(0);

}

//----

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

//| MTF function |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);

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

{

if (Time<TimeArray[y]) y++;

/*********************************************************************************************************

Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

********************************************************************************************************/

MABuffer=iCustom(Symbol(),TimeFrame,"StepMA averages",MaLength,MaMethod,Sensitivity,StepSize,Shift,HighLow,0,y);

slope = slope;

if (MABuffer>MABuffer) slope = 1;

if (MABuffer<MABuffer) slope = -1;

if (slope == 1) { UpBuffer=High; DnBuffer=Low; UpbBuffer = MathMax(Open,Close); DnbBuffer = MathMin(Open,Close); }

if (slope == -1) { DnBuffer=High; UpBuffer=Low; DnbBuffer = MathMax(Open,Close); UpbBuffer = MathMin(Open,Close); }

}

return(0);

}

//+------------------------------------------------------------------+
 
thefxpros:
Merhaba programcılar, fiyat çubuklarını stepMA ortalama formülüne göre boyayan bir gösterge oluşturmaya çalışıyorum. Elit bir gösterge olduğu için buraya koyabileceğimden emin değildim, ancak kodumda orijinal formülün izi yok çünkü bu göstergenin MTF sürümünü iCustom işlevlerini kullanarak yarattım.

Derleyici bana hiç hata vermiyor ama gösterge düzgün çalışmıyor, sanırım arabelleklerle biraz uğraştım. Bana yardım eder misin?

şimdiden teşekkürler.

işte kodum:

//------------------------------------------------------------------

#property copyright "mladen"

#property link "www.forex-tsd.com"

//------------------------------------------------------------------

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DarkGreen

#property indicator_width1 1

#property indicator_color2 FireBrick

#property indicator_width2 1

#property indicator_color3 LimeGreen

#property indicator_width3 2

#property indicator_color4 Orange

#property indicator_width4 2

//

//

//

extern int TimeFrame = 0; // Timeframe

extern int MaLength = 10; // Ma Length

extern int MaMethod = 18; // Ma method

extern double Sensitivity = 3; // Sensivity Factor

extern double StepSize = 3; // Constant Step Size

extern int Shift = 0; // OShify

extern bool HighLow = false; // High/Low Mode Switch (more sensitive)

extern color WickBuyColor = DarkGreen;

extern color WickSellColor = FireBrick;

extern color BodyBuyColor = LimeGreen;

extern color BodySellColor = Orange;

extern int WickWidth = 1;

extern int BodyWidth = 2;

extern bool alertsOn = false;

extern bool alertsOnCurrent = false;

extern bool alertsMessage = false;

extern bool alertsNotification = false;

extern bool alertsSound = false;

extern bool alertsEmail = false;

extern string MaMethods = "";

extern string __0 = "SMA";

extern string __1 = "EMA";

extern string __2 = "Double smoothed EMA";

extern string __3 = "Double EMA (DEMA)";

extern string __4 = "Triple EMA (TEMA)";

extern string __5 = "Smoothed MA";

extern string __6 = "Linear weighted MA";

extern string __7 = "Parabolic weighted MA";

extern string __8 = "Alexander MA";

extern string __9 = "Volume weghted MA";

extern string __10 = "Hull MA";

extern string __11 = "Triangular MA";

extern string __12 = "Sine weighted MA";

extern string __13 = "Linear regression";

extern string __14 = "IE/2";

extern string __15 = "NonLag MA";

extern string __16 = "Zero lag EMA";

extern string __17 = "Leader EMA";

extern string __18 = "Super smoother";

extern string __19 = "Smoother";

//

//

//

double MABuffer[];

double UpBuffer[];

double DnBuffer[];

double UpbBuffer[];

double DnbBuffer[];

double slope[];

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

//| |

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

int init()

{

IndicatorBuffers(6);

SetIndexBuffer(0,UpBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, WickBuyColor);

SetIndexBuffer(1,DnBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, WickSellColor);

SetIndexBuffer(2,UpbBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyBuyColor);

SetIndexBuffer(3,DnbBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodySellColor);

SetIndexBuffer(4,MABuffer);

SetIndexBuffer(5,slope);

IndicatorShortName("StepMA averages MTF candles("+MaLength+","+Sensitivity+","+StepSize+")");

MaLength = MathMax(MaLength,1);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("StepMA averages MTF candles ("+TimeFrameStr+")");

return(0);

}

//----

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

//| MTF function |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);

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

{

if (Time<TimeArray[y]) y++;

/*********************************************************************************************************

Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

********************************************************************************************************/

MABuffer=iCustom(Symbol(),TimeFrame,"StepMA averages",MaLength,MaMethod,Sensitivity,StepSize,Shift,HighLow,0,y);

slope = slope;

if (MABuffer>MABuffer) slope = 1;

if (MABuffer<MABuffer) slope = -1;

if (slope == 1) { UpBuffer=High; DnBuffer=Low; UpbBuffer = MathMax(Open,Close); DnbBuffer = MathMin(Open,Close); }

if (slope == -1) { DnBuffer=High; UpBuffer=Low; DnbBuffer = MathMax(Open,Close); UpbBuffer = MathMin(Open,Close); }

}

return(0);

}

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

thefxpros

Tek ihtiyacınız olan, eğim arabelleğine yapılan bir çağrıdır (geri kalan her şeyi görmezden gelebilirsiniz)

Döndürülen eğim 1 ise, bu bir yükseliş trendidir.

Döndürülen eğim -1 ise, bu bir düşüş eğilimidir.

 
thefxpros:
Merhaba programcılar, fiyat çubuklarını stepMA ortalama formülüne göre boyayan bir gösterge oluşturmaya çalışıyorum. Elit bir gösterge olduğu için buraya koyabileceğimden emin değildim, ancak kodumda orijinal formülün izi yok çünkü bu göstergenin MTF sürümünü iCustom işlevlerini kullanarak yarattım.

Derleyici bana hiç hata vermiyor ama gösterge düzgün çalışmıyor, sanırım arabelleklerle biraz uğraştım. Bana yardım eder misin?

şimdiden teşekkürler.

Bunun gibi :

//------------------------------------------------------------------

#property copyright "mladen"

#property link "www.forex-tsd.com"

//------------------------------------------------------------------

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DarkGreen

#property indicator_width1 1

#property indicator_color2 FireBrick

#property indicator_width2 1

#property indicator_color3 LimeGreen

#property indicator_width3 2

#property indicator_color4 Orange

#property indicator_width4 2

//

//

//

extern int TimeFrame = 0; // Timeframe

extern int MaLength = 10; // Ma Length

extern int MaMethod = 18; // Ma method

extern double Sensitivity = 3; // Sensivity Factor

extern double StepSize = 3; // Constant Step Size

extern int Shift = 0; // OShify

extern bool HighLow = false; // High/Low Mode Switch (more sensitive)

extern color WickBuyColor = DarkGreen;

extern color WickSellColor = FireBrick;

extern color BodyBuyColor = LimeGreen;

extern color BodySellColor = Orange;

extern int WickWidth = 1;

extern int BodyWidth = 2;

extern bool alertsOn = false;

extern bool alertsOnCurrent = false;

extern bool alertsMessage = false;

extern bool alertsNotification = false;

extern bool alertsSound = false;

extern bool alertsEmail = false;

extern string MaMethods = "";

extern string __0 = "SMA";

extern string __1 = "EMA";

extern string __2 = "Double smoothed EMA";

extern string __3 = "Double EMA (DEMA)";

extern string __4 = "Triple EMA (TEMA)";

extern string __5 = "Smoothed MA";

extern string __6 = "Linear weighted MA";

extern string __7 = "Parabolic weighted MA";

extern string __8 = "Alexander MA";

extern string __9 = "Volume weghted MA";

extern string __10 = "Hull MA";

extern string __11 = "Triangular MA";

extern string __12 = "Sine weighted MA";

extern string __13 = "Linear regression";

extern string __14 = "IE/2";

extern string __15 = "NonLag MA";

extern string __16 = "Zero lag EMA";

extern string __17 = "Leader EMA";

extern string __18 = "Super smoother";

extern string __19 = "Smoother";

//

//

//

double UpBuffer[];

double DnBuffer[];

double UpbBuffer[];

double DnbBuffer[];

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

//| |

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

int init()

{

SetIndexBuffer(0,UpBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, WickBuyColor);

SetIndexBuffer(1,DnBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, WickSellColor);

SetIndexBuffer(2,UpbBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyBuyColor);

SetIndexBuffer(3,DnbBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodySellColor);

IndicatorShortName("StepMA averages MTF candles("+MaLength+","+Sensitivity+","+StepSize+")");

MaLength = MathMax(MaLength,1);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("StepMA averages MTF candles ("+TimeFrameStr+")");

return(0);

}

//----

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

//| MTF function |

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

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(MathMax(Bars-counted_bars,3*TimeFrame/Period()),Bars-1);

for(int i=limit;i>=0;i--)

{

int y = iBarShift(NULL,TimeFrame,Time);

int slope=iCustom(Symbol(),TimeFrame,"StepMA averages",MaLength,MaMethod,Sensitivity,StepSize,Shift,HighLow,5,y);

if (slope == 1) { UpBuffer=High; DnBuffer=Low; UpbBuffer = MathMax(Open,Close); DnbBuffer = MathMin(Open,Close); }

if (slope == -1) { DnBuffer=High; UpBuffer=Low; DnbBuffer = MathMax(Open,Close); UpbBuffer = MathMin(Open,Close); }

}

return(0);

}

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

Ve sonra aynı parametrelerle aynı olacaklar:

Dosyalar:
 
mladen:
Bunun gibi :
//------------------------------------------------------------------

#property copyright "mladen"

#property link "www.forex-tsd.com"

//------------------------------------------------------------------

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DarkGreen

#property indicator_width1 1

#property indicator_color2 FireBrick

#property indicator_width2 1

#property indicator_color3 LimeGreen

#property indicator_width3 2

#property indicator_color4 Orange

#property indicator_width4 2

//

//

//

extern int TimeFrame = 0; // Timeframe

extern int MaLength = 10; // Ma Length

extern int MaMethod = 18; // Ma method

extern double Sensitivity = 3; // Sensivity Factor

extern double StepSize = 3; // Constant Step Size

extern int Shift = 0; // OShify

extern bool HighLow = false; // High/Low Mode Switch (more sensitive)

extern color WickBuyColor = DarkGreen;

extern color WickSellColor = FireBrick;

extern color BodyBuyColor = LimeGreen;

extern color BodySellColor = Orange;

extern int WickWidth = 1;

extern int BodyWidth = 2;

extern bool alertsOn = false;

extern bool alertsOnCurrent = false;

extern bool alertsMessage = false;

extern bool alertsNotification = false;

extern bool alertsSound = false;

extern bool alertsEmail = false;

extern string MaMethods = "";

extern string __0 = "SMA";

extern string __1 = "EMA";

extern string __2 = "Double smoothed EMA";

extern string __3 = "Double EMA (DEMA)";

extern string __4 = "Triple EMA (TEMA)";

extern string __5 = "Smoothed MA";

extern string __6 = "Linear weighted MA";

extern string __7 = "Parabolic weighted MA";

extern string __8 = "Alexander MA";

extern string __9 = "Volume weghted MA";

extern string __10 = "Hull MA";

extern string __11 = "Triangular MA";

extern string __12 = "Sine weighted MA";

extern string __13 = "Linear regression";

extern string __14 = "IE/2";

extern string __15 = "NonLag MA";

extern string __16 = "Zero lag EMA";

extern string __17 = "Leader EMA";

extern string __18 = "Super smoother";

extern string __19 = "Smoother";

//

//

//

double UpBuffer[];

double DnBuffer[];

double UpbBuffer[];

double DnbBuffer[];

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

//| |

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

int init()

{

SetIndexBuffer(0,UpBuffer); SetIndexStyle(0,DRAW_HISTOGRAM, EMPTY, WickWidth, WickBuyColor);

SetIndexBuffer(1,DnBuffer); SetIndexStyle(1,DRAW_HISTOGRAM, EMPTY, WickWidth, WickSellColor);

SetIndexBuffer(2,UpbBuffer); SetIndexStyle(2,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodyBuyColor);

SetIndexBuffer(3,DnbBuffer); SetIndexStyle(3,DRAW_HISTOGRAM, EMPTY, BodyWidth, BodySellColor);

IndicatorShortName("StepMA averages MTF candles("+MaLength+","+Sensitivity+","+StepSize+")");

MaLength = MathMax(MaLength,1);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("StepMA averages MTF candles ("+TimeFrameStr+")");

return(0);

}

//----

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

//| MTF function |

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

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(MathMax(Bars-counted_bars,3*TimeFrame/Period()),Bars-1);

for(int i=limit;i>=0;i--)

{

int y = iBarShift(NULL,TimeFrame,Time);

int slope=iCustom(Symbol(),TimeFrame,"StepMA averages",MaLength,MaMethod,Sensitivity,StepSize,Shift,HighLow,5,y);

if (slope == 1) { UpBuffer=High; DnBuffer=Low; UpbBuffer = MathMax(Open,Close); DnbBuffer = MathMin(Open,Close); }

if (slope == -1) { DnBuffer=High; UpBuffer=Low; DnbBuffer = MathMax(Open,Close); UpbBuffer = MathMin(Open,Close); }

}

return(0);

}

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

[/PHP]

And then with same parameters they are going to be the same :

Tamam teşekkür ederim.

Mladen, bu dili ciddi bir şekilde öğrenmek için nereden malzeme bulabileceğimi biliyor musun, lütfen?

sadece bu tür bir kodla ilgili bir soru:

[PHP]if (MABuffer>MABuffer) eğimi = 1;

şu anlama gelir: eğer (MABuffer[geçerli çubuğun]>MA Tamponu[geçerli çubuğun + 1, yani sonraki çubuğun]) eğimi[geçerli çubuğun] 1'e eşit;

doğru?

 
thefxpros:
Tamam teşekkür ederim.

Mladen, bu dili ciddi bir şekilde öğrenmek için nereden malzeme bulabileceğimi biliyor musun, lütfen?

sadece bu tür bir kodla ilgili bir soru:

if (MABuffer>MABuffer) slope = 1;

bunun anlamı: eğer (MABuffer[geçerli çubuğun]>MA Tamponu[geçerli çubuğun + 1, yani sonraki çubuğun] eğiminin[geçerli çubuğun] 1'e eşit olması;

doğru?

Evet. Belki sadece küçük bir yeniden ifade: eğer mevcut ma > önceki ma ise eğim = 1

Öğrenmek için: Bence en iyi yer bu gönderiyle başlamaktır https://www.mql5.com/en/forum/172969/page2 (ve tabii ki sormak. Hiç kimse sormadan öğrenmedi)

 

rica etmek !

sadece çok basit bir EA istiyorum:

- bir EA, yalnızca 2 mum aynı yönde kapanırsa ve aynı mumun sonunda kapatırsa bir işlem açar

daha fazla açıkla.. tamam mı? .... yeşile yakın 2 mum varsa, bu yüzden bir alış işlemi açacağım, açtığım bu işlem aynı mumun sonunda kapanacak, böylece 2 kırmızı kapandıktan sonra satış işlemi de açılacak mumlar ........ yani bu sadece 1 kolay kısıtlamadır.

 

Merhaba,

icustom kullanarak MTF'de bazı göstergeleri çevirmekte eğleniyorum. Gösterge çalışıyor, ancak rengi ve okları düzgün görüntülemiyor, neden?

Hata nerede lütfen?

wilders_trailing_stop_mtf.mq4

wilders_trailing_stop.mq4

//------------------------------------------------------------------

#property copyright "thefxpros"

#property link "thefxpros@katamail.com"

//------------------------------------------------------------------

#property indicator_chart_window

//#property indicator_color1 Orange

//#property indicator_color2 LimeGreen

//#property indicator_color3 LimeGreen

//#property indicator_color4 Orange

//#property indicator_width3 1

//#property indicator_width4 1

//

//

//

extern int TimeFrame = 0;

extern int Length = 2;

extern double Coeff = 1.75;

extern int LineWidth = 1;

extern int ArrowWidth = 1;

extern color UpLineClr = LimeGreen;

extern color DnLineClr = Orange;

extern color UpArrowClr = LimeGreen;

extern color DnArrowClr = Orange;

//

double WTS[];

double WTSDn[];

double arrUp[];

double arrDn[];

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

//| |

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

int init()

{

IndicatorBuffers(4);

SetIndexBuffer(0,WTS); SetIndexStyle(0,DRAW_LINE, EMPTY, LineWidth, DnLineClr);

SetIndexBuffer(1,WTSDn); SetIndexStyle(1,DRAW_LINE, EMPTY, LineWidth, UpLineClr);

SetIndexBuffer(2,arrUp); SetIndexStyle(2,DRAW_ARROW, EMPTY, ArrowWidth, UpArrowClr); SetIndexArrow(2,SYMBOL_ARROWUP);

SetIndexBuffer(3,arrDn); SetIndexStyle(3,DRAW_ARROW, EMPTY, ArrowWidth, DnArrowClr); SetIndexArrow(3,SYMBOL_ARROWDOWN);

IndicatorShortName("Wilders trailing stop MTF ("+Length+","+Coeff+")");

Length = MathMax(Length,1);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("Wilders trailing stop MTF ("+TimeFrameStr+")");

return(0);

}

//----

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

//| MTF function |

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

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);

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

{

if (Time<TimeArray[y]) y++;

/*********************************************************************************************************

Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

********************************************************************************************************/

WTS=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,0,y);

WTSDn=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,1,y);

arrUp=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,2,y);

arrDn=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,3,y);

}

return(0);

}

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