Kodlama yardımı - sayfa 477

 

Merhaba usta kodlayıcı,

Resim a ve b'de çizim 1 olan bir PPO_alt göstergesi yazmaya çalışıyorum ama gerçek zamanlı modda doğru çizilmiyor

bu yüzden orijinal PPO'yu (grafik 2) değiştirmeye çalışıyorum ama yine de doğru değil. Lütfen bir göz atın ve ikisini de düzeltebilir misiniz?

Şimdiden teşekkürler.

not. Sizin için net değilse lütfen daha fazla soru sorun.

Dosyalar:
ppo_mod.rar  80 kb
 
download38:
Merhaba usta kodlayıcı,

Resim a ve b'de çizim 1 olan bir PPO_alt göstergesi yazmaya çalışıyorum ama gerçek zamanlı modda doğru çizilmiyor

bu yüzden orijinal PPO'yu (grafik 2) değiştirmeye çalışıyorum ama yine de doğru değil. Lütfen bir göz atın ve ikisini de düzeltebilir misiniz?

Şimdiden teşekkürler.

not. Sizin için net değilse lütfen daha fazla soru sorun.

Neden iki döngüde tam olarak aynı şeyi yapıyorsun?

 

Merhaba Mladen

yardıma ihtiyacım var

canlı fiyat alamıyorum lütfen yardım edin

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

//| uzman başlatma işlevi |

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

#özellik göstergesi_chart_window

çift ExtMapBuffer1[];

harici int RSI_periode = 14;

harici int RSI_level = 50;

dış renk BuyColor = clrLime;

dış renk SellColor = clrRed;

dış int yatay = 20;

dış int dikey = 50;

dış int kaydırma = 1;

dış çift yüzde = 0.25;

extern string fontmode = "Arial";

harici int yazı tipi boyutu = 10;

dış renk yazı tipi rengi = clrSkyBlue;

dış int sütun aralığı = 100;

int init()

{

//----

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

//----

dönüş(0);

}

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

//| uzman sıfırlama işlevi |

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

int tanım()

{

//----

ObjectsDeleteAll();

ObjectDelete("BİLGİ");

//----

dönüş(0);

}

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

//| uzman başlatma işlevi |

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

int başlangıç()

{

//----

string symlist2[] = {"GÜZEL", "B.NIFTY", "XAUUSD", "ALTIN"};

dize sembolü;

string info2[] = {MODE_HIGH,MODE_LOW,MODE_BID,MODE_ASK};

dize bilgi etiketi;

string timeText[] = {"DayHigh","DayLow","Teklif","Sor"};

string yazı tipi = "Terminal";

int counted_bars=IndicatorCounted();

int symlimit = ArraySize(symlist2);

int zaman sınırı = ArraySize(info2);

for(int i=0;i<symlimit;i++)

{

sembol = symlist2;

Display("sembol" + sembol + i, yatay, dikey);

ObjectSetText("simge" + sembol + i, "SEMBOL", yazı tipi boyutu, yazı tipi, Pembe);

Display("sym" + sembol + i, yatay,dikey +((i+1)*18));

ObjectSetText("sym" + sembol + i, "" + sembol + "", yazı tipi boyutu, yazı tipi, Sarı);

for(int j=0;j<timelimit;j++)

{

bilgi etiketi = info2[j];

Display("bilgi etiketi" + j, yatay+((j+1)*100),dikey);

ObjectSetText("bilgi etiketi" + j, timeText[j], yazı tipi boyutu, yazı tipi, Pembe);

Display("infolabel2" + sembol + ((j+1)*sütun aralığı), yatay+((j+1)*100),dikey +((i+1)*18));

ObjectSetText("infolabel2" +symbol+ ((j+1)*sütun aralığı), infolabel , yazı tipi boyutu, yazı tipi, yazı tipi rengi);

}

}

//----

dönüş(0);

}

void Display(dize adı, int x, int y)

{

ObjectCreate(isim, OBJ_LABEL , 0, 0, 0);

ObjectSet(isim, OBJPROP_CORNER, 0);

ObjectSet(isim, OBJPROP_XDISTANCE, x);

ObjectSet(isim, OBJPROP_YDISTANCE, y);

ObjectSet(isim, OBJPROP_BACK, YANLIŞ);

}

 
nbtrading:
Neden iki döngüde tam olarak aynı şeyi yapıyorsun?

oh, sadece kolay görebilmek için noktalarla bir çizgi çizmek istiyorum.

Önemli olan, problemim olan multihigh.

Sorduğunuz için teşekkürler.

 

"Kapat AL" ve "Kapat SAT" algoritması

Merhaba Pro-Coders,

Birisinin "Alımı Kapat" ve "Kapat SATIŞ" algoritmasını gözden geçirip gözden geçiremeyeceğini merak ediyorum.

EA, stoploss veya trend değişikliği gerçekleştikten sonra yeni pozisyon açmıyor.

Sistem sadece pozisyonu kapatıyor, bir sonraki pozisyon yeni trend değişikliğinde açılacak ve bu da fırsat kaybına neden oluyor.

(Lütfen ekran görüntüsüne bakın).

void CheckForClose()

{

Yenileme Oranları();

double cl_diCustom0 = iCustom(s_symbol,TenkanKijunTf,"Tenkan Sen-Kijun Sen",0,Tenkan,Kijun,0,bar);

double cl_diCustom1 = iCustom(s_symbol,TenkanKijunTf,"Tenkan Sen-Kijun Sen",0,Tenkan,Kijun,1,bar);

double cl_diCustom2 = iCustom(s_symbol,TenkanKijunTf,"Tenkan Sen-Kijun Sen",0,Tenkan,Kijun,1,bar);

double cl_diCustom3 = iCustom(s_symbol,TenkanKijunTf,"Tenkan Sen-Kijun Sen",0,Tenkan,Kijun,1,bar+1);

double cl_diMA3 = iMA(s_symbol,MaTimeframe,MaPeriod,0,MaType,PRICE_CLOSE,bar);

double cl_diMA4 = iMA(s_symbol,MaTimeframe,MaPeriod,0,MaType,PRICE_CLOSE,bar+1);

for(int i=0;i<SiparişToplam(); i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;

if(OrderMagicNumber()!= MAGIC) devam ediyor;

if(OrderSymbol() != s_symbol) devam ediyor;

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

//| Kapat SATIN AL |

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

if(cl_diCustom0!=cl_diCustom1) // Trendi kontrol et

{

if(OrderType()==OP_BUY)

{

if(cl_diCustom0<cl_diCustom1 && cl_diCustom2=cl_diMA4)

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy);

if(satın alKapat==yanlış)

{

int ErrorCode = GetLastError();

string ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert= StringConcatenate("Satın Alma Siparişini Kapat - Hata ",ErrorCode,": ",ErrDesc);

if(ShowAlerts == true) Alert(ErrAlert);

string ErrLog=StringConcatenate("Teklif: ",MarketInfo(s_symbol,MODE_BID)," Lot: ",OrderLots()," Ticket: ",OrderTicket());

Yazdır(ErrLog);

}

kırmak;

} // mod

}

}

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

//| Kapat SAT |

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

if(cl_diCustom0!=cl_diCustom1)

{

if(OrderType()==OP_SEL)

{

if(cl_diCustom0>cl_diCustom1 && cl_diCustom2>cl_diMA3 && cl_diCustom3<=cl_diMA4)

{

bool sellClose= OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_ASK),Slippage*pipMultiplier,clCloseSell);

if(sellClose == false)

{

ErrorCode = GetLastError();

ErrDesc = ErrorDescription(ErrorCode);

ErrAlert=StringConcatenate("Satış Siparişini Kapat - Hata ",ErrorCode,": ",ErrDesc);

if(ShowAlerts==true) Alert(ErrAlert);

ErrLog=StringConcatenate("Sor: ",MarketInfo(s_symbol,MODE_ASK)," Lot: ",OrderLots()," Ticket: ",OrderTicket());

Yazdır(ErrLog);

}

kırmak;

} // mod

}

}

}

}

Dosyalar:
 
tfi_markets:
Merhaba Pro-Coders,

Birisinin "Alımı Kapat" ve "Kapat SATIŞ" algoritmasını gözden geçirip gözden geçiremeyeceğini merak ediyorum.

EA, stoploss veya trend değişikliği gerçekleştikten sonra yeni pozisyon açmıyor.

Sistem sadece pozisyonu kapatıyor, bir sonraki pozisyon yeni trend değişikliğinde açılacak ve bu da fırsat kaybına neden oluyor.

(Lütfen ekran görüntüsüne bakın).

Bunu değiştir :

for(int i=0;i<SiparişToplam(); i++)

buna

for(int i=OrdersTotal()-1;i>=0 ; i--)

 
mladen:
Ne olduğunu bize bildirin Belki sadece belirli bir metatrader yapısında bir sorun (şu anda yapı 788 kullanıyorum)

mayın yapımı 765

Pruchik bu sürümü burada sağladı,

https://www.mql5.com/en/forum/173588

ancak grafikte satır bırakarak değiştirilirse Gann sq9 göstergesinin satırlarını kaldırmak için ekstra komut dosyası gerekir.

 

bu ekran bilgisi sorunu için yardıma ihtiyacınız var ......

vegadigitalco:
Merhaba Mladen ve Tüm kıdemli Codder

bu ekran bilgisi sorunu için yardıma ihtiyacınız var ......

canlı fiyat alamıyorum lütfen yardım edin

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

//| uzman başlatma işlevi |

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

#özellik göstergesi_chart_window

çift ExtMapBuffer1[];

harici int RSI_periode = 14;

harici int RSI_level = 50;

dış renk BuyColor = clrLime;

dış renk SellColor = clrRed;

dış int yatay = 20;

dış int dikey = 50;

dış int kaydırma = 1;

dış çift yüzde = 0.25;

extern string fontmode = "Arial";

harici int yazı tipi boyutu = 10;

dış renk yazı tipi rengi = clrSkyBlue;

dış int sütun aralığı = 100;

int init()

{

//----

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

//----

dönüş(0);

}

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

//| uzman sıfırlama işlevi |

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

int tanım()

{

//----

ObjectsDeleteAll();

ObjectDelete("BİLGİ");

//----

dönüş(0);

}

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

//| uzman başlatma işlevi |

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

int başlangıç()

{

//----

string symlist2[] = {"GÜZEL", "B.NIFTY", "XAUUSD", "ALTIN"};

dize sembolü;

string info2[] = {MODE_HIGH,MODE_LOW,MODE_BID,MODE_ASK};

dize bilgi etiketi;

string timeText[] = {"DayHigh","DayLow","Teklif","Sor"};

string yazı tipi = "Terminal";

int counted_bars=IndicatorCounted();

int symlimit = ArraySize(symlist2);

int zaman sınırı = ArraySize(info2);

for(int i=0;i<symlimit;i++)

{

sembol = symlist2;

Display("sembol" + sembol + i, yatay, dikey);

ObjectSetText("simge" + sembol + i, "SEMBOL", yazı tipi boyutu, yazı tipi, Pembe);

Display("sym" + sembol + i, yatay,dikey +((i+1)*18));

ObjectSetText("sym" + sembol + i, "" + sembol + "", yazı tipi boyutu, yazı tipi, Sarı);

for(int j=0;j<timelimit;j++)

{

bilgi etiketi = info2[j];

Display("bilgi etiketi" + j, yatay+((j+1)*100),dikey);

ObjectSetText("bilgi etiketi" + j, timeText[j], yazı tipi boyutu, yazı tipi, Pembe);

Display("infolabel2" + sembol + ((j+1)*sütun aralığı), yatay+((j+1)*100),dikey +((i+1)*18));

ObjectSetText("infolabel2" +symbol+ ((j+1)*sütun aralığı), infolabel , yazı tipi boyutu, yazı tipi, yazı tipi rengi);

}

}

//----

dönüş(0);

}

void Display(dize adı, int x, int y)

{

ObjectCreate(isim, OBJ_LABEL, 0, 0, 0);

ObjectSet(isim, OBJPROP_CORNER, 0);

ObjectSet(isim, OBJPROP_XDISTANCE, x);

ObjectSet(isim, OBJPROP_YDISTANCE, y);

ObjectSet(isim, OBJPROP_BACK, YANLIŞ);

}
 

Merhaba arkadaşlar küçük bir isteğim var.. Bir metin dosyasından okuyup değerlerini bir dizi dizisine döndüren bir fonksiyon yazmaya çalışıyorum..metin dosyası birkaç satırdan oluşuyor, her biri bir çift adı dışında toplam çift sayısı olan ilk satır

Örneğin:

7

CADJPY

CHFJPY

EURJPY

GBPJPY

NZDJPY

USDJPY

AUDJPY

metaquotes web sitesinde aşağıdaki kodu buldum ama takıldım..bir dize dizisi oluşturmak istiyorum ve metindeki ilk satırı okuduktan sonra onu bu değere yeniden boyutlandırın ve ardından çift adıyla doldurun... biri bana yardım et güzelce lütfen!?

int handle, NL,i,pos[];

string str,word;

handle=FileOpen("test.txt",FILE_READ);//try to open file

if(handle==-1)return(0);// if not exist

if(FileSize(handle)==0){FileClose(handle); return(0); } //if empty

while(!FileIsEnding(handle))//read file to the end by paragraph. if you have only one string, omit it

{

str=FileReadString(handle);//read one paragraph to the string variable

if(str!="")//if string not empty

{

NL=0;

for(i=0;i<StringLen(str);i++)

{

if(StringGetChar(str,i)==10)// look for newline (Charcode:10) only

{

NL++;//yes, we found one more newline

ArrayResize(pos,NL);//increase array

pos[NL-1]=i;//write the number of newline position to array

}

}//now we have array with numbers of positions of all newline

for(i=0;i<=NL;i++)//start to read elements of string

{

if(i==0) word=StringSubstr(str,0,pos[0]);//the first element of string (in this case is the number 7)

else word=StringSubstr(str,pos+1,pos-pos-1);

}

}

}

FileClose(handle); //close file

return(0);

 
download38:
Merhaba usta kodlayıcı,

Resim a ve b'de çizim 1 olan bir PPO_alt göstergesi yazmaya çalışıyorum ama gerçek zamanlı modda doğru çizilmiyor

bu yüzden orijinal PPO'yu (grafik 2) değiştirmeye çalışıyorum ama yine de doğru değil. Lütfen bir göz atın ve ikisini de düzeltebilir misiniz?

Şimdiden teşekkürler.

not. Sizin için net değilse lütfen daha fazla soru sorun.

Biri for(i=0; i=0; i--) ile bunları ne zaman kullandığımız arasındaki farkı açıklayabilir mi?

Şimdiden teşekkürler.