Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
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.
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Ş);
}
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
}
}
}
}
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--)
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 ......
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);
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.