Kodlama yardımı - sayfa 513

 
mladen:
Deneyin (şimdi terminalimde dilediğim kadar mum gösteriyor) : candbreaker_1.mq4

Şimdi benim için iyi çalışıyor.

Saygılarımızla.

 

herkese merhaba, mt4'ümü artık grafikte gösterememe sorunum var ma, rsi, wpr mumları birkaç gün önce tekrar mt platformlarını kurduğumda oldu mu? biri yardım edebilir mi

 
tfi_markets:
Merhaba ProCoders,

Şu anda Autotrend Forecaster göstergesi ile çalışıyorum.

Aşağıdaki kodu yazdım, ancak EA esnaf açmıyor.

Birisi nazikçe bakabilir mi?

Şimdiden teşekkür ederim!

MT4, yalnızca günlükte uyarıları gösterir:

Dosyalar:
journal.jpg  74 kb
 
tfi_markets:
MT4, yalnızca günlükte uyarıları gösterir:

O zaman sorun, EA'da yazılan koşullarınızdadır.

Koşulların doğru olarak değerlendirilip değerlendirilmediğini kontrol edin

 

Merhaba kodlayıcılar,

Gerçekten utanıyorum çünkü bu üçüncü kez bir uyarı işlevi hakkında soru soruyorum.

Histogram rengi renkten değiştiğinde uyarı almak istiyorum.

Tıpkı normal gibi, gösterge arabelleklerini birbirleriyle karşılaştırıyorum. Ama bu sefer çalışmıyor.

Tamponlar mükemmel çalışıyor ve karşılaştırma işlevim de doğru (gözlerimde).

Bu yüzden küçük bir şey olması gerektiğini düşünüyorum, umarım birileri bana yardım edebilir.

Şimdiden teşekkürler,

#property indicator_separate_window#property indicator_buffers 5

#property indicator_color1 clrGreen

#property indicator_width1 4

#property indicator_color2 clrRed

#property indicator_width2 4

#property indicator_color3 Teal

#property indicator_color4 Teal

#property indicator_color5 Black

#property indicator_minimum 0

#property indicator_maximum 0.1

extern int Amplitude = 2;

extern bool alertsOn = true;

extern bool alertsMessage = true;

extern bool alertsSound = true;

extern bool alertsNotify = true;

extern bool alertsEmail = true;

extern string soundfile = "alert2.wav";

bool nexttrend;

double minh, maxl, up[], down[], trend[], atrlo[], atrhi[];

int init () {

SetIndexBuffer(0, up);

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexLabel(0, "up");

SetIndexBuffer(1, down);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexLabel(1, "down");

SetIndexBuffer (2, atrlo);

SetIndexStyle (2, DRAW_NONE);

SetIndexBuffer (3, atrhi);

SetIndexStyle (3, DRAW_NONE);

SetIndexBuffer (4, trend);

//---

SetIndexEmptyValue (0, 0.0);

SetIndexEmptyValue (1, 0.0);

SetIndexEmptyValue (4, 0.0);

nexttrend = 0;

minh = High;

maxl = Low;

return (0);

}

int start () {

double atr, ll, hh, lma, hma;

int workbar = 1;

int c = IndicatorCounted ();

if (c < 0) {

return (- 1);

}

for (int i = Bars - 1 - c; i >= workbar; i --) {

ll = iLow (Symbol (), Period (),

iLowest (Symbol (), Period (), MODE_LOW, Amplitude, i));

hh = iHigh (Symbol (), Period (),

iHighest (Symbol (), Period (), MODE_HIGH, Amplitude, i));

lma = iMA (NULL, 0, Amplitude, 0, MODE_SMA, PRICE_LOW, i);

hma = iMA (NULL, 0, Amplitude, 0, MODE_SMA, PRICE_HIGH, i);

trend = trend;

atr = iATR (Symbol (), 0, 100, i) / 2;

if (nexttrend == 1) {

maxl = MathMax (ll, maxl);

if (hma < maxl && Close < Low) {

trend = 1;

nexttrend = 0;

minh = hh;

}

}

if (nexttrend == 0) {

minh = MathMin (hh, minh);

if (lma > minh && Close > High) {

trend = 0;

nexttrend = 1;

maxl = ll;

}

}

if (trend == 0.0) { //-------------------------------------------------------------------------------------------

if (trend != 0.0) {

up = down;

up = up;

} else {

up = MathMax (maxl, up);

}

atrhi = up + atr;

atrlo = up - atr;

down = 0.0;

} else {

if (trend != 1.0) {

down = up;//-------------------------------------------------------------------------------------------

down = down;

} else {

down = MathMin (minh, down);

}

atrhi = down + atr;

atrlo = down - atr;

up = 0.0; //-------------------------------------------------------------------------------------------

}

if(alertsOn){

if((up[2]!=EMPTY_VALUE) && (down[2]!=EMPTY_VALUE) &&(up[1]!=EMPTY_VALUE)&&(down[1]==EMPTY_VALUE))lcheckalert();

if((up[2]!=EMPTY_VALUE) && (down[2]==EMPTY_VALUE) &&(up[1]!=EMPTY_VALUE)&&(down[1]!=EMPTY_VALUE))scheckalert();

}

}

return (0);

}

void lcheckalert()

{

static datetime candletime=0;

if(candletime!=Time[0])

{

string lmessage = "ZOXY is green on, this means a buy signal! Pair:"+_Symbol +" Price: "+Ask;

if (alertsMessage) Alert(lmessage);

if (alertsNotify) SendNotification(lmessage);

if (alertsEmail) SendMail(StringConcatenate(Symbol()," Buy signal "),lmessage);

if (alertsSound) PlaySound("alert2.wav");

candletime=Time[0];

}

}

void scheckalert()

{

static datetime candletime=0;

if(candletime!=Time[0])

{

string smessage = "ZOXY is Red, this means a sell signal! Pair: "+_Symbol +" Price: "+Bid;

if (alertsMessage) Alert(smessage);

if (alertsNotify) SendNotification(smessage);

if (alertsEmail) SendMail(StringConcatenate(Symbol()," Sell signal "),smessage);

if (alertsSound) PlaySound("alert2.wav");

candletime=Time[0];

}

}

zoxy.mq4

Dosyalar:
zoxy.mq4  5 kb
 
mladen:
O zaman sorun, EA'da yazılan koşullarınızdadır. Koşulların doğru olup olmadığını kontrol edin.

Merhaba Mladen,

Öneriniz için teşekkür ederiz. Koşulları doğru/yanlış olarak "zorlamak" için kodu biraz yeniden yazdım. Şimdi satıyor ama almıyor. Lütfen aşağıdaki koda bakın:

if(açıkSiparişler<=0)

{

// OtomatikTrend Tahmincisi

double AutoTrendup=iCustom(Symbol(),0,"AutoTrendForecaster",TMperiod,Intensity,SL_distance_pips,0,bar);

double AutoTrendup_prev=iCustom(Symbol(),0,"AutoTrendForecaster",TMperiod,Intensity,SL_distance_pips,0,bar+1);

double AutoTrenddown=iCustom(Symbol(),0,"AutoTrendForecaster",TMperiod,Intensity,SL_distance_pips,1,bar);

double AutoTrenddown_prev=iCustom(Symbol(),0,"AutoTrendForecaster",TMperiod,Intensity,SL_distance_pips,1,bar+1);

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

//| SATIN ALMAK

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

bool buyCondition = yanlış;

if(AutoTrendup>0 && AutoTrendup!=BOŞ_DEĞER)

{

buyCondition = doğru;

}

if (satın alma koşulu)

{

OpenBuy();

dönüş(0);

}

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

//| SATMAK

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

bool sellCondition = yanlış;

if (AutoTrenddown>0 && AutoTrenddown!=BOŞ_DEĞER)

{

sellCondition = doğru;

}

if (satış koşulu)

{

OpenSell();

dönüş(0);

}

}

Şimdiden teşekkür ederim!

Dosyalar:
buysell.jpg  65 kb
 
xtractalpha:
Merhaba kodlayıcılar,

Gerçekten utanıyorum çünkü bu üçüncü kez bir uyarı işlevi hakkında soru soruyorum.

Histogram rengi renkten değiştiğinde uyarı almak istiyorum.

Tıpkı normal gibi, gösterge arabelleklerini birbirleriyle karşılaştırıyorum. Ama bu sefer çalışmıyor.

Tamponlar mükemmel çalışıyor ve karşılaştırma işlevim de doğru (gözlerimde).

Bu yüzden küçük bir şey olması gerektiğini düşünüyorum, umarım birileri bana yardım edebilir.

Şimdiden teşekkürler,

#property indicator_separate_window#property indicator_buffers 5

#property indicator_color1 clrGreen

#property indicator_width1 4

#property indicator_color2 clrRed

#property indicator_width2 4

#property indicator_color3 Teal

#property indicator_color4 Teal

#property indicator_color5 Black

#property indicator_minimum 0

#property indicator_maximum 0.1

extern int Amplitude = 2;

extern bool alertsOn = true;

extern bool alertsMessage = true;

extern bool alertsSound = true;

extern bool alertsNotify = true;

extern bool alertsEmail = true;

extern string soundfile = "alert2.wav";

bool nexttrend;

double minh, maxl, up[], down[], trend[], atrlo[], atrhi[];

int init () {

SetIndexBuffer(0, up);

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexLabel(0, "up");

SetIndexBuffer(1, down);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexLabel(1, "down");

SetIndexBuffer (2, atrlo);

SetIndexStyle (2, DRAW_NONE);

SetIndexBuffer (3, atrhi);

SetIndexStyle (3, DRAW_NONE);

SetIndexBuffer (4, trend);

//---

SetIndexEmptyValue (0, 0.0);

SetIndexEmptyValue (1, 0.0);

SetIndexEmptyValue (4, 0.0);

nexttrend = 0;

minh = High;

maxl = Low;

return (0);

}

int start () {

double atr, ll, hh, lma, hma;

int workbar = 1;

int c = IndicatorCounted ();

if (c < 0) {

return (- 1);

}

for (int i = Bars - 1 - c; i >= workbar; i --) {

ll = iLow (Symbol (), Period (),

iLowest (Symbol (), Period (), MODE_LOW, Amplitude, i));

hh = iHigh (Symbol (), Period (),

iHighest (Symbol (), Period (), MODE_HIGH, Amplitude, i));

lma = iMA (NULL, 0, Amplitude, 0, MODE_SMA, PRICE_LOW, i);

hma = iMA (NULL, 0, Amplitude, 0, MODE_SMA, PRICE_HIGH, i);

trend = trend;

atr = iATR (Symbol (), 0, 100, i) / 2;

if (nexttrend == 1) {

maxl = MathMax (ll, maxl);

if (hma < maxl && Close < Low) {

trend = 1;

nexttrend = 0;

minh = hh;

}

}

if (nexttrend == 0) {

minh = MathMin (hh, minh);

if (lma > minh && Close > High) {

trend = 0;

nexttrend = 1;

maxl = ll;

}

}

if (trend == 0.0) { //-------------------------------------------------------------------------------------------

if (trend != 0.0) {

up = down;

up = up;

} else {

up = MathMax (maxl, up);

}

atrhi = up + atr;

atrlo = up - atr;

down = 0.0;

} else {

if (trend != 1.0) {

down = up;//-------------------------------------------------------------------------------------------

down = down;

} else {

down = MathMin (minh, down);

}

atrhi = down + atr;

atrlo = down - atr;

up = 0.0; //-------------------------------------------------------------------------------------------

}

if(alertsOn){

if((up[2]!=EMPTY_VALUE) && (down[2]!=EMPTY_VALUE) &&(up[1]!=EMPTY_VALUE)&&(down[1]==EMPTY_VALUE))lcheckalert();

if((up[2]!=EMPTY_VALUE) && (down[2]==EMPTY_VALUE) &&(up[1]!=EMPTY_VALUE)&&(down[1]!=EMPTY_VALUE))scheckalert();

}

}

return (0);

}

void lcheckalert()

{

static datetime candletime=0;

if(candletime!=Time[0])

{

string lmessage = "ZOXY is green on, this means a buy signal! Pair:"+_Symbol +" Price: "+Ask;

if (alertsMessage) Alert(lmessage);

if (alertsNotify) SendNotification(lmessage);

if (alertsEmail) SendMail(StringConcatenate(Symbol()," Buy signal "),lmessage);

if (alertsSound) PlaySound("alert2.wav");

candletime=Time[0];

}

}

void scheckalert()

{

static datetime candletime=0;

if(candletime!=Time[0])

{

string smessage = "ZOXY is Red, this means a sell signal! Pair: "+_Symbol +" Price: "+Bid;

if (alertsMessage) Alert(smessage);

if (alertsNotify) SendNotification(smessage);

if (alertsEmail) SendMail(StringConcatenate(Symbol()," Sell signal "),smessage);

if (alertsSound) PlaySound("alert2.wav");

candletime=Time[0];

}

}

zoxy.mq4

xtractalpha

SetIndexEmptyValue() EMPTY_VALUE ne olursa olsun == 0 değil, 2147483647. Ayrıca bu kodda önce temizlemeniz gereken yeniden boyama sorunlarınız var.

 

Lütfen, birisi bu göstergeyi grafikte uyarı(zaten içinde) oklarını gösterecek şekilde düzeltebilir ve ayrıca yalnızca ilk mumda bir ema'nın üstünde/altında neyin kapandığını uyarmalıdır.

mum_close_cross_ma_alert1.mq4

 
triip:
Lütfen, birisi bu göstergeyi grafikte uyarı(zaten içinde) oklarını gösterecek şekilde düzeltebilir ve ayrıca yalnızca ilk mumda bir ema'nın üstünde/altında neyin kapandığını uyarmalıdır. mum_close_cross_ma_alert1.mq4

gezi

Şuna bir göz atın: https://www.mql5.com/en/forum/general

Hızlı ma dönemini 1'e ayarlayın, ardından fiyat hareketli ortalamayı (slo ma) geçiyormuş gibi olacaktır.

 

Çok teşekkür ederim, yardımın olmadan çözemedim.

(ps. kodu çalışıyor).

İyi günler!

Neden: