Kodlama yardımı - sayfa 626

 
stas0202:
mladen , gösterge konusunda bana yardımcı olabileceğinizi umar mısınız?

Ek gönderilere gerek yok İşte uyarıları olan bir sürüm (6 olası uyarı türü eklendi): MASO 2_1 + alerts.mq4

Dosyalar:
 
mladen:
Ek gönderilere gerek yok İşte uyarıları olan bir sürüm (6 olası uyarı türü eklendi): MASO 2_1 + alerts.mq4

çok iyi, harika bir iş, teşekkürler

 

mladen

ve ok yapmak için bir istek daha olabilir, sadece çubuğu kapattınız mı? ve nötr bir çubuk olduğunda, bunu bir trend değişikliği olarak değerlendirin

 

MASO göstergesi ile çok sayıda uyarı var gibi görünüyor.

Bu çok fazla değil mi? Normal ticaret için nasıl kullanılır?

 

martingail ile belirli bir strateji ile ikili opsiyonlar için

 
pgtips:
Merhaba Mladen,

önceki gün mum rengini gösterecek bir göstergeniz var mı?

5 dakikalık grafiklerle çalışıyorum ve görsel olarak geriye dönük test yapmak, önceki gün mum rengini kontrol etmek için takas yapmak kafa karıştırıcı oluyor. Önceki gün mum rengini göstermek için kırmızı veya yeşil yeni bir pencerede alt kısım boyunca uzanan bir çubuğum olsaydı harika olurdu - Aynı yönde alım satımı keşfetmek istiyorum.

Ekli böyle bir çubuk. Mümkün mü ?

Yani kapat> aç sonra yeşil, yoksa kırmızı sanırım.?

her zamanki gibi yardımın için teşekkür ederim :-)

PG

kibar yumru :-)

Dosyalar:
 
pgtips:
kibar yumru :-)

bu size yardımcı olacaksa? sw'de değil ama

Dosyalar:
eurusdm5_1.png  32 kb
 

#property copyright ""

#property link ""

#property indicator_chart_window

#property indicator_buffers 3

#property indicator_color1 Crimson

#property indicator_color2 DodgerBlue

#property indicator_color3 clrBlue

int price = PRICE_OPEN;

extern int zBar = 1000;

extern int LengthB=12;

extern int LengthK=12;

extern int sCCI=2;

extern int sRSI=2;

int SoundAlertMode = 0;

int Soundonly = 0;

int Barcount;

double RSI;

double CCI;

datetime TimeBar;

double previ;

double ExtMapBuffer2[];

double alertBar1;

int sim=0;

double alertBar;

extern bool DoAlert=true;

extern bool alertMail=false;

datetime lastAlertTime;

//---- buffers

double b1[],b2[];double Gd_188;

double f0_3() {

double Ld_ret_0;

if (Digits < 4) Ld_ret_0 = 0.01;

else Ld_ret_0 = 0.0001;

return (Ld_ret_0);

}

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

IndicatorBuffers(2);

IndicatorShortName("Investor");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,0);

SetIndexArrow(0,234);

SetIndexBuffer(0,b1);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,0);

SetIndexArrow(1,233);

SetIndexBuffer(1,b2);

SetIndexEmptyValue(2,0.0);

SetIndexDrawBegin(2, zBar);

SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,2);

SetIndexArrow(2,158);

SetIndexBuffer(2,ExtMapBuffer2);

Gd_188 = f0_3();

Barcount = 0;

//----

return(0);

}

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

//| Custor indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int i, counted_bars=IndicatorCounted();

int limit=Bars-counted_bars;

if(counted_bars>0) limit++;

string sAlertMsg;

/*// TImes

int Li_unused_8;

string Ls_28;

int Li_unused_36;

double Ld_0 = (Ask - Bid) / Gd_188;

if (Ld_0 > 1.0 && Ld_0 <= 10.0) Li_unused_8 = 4;

int Li_12 = Time[0] + 60 * Period() - TimeCurrent();

double Ld_16 = Li_12 / 60.0;

int Li_24 = Li_12 % 60;

Li_12 = (Li_12 - Li_12 % 60) / 60;

if (Li_24 <= 9) Ls_28 = "0";

if (Li_12 >= 1 && Li_12 <= 9) Li_unused_36 = -10;

else {

if (Li_12 >= 10 && Li_12 <= 99) Li_unused_36 = -13;

else {

if (Li_12 >= 100 && Li_12 <= 999) Li_unused_36 = -16;

else {

if (Li_12 >= 1000 && Li_12 <= 9999) Li_unused_36 = -24;

else

if (Li_12 >= 10000 && Li_12 <= 99999) Li_unused_36 = -29;

}

}

}

Comment("", "" + Li_12 + ":" + Ls_28 + "" + Li_24 + "",

"\n", "=======",

"\n", "" + Symbol() + "", " " + Period() + "",

"\n", "Spread : " + DoubleToStr(Ld_0, 1) + "",

"\n",

"\n", "",

"\n", "");

*/

// Arrows

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

{

RSI=iRSI(NULL,0,sRSI,price,i);

CCI=iCCI(NULL,0,sCCI,price,i+1);

//double zz1 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,1,i);

//double zz2 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,0,i);

//if (zz1 != 0) {

if ( RSI > 80.0 && CCI < 50.0 &&

Open > Close && //bear

Open < Close && //bull

High - Close > High - Close )

{

b1 = High+Point*5;

}

//if (zz2 != 0) {

if ( RSI 50.0 &&

Open < Close && //bull

Open > Close && //bear

High - Close < High - Close )

{

b2 = Low-Point*5;

}

if (DoAlert && b2[1]!=0 && lastAlertTime!=Time[0])

{

sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";

if (DoAlert) Alert(sAlertMsg);

lastAlertTime = Time[0];

if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);

}

else

if (b1[1]!=0 && lastAlertTime!=Time[0])

{

sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";

if (DoAlert) Alert(sAlertMsg);

lastAlertTime = Time[0];

if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);

}

//}

//}

}

sinyal();

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

return(0);

}

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

string TF2Str(int iPeriod) {

switch(iPeriod) {

case PERIOD_M1: return("M1");

case PERIOD_M5: return("M5");

case PERIOD_M15: return("M15");

case PERIOD_M30: return("M30");

case PERIOD_H1: return("H1");

case PERIOD_H4: return("H4");

case PERIOD_D1: return("D1");

case PERIOD_W1: return("W1");

case PERIOD_MN1: return("MN1");

default: return("M"+iPeriod);

}

}

void sinyal(){

int shifti,Swingi,Swing_ni,uzli,ii,zui,zdi,mvi;

double LLi,HHi,BHi,BLi;

double Uzeli[10000][3];

// loop from first bar to current bar (with shift=0)

Swing_ni=0;Swingi=0;uzli=0;

BHi =High[zBar];BLi=Low[zBar];zui=zBar;zdi=zBar;

for (shifti=zBar;shifti>=0;shifti--) {

LLi=10000000;HHi=-100000000;

for (ii=shifti+LengthB;ii>=shifti+1;ii--) {

if (Low< LLi) {LLi=Low;}

if (High>HHi) {HHi=High;}

}

if (Low[shifti]HHi){

Swingi=2;

if (Swing_ni==1) {zui=shifti+1;}

if (Swing_ni==-1) {zdi=shifti+1;}

} else {

if (Low[shifti]<LLi) {Swingi=-1;}

if (High[shifti]>HHi) {Swingi=1;}

}

if (Swingi!=Swing_ni && Swing_ni!=0) {

if (Swingi==2) {

Swingi=-Swing_ni;BHi = High[shifti];BLi = Low[shifti];

}

uzli=uzli+1;

if (Swingi==1) {

Uzeli[1]=zdi;

Uzeli[2]=BLi;

}

if (Swingi==-1) {

Uzeli[1]=zui;

Uzeli[2]=BHi;

}

BHi = High[shifti];

BLi = Low[shifti];

}

if (Swingi==1) {

if (High[shifti]>=BHi) {BHi=High[shifti];zui=shifti;}}

if (Swingi==-1) {

if (Low[shifti]<=BLi) {BLi=Low[shifti]; zdi=shifti;}}

Swing_ni=Swingi;

}

for (ii=1;ii<=uzli;ii++) {

mvi=StrToInteger(DoubleToStr(Uzeli[1],0));

ExtMapBuffer2[mvi]=Uzeli[2];

previ=Uzeli[2];

}

}

lütfen yardım et ....

bu gösterge, sinyal doğru zamanda görünmüyor

her seferinde grafiği yenilemeliyim

ve lütfen uyarıyı da düzeltin

Teşekkürler

 
cebrez:

#property copyright ""

#property link ""

#property indicator_chart_window

#property indicator_buffers 3

#property indicator_color1 Crimson

#property indicator_color2 DodgerBlue

#property indicator_color3 clrBlue

int price = PRICE_OPEN;

extern int zBar = 1000;

extern int LengthB=12;

extern int LengthK=12;

extern int sCCI=2;

extern int sRSI=2;

int SoundAlertMode = 0;

int Soundonly = 0;

int Barcount;

double RSI;

double CCI;

datetime TimeBar;

double previ;

double ExtMapBuffer2[];

double alertBar1;

int sim=0;

double alertBar;

extern bool DoAlert=true;

extern bool alertMail=false;

datetime lastAlertTime;

//---- buffers

double b1[],b2[];double Gd_188;

double f0_3() {

double Ld_ret_0;

if (Digits < 4) Ld_ret_0 = 0.01;

else Ld_ret_0 = 0.0001;

return (Ld_ret_0);

}

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

IndicatorBuffers(2);

IndicatorShortName("Investor");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,0);

SetIndexArrow(0,234);

SetIndexBuffer(0,b1);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,0);

SetIndexArrow(1,233);

SetIndexBuffer(1,b2);

SetIndexEmptyValue(2,0.0);

SetIndexDrawBegin(2, zBar);

SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,2);

SetIndexArrow(2,158);

SetIndexBuffer(2,ExtMapBuffer2);

Gd_188 = f0_3();

Barcount = 0;

//----

return(0);

}

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

//| Custor indicator deinitialization function |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

int i, counted_bars=IndicatorCounted();

int limit=Bars-counted_bars;

if(counted_bars>0) limit++;

string sAlertMsg;

/*// TImes

int Li_unused_8;

string Ls_28;

int Li_unused_36;

double Ld_0 = (Ask - Bid) / Gd_188;

if (Ld_0 > 1.0 && Ld_0 <= 10.0) Li_unused_8 = 4;

int Li_12 = Time[0] + 60 * Period() - TimeCurrent();

double Ld_16 = Li_12 / 60.0;

int Li_24 = Li_12 % 60;

Li_12 = (Li_12 - Li_12 % 60) / 60;

if (Li_24 <= 9) Ls_28 = "0";

if (Li_12 >= 1 && Li_12 <= 9) Li_unused_36 = -10;

else {

if (Li_12 >= 10 && Li_12 <= 99) Li_unused_36 = -13;

else {

if (Li_12 >= 100 && Li_12 <= 999) Li_unused_36 = -16;

else {

if (Li_12 >= 1000 && Li_12 <= 9999) Li_unused_36 = -24;

else

if (Li_12 >= 10000 && Li_12 <= 99999) Li_unused_36 = -29;

}

}

}

Comment("", "" + Li_12 + ":" + Ls_28 + "" + Li_24 + "",

"\n", "=======",

"\n", "" + Symbol() + "", " " + Period() + "",

"\n", "Spread : " + DoubleToStr(Ld_0, 1) + "",

"\n",

"\n", "",

"\n", "");

*/

// Arrows

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

{

RSI=iRSI(NULL,0,sRSI,price,i);

CCI=iCCI(NULL,0,sCCI,price,i+1);

//double zz1 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,1,i);

//double zz2 = iCustom(NULL,0,"Zigzag_v.2",zBar,LengthB,LengthK,0,i);

//if (zz1 != 0) {

if ( RSI > 80.0 && CCI < 50.0 &&

Open > Close && //bear

Open < Close && //bull

High - Close > High - Close )

{

b1 = High+Point*5;

}

//if (zz2 != 0) {

if ( RSI 50.0 &&

Open < Close && //bull

Open > Close && //bear

High - Close < High - Close )

{

b2 = Low-Point*5;

}

if (DoAlert && b2[1]!=0 && lastAlertTime!=Time[0])

{

sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";

if (DoAlert) Alert(sAlertMsg);

lastAlertTime = Time[0];

if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);

}

else

if (b1[1]!=0 && lastAlertTime!=Time[0])

{

sAlertMsg=" Alert - "+Symbol()+" "+TF2Str(Period())+"";

if (DoAlert) Alert(sAlertMsg);

lastAlertTime = Time[0];

if (alertMail) SendMail(sAlertMsg, "Alert!\n" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);

}

//}

//}

}

sinyal();

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

return(0);

}

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

string TF2Str(int iPeriod) {

switch(iPeriod) {

case PERIOD_M1: return("M1");

case PERIOD_M5: return("M5");

case PERIOD_M15: return("M15");

case PERIOD_M30: return("M30");

case PERIOD_H1: return("H1");

case PERIOD_H4: return("H4");

case PERIOD_D1: return("D1");

case PERIOD_W1: return("W1");

case PERIOD_MN1: return("MN1");

default: return("M"+iPeriod);

}

}

void sinyal(){

int shifti,Swingi,Swing_ni,uzli,ii,zui,zdi,mvi;

double LLi,HHi,BHi,BLi;

double Uzeli[10000][3];

// loop from first bar to current bar (with shift=0)

Swing_ni=0;Swingi=0;uzli=0;

BHi =High[zBar];BLi=Low[zBar];zui=zBar;zdi=zBar;

for (shifti=zBar;shifti>=0;shifti--) {

LLi=10000000;HHi=-100000000;

for (ii=shifti+LengthB;ii>=shifti+1;ii--) {

if (Low< LLi) {LLi=Low;}

if (High>HHi) {HHi=High;}

}

if (Low[shifti]HHi){

Swingi=2;

if (Swing_ni==1) {zui=shifti+1;}

if (Swing_ni==-1) {zdi=shifti+1;}

} else {

if (Low[shifti]<LLi) {Swingi=-1;}

if (High[shifti]>HHi) {Swingi=1;}

}

if (Swingi!=Swing_ni && Swing_ni!=0) {

if (Swingi==2) {

Swingi=-Swing_ni;BHi = High[shifti];BLi = Low[shifti];

}

uzli=uzli+1;

if (Swingi==1) {

Uzeli[1]=zdi;

Uzeli[2]=BLi;

}

if (Swingi==-1) {

Uzeli[1]=zui;

Uzeli[2]=BHi;

}

BHi = High[shifti];

BLi = Low[shifti];

}

if (Swingi==1) {

if (High[shifti]>=BHi) {BHi=High[shifti];zui=shifti;}}

if (Swingi==-1) {

if (Low[shifti]<=BLi) {BLi=Low[shifti]; zdi=shifti;}}

Swing_ni=Swingi;

}

for (ii=1;ii<=uzli;ii++) {

mvi=StrToInteger(DoubleToStr(Uzeli[1],0));

ExtMapBuffer2[mvi]=Uzeli[2];

previ=Uzeli[2];

}

}

lütfen yardım et ....

bu gösterge, sinyal doğru zamanda görünmüyor

her zaman grafiği yenilemeliyim

ve lütfen uyarıyı da düzeltin

Teşekkürler

cebrez

Bu, geri derlenmiş ve diğer bazı parçalardan bir araya getirilmiş göstergedir ve sonuç olarak yeniden boyama göstergesi olan bir karışıklık elde ettiniz 101

unutmak en iyisi

 
mladen:

cebrez

Bu, geri derlenmiş ve diğer bazı parçalardan bir araya getirilmiş göstergedir ve sonuç olarak yeniden boyama göstergesi olan bir karışıklık elde ettiniz 101

unutmak en iyisi

ama bu göstergeyle iyi bir sonuç elde ettim efendim ve evet, yeniden boyanıyor ama benim için sorun değil ... lütfen efendim

Burada ZigZag_v.2 adlı diğer bazı parçaları ekleyeceğim >>> https://www.mql5.com/en/forum/174385/page417

teşekkürler