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
Tünaydın.
Kod yazmaya ve anlamaya başlıyorum. Şimdiye kadar bunaldım.
MACD histogramını kullanarak ve tetik çizgisi histogramın üstünde ve altında kesiştiğinde bir adet yazmaya başlamak istiyorum.
Kodu anlamaya başlamak ve nasıl işlem gördüğünü görmek için çalışmasına izin vermek için basit bir program önerisi olan var mı?
Teşekkürler
Daniel
Trend Çizgisi-Excel/CSV'den İçe Aktarma=?
Merhaba, son günlerde bazı basit betikler yazdım, özellikle ObjectCreate (Ray=1 ile OBJ_TREND) bunun nasıl çalıştığı gerçekten güzel ama benim için biraz yakın veriye sahip olduğum hazır bir csv Dosyasından Nesneleri nasıl çizebilirim Yakın Hatlar, çünkü Şablonumu silip verileri bir komut dosyasıyla her ihtiyacım olduğunda içe aktarabilmek istiyorum,
bunun nasıl işe yarayacağına dair bir fikri olan var mı?
CSV'nin bir tarihi (zamansız) ve Yakın Değeri var (Satırlar için daha fazla veriye ihtiyacım olmazdı)
ve Komut Dosyası bu tarihten Ray = 1 ile bir Çizgi çizmeli ve rengi özelleştirmeli
belki komut dosyası açık grafiği (sembol) kontrol edebilir ve birden fazla ;-) varsa doğru csv dosyasını alabilir.
Lütfen birisi bana yardım edebilir mi
OrderDelete(OrderTicket()) için Hata
Herkese selam!
MQL4 programlamasında yeniyim ama diğer tarafta C++ biliyorum.
Ama ticaret işlevleriyle ilgili bazı sorunlarım var.
Bu benim sorunum :
Şununla bekleyen bir sipariş oluşturuyorum:
bilet = OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-5*Point,slippage,0,0,"",0,0,Yeşil);
ve programın başka bir noktasında onu silmek istiyorum:
if (OrderSelect(ticket,SELECT_BY_TICKET)) OrderDelete(OrderTicket());
HATA 4108! Niye ya ? Bilet numarası doğru, yazdırıyorum.
Ama kullanırsam:
if (OrderSelect(pozisyon, SELECT_BY_POS))OrderDelete(OrderTicket());
tamam!
Niye ya ?
Desteğiniz ve forum için teşekkürler.
EA'yı Sonlandırmak İçin Kod ???
Herkese selam,
Bir EA'yı sonlandıracak kod arıyorum. Yazdığım küçük bir martingale gönderdim. Hesap Düşüşü Yüzdesine ulaştığında tüm Bekleyen ve Açık Emirleri Kapatacağı yere sahibim. Ayrıca, Günlük Kâr Hedefine ulaşıldığında ticareti durdurmayı da başardım. Ertesi gün tekrar ticarete başlar. (Kodlarını kullandığımdan beri SWB Grid yazan kişiye teşekkürler.)
Ancak, belirli bir koşula ulaştığında EA'nın sonlandırılmasını istiyorum. Diyelim ki, Max Percentage Drawdown'a ulaştı ve bekleyen tüm emirleri ve açık pozisyonları kapattı. Bu noktada, EA'nın kendisini sonlandırmasını istiyorum, böylece EA'yı grafikten çıkarana ve tekrar yerine koyana kadar tekrar ticarete başlamaz.
İşte EA. Herhangi bir öneri veya yardım büyük beğeni topluyor!
Teşekkürler,
Joe
"'\end_of_program' - dengesiz sol parantez" konusunda Yardıma ihtiyacınız var
Merhaba, bir EA üzerinde çalışıyorum ve derlerken sürekli bir hata mesajı alıyorum: "'\end_of_program' - dengesiz sol parantez." Genellikle bu hata mesajı, tek sayıda sol ve sağ parantez ile ilgilidir. Ancak, kodlarımı yüksek ve düşük kontrol ettim ve eşit sayıda sol ve sağ parantezim olduğunu gördüm. Bu yüzden, nerede yanlış gittiğini bulamamak beni gerçekten deli ediyor. Biri kodlarımı kontrol edip nasıl düzelteceğimi söyleyebilir mi? Milyonlarca kez teşekkürler. Kodlarım aşağıda yayınlanmıştır:
//+------------------------------------------- -------------------+
//| Breakout.mq4 |
//| pooh |
//| |
//+------------------------------------------- -------------------+
#özellik telif hakkı "Pooh"
#özellik bağlantısı ""
//--- giriş parametreleri
extern int UzunlukI=23;//pazara girmek için
extern int UzunlukO=7;//çıkış için
dış çift Lot = 0.1; //sipariş boyutu için
harici int N1=14; // ATR için dönem
harici int NLots=1; //artırılmış sipariş lotu sayısı
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//----
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{
//----
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
//----
çift HLUzun, LL Uzun, HSkısa, LSkısa;
HLong=iYüksek(NULL,0,iEn Yüksek(NULL,0,2,LengthI,2));
LLong=iLow(NULL,0,iLow(NULL,0,1,LengthO,2));
LShort=iLow(NULL,0,iLow(NULL,0,1,LengthI,2));
HShort=iYüksek(NULL,0,iYüksek(NULL,0,2,LengthO,2));
int cnt, karyola,bilet, toplam;
toplam=SiparişToplam();
eğer (toplam<1)
{
if (iClose(NULL,0,1)>Hlong)
{
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,LLong,300000,"EA Uzun",123,0,Yeşil);
eğer (bilet>0)
{
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))
Print("Uzun sipariş açıldı : ",OrderOpenPrice());
}
başka
Print("Uzun sipariş açma hatası: ",GetLastError());
dönüş(0);
}
if (iClose(NULL,0,1)<LShort)
{
bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,HShort,0,0001,"EA Short",123,0,Kırmızı);
eğer (bilet>0)
{
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))
Print("Kısa sipariş açıldı:",OrderOpenPrice());
}
else Print("KISA sipariş açılırken hata oluştu:",GetLastError());
dönüş(0);
}
dönüş(0);
}
for(cnt=0;cnt<toplam;cnt++)
{ //10
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) // uzun pozisyon açıldı
{
// kapatılmalı mı?
if(Teklif<=Uzun)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);//pozisyonu kapat
dönüş(0);
}
//sondaki durağı değiştir
OrderModify(OrderTicket(),OrderOpenPrice(),LLong,OrderTakeProfit(),0,Yeşil);
dönüş(0);
}
başka
{
if(Sor>=HSkısa)
{OrderClose(OrderTicket(),OrderLots(),Ask,3,Purple);//pozisyonu kapat
dönüş(0);
}
//sondaki durağı değiştir
OrderModify(OrderTicket(),OrderOpenPrice(),HShort,OrderTakeProfit(),0,Red);
dönüş(0);
}
}
}
// toplam uzun ve kısa sipariş lotlarını al
double LOOrderLots=0;
double SOrderLots=0;
for(cnt=0,cnt<=toplam,cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderType()==OP_BUY)
LOrderLots=LOrderLots+OrderLots();
if(OrderSymbol()==Symbol()&&OrderType()==OP_SELL)
SOrderLots=LOrderLots+OrderLots();
}
// açık siparişi artır
for(karyola=0,karyola<=toplam,karyola++)
{ //1
// uzun sipariş için pozisyon ekle
if(OrderSelect(cot,SELECT_BY_POS,MODE_TRADES)==true) //açık emir varsa
{ if(OrderMagicNumber==123 && OrderSymbol()==Symbol()&&OrderType()==OP_BUY) // EA tarafından açık emir açıldıysa pooh abd tipi Uzun
{ //3
for(int i=1;i<=15;i++)
{ if(Bid>=OrderOpenPrice()+i*0.5*iATR(NULL,0,N1,0)&&(Bid<(OrderOpenPrice()+(i+1)*0.5*iATR(NULL,0,N1,0) ))&&LOSiparişLots<Çok*(i+1)) //4
{ bilet=OrderSend(Symbol(),OP_BUY,NLots*Lots,Ask,3,LLong,300000,"EA Long",123,0,Yeşil); ///5
eğer (bilet>0)
{ //6
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))
Print("Uzun sipariş açıldı : ",OrderOpenPrice());
} //6
başka
Print("Uzun sipariş açma hatası: ",GetLastError());
kırmak;
} //5
} ///4
dönüş(0);
//kısa sipariş için pozisyon ekle
if(OrderMagicNumber()==123 && OrderSymbol()==Symbol() && OrderType()==OP_SEL)
{ //7
for(int n2=1;n2<=15;n2++)
{ if(Ask(OrderOpenPrice()-(n2+1)*0.5*iATR(NULL,0,N1,0))&&SOrderLots<Lots*(n2+1)) //8
{ bilet=OrderSend(Symbol(),OP_SELL,NLots*Lots,Bid,3,HShort,0,0001,"EA Short",123,0,Kırmızı); //9
eğer (bilet>0)
{ // 10
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))
Print("Kısa sipariş açıldı : ",OrderOpenPrice());
} // 10
başka
Print("Kısa sipariş açma hatası: ",GetLastError());
kırmak;
} //9
} //8
dönüş(0);
} //7
} //3
} ///2
} //1
dönüş(0)
}
Basit bir göstergeyi kodlamak için bir kodlayıcıya İHTİYACINIZ
Bunu yapan bir göstergeyi kodlayacak birine ihtiyacım var:
Sadece 0,50,100 satır kullanarak basit bir Fibonacci üzerinde. Bir çubuk %50'nin üzerinde veya %50'nin altında kapandığında, ancak her ikisini birden değil de yukarıda mı yoksa altında mı kapatacağımı seçme seçeneğine sahip olduğumda. Bu yüzden, %50'nin altında bir kapanış arıyorsam, 50'nin üzerine her kapandığında uyarının çalmasını istemiyorum. Beni bir sesle uyarmasını ve bana bir e-posta ve/veya metin göndermesini istiyorum. Mümkün mü? Teşekkür ederim!!
RESİM: http://tinypic.com/r/dhbu6v/5
Basit mantığı kodlamaya çalışıyorum, yapamıyorum!
Merhaba Forum,
MQL4'te yeterince iyi olan sizler için bunun kodlaması çok basit bir şey olduğuna inanıyorum ama acemiyim ve sorunlarım var, buradaki tüm dersleri okudum ama yine de çözemedim.
bu yüzden otomatik ticaret yapmak istiyorum
parti büyüklüğü 0.1
stoploss = 30 pip
kar hedefi 50 pip
AUDUSD çifti
02:00 GMT ile 10:00 GMT arasında (yüksek fiyat - düşük fiyat) < 60 pip ise , o zaman AUDUSD'yi düşük fiyattan - 5 pipten sat veya AUDUSD'yi yüksek fiyat + 5 pip'ten satın al, aksi halde ticaret yok
Merhaba Forum,
MQL4'te yeterince iyi olan sizler için bunun kodlaması çok basit bir şey olduğuna inanıyorum ama acemiyim ve sorunlarım var, buradaki tüm dersleri okudum ama yine de çözemedim.
bu yüzden otomatik ticaret yapmak istiyorum
parti büyüklüğü 0.1
stoploss = 30 pip
kar hedefi 50 pip
AUDUSD çifti
02:00 GMT ile 10:00 GMT arasında (yüksek fiyat - düşük fiyat) < 60 pip ise , o zaman AUDUSD'yi düşük fiyattan - 5 pipten sat veya AUDUSD'yi yüksek fiyat + 5 pip'ten satın al, aksi halde ticaret yok[lang=pl]Merhaba, bu EA'yı kodlamanın sorun olmadığını düşünüyorum ama bir sorum var.
Ne zaman almak/satmak istiyorsunuz? Düşük-5 yüksek+5 seviyelerinde bekleyen siparişlere mi ihtiyacınız var?
Saygılarımızla,
Grzesiek[/lang]
[lang=pl]Merhaba, bu EA'yı kodlamanın sorun olmadığını düşünüyorum ama bir sorum var.
Ne zaman almak/satmak istiyorsunuz? Düşük-5 yüksek+5 seviyelerinde bekleyen siparişlere mi ihtiyacınız var?
Saygılarımızla,
Grzesiek[/lang]Merhaba,
yardım için teşekkürler
Evet, daha doğrusu 02:00 GMT ile 10:00 GMT saatleri arasındaki (kodda bu çok önemlidir) AUDUSD ticaret aralığı (yüksek fiyat ve düşük fiyat arasındaki fark) 60 pip'ten azdır, yani bu işlem yapılabilir bir sinyaldir. Yani fiyatlar düşük fiyata (02:00 ile 10:00 arası) - 5 pip ulaşırsa satarsınız ve fiyatlar yüksek + 5 pip'e ulaşırsa satın alırsınız.
misal
02:00 ile 10:00 arasında GBPUSD düşük fiyat 1.6000, yüksek 1.6050 idi, yani fiyatlar 1.5995'e ulaşırsa otomatik sat ve fiyat 1.6055'e ulaşırsa otomatik satın al 30 pip zarar durdur emrini otomatik olarak yerleştir ve 50 pip kar al .
vaktin yoksa nasıl başlayacağımı söyle, dersi okuyorum ama işi yapmak için pratiğim yok
Teşekkürler
Merhaba, bir EA üzerinde çalışıyorum ve derlerken sürekli bir hata mesajı alıyorum: "'\end_of_program' - dengesiz sol parantez." Genellikle bu hata mesajı, tek sayıda sol ve sağ parantez ile ilgilidir. Ancak, kodlarımı yüksek ve düşük kontrol ettim ve eşit sayıda sol ve sağ parantezim olduğunu gördüm. Bu yüzden, nerede yanlış gittiğini bulamamak beni gerçekten deli ediyor. Biri kodlarımı kontrol edip nasıl düzelteceğimi söyleyebilir mi? Milyonlarca kez teşekkürler. Kodlarım aşağıda yayınlanmıştır:
//+------------------------------------------- -------------------+
//| Breakout.mq4 |
//| pooh |
//| |
//+------------------------------------------- -------------------+
#özellik telif hakkı "Pooh"
#özellik bağlantısı ""
//--- giriş parametreleri
extern int UzunlukI=23;//pazara girmek için
extern int UzunlukO=7;//çıkış için
dış çift Lot = 0.1; //sipariş boyutu için
harici int N1=14; // ATR için dönem
harici int NLots=1; //artırılmış sipariş lotu sayısı
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//----
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{
//----
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
//----
çift HLUzun, LL Uzun, HSkısa, LSkısa;
HLong=iYüksek(NULL,0,iEn Yüksek(NULL,0,2,LengthI,2));
LLong=iLow(NULL,0,iLow(NULL,0,1,LengthO,2));
LShort=iLow(NULL,0,iLow(NULL,0,1,LengthI,2));
HShort=iYüksek(NULL,0,iYüksek(NULL,0,2,LengthO,2));
int cnt, karyola,bilet, toplam;
toplam=SiparişToplam();
eğer (toplam<1)
{
if (iClose(NULL,0,1)>Hlong)
{
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,LLong,300000,"EA Uzun",123,0,Yeşil);
eğer (bilet>0)
{
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))
Print("Uzun sipariş açıldı : ",OrderOpenPrice());
}
başka
Print("Uzun sipariş açma hatası: ",GetLastError());
dönüş(0);
}
if (iClose(NULL,0,1)<LShort)
{
bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,HShort,0,0001,"EA Short",123,0,Kırmızı);
eğer (bilet>0)
{
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))
Print("Kısa sipariş açıldı:",OrderOpenPrice());
}
else Print("KISA sipariş açılırken hata oluştu:",GetLastError());
dönüş(0);
}
dönüş(0);
}
for(cnt=0;cnt<toplam;cnt++)
{ //10
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) // uzun pozisyon açıldı
{
// kapatılmalı mı?
if(Teklif<=Uzun)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);//pozisyonu kapat
dönüş(0);
}
//sondaki durağı değiştir
OrderModify(OrderTicket(),OrderOpenPrice(),LLong,OrderTakeProfit(),0,Yeşil);
dönüş(0);
}
başka
{
if(Sor>=HSkısa)
{OrderClose(OrderTicket(),OrderLots(),Ask,3,Purple);//pozisyonu kapat
dönüş(0);
}
//sondaki durağı değiştir
OrderModify(OrderTicket(),OrderOpenPrice(),HShort,OrderTakeProfit(),0,Red);
dönüş(0);
}
}
}
// toplam uzun ve kısa sipariş lotlarını al
double LOOrderLots=0;
double SOrderLots=0;
for(cnt=0,cnt<=toplam,cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderType()==OP_BUY)
LOrderLots=LOrderLots+OrderLots();
if(OrderSymbol()==Symbol()&&OrderType()==OP_SELL)
SOrderLots=LOrderLots+OrderLots();
}
// açık siparişi artır
for(karyola=0,karyola<=toplam,karyola++)
{ //1
// uzun sipariş için pozisyon ekle
if(OrderSelect(cot,SELECT_BY_POS,MODE_TRADES)==true) //açık emir varsa
{ if(OrderMagicNumber==123 && OrderSymbol()==Symbol()&&OrderType()==OP_BUY) //2- EA tarafından açık emir açıldıysa pooh abd tipi Uzun
{ //3
for(int i=1;i<=15;i++)
{ if(Bid>=OrderOpenPrice()+i*0.5*iATR(NULL,0,N1,0)&&(Bid<(OrderOpenPrice()+(i+1)*0.5*iATR(NULL,0,N1,0) ))&&LOSiparişLots<Çok*(i+1)) //4
{ bilet=OrderSend(Symbol(),OP_BUY,NLots*Lots,Ask,3,LLong,300000,"EA Long",123,0,Yeşil); ///5
eğer (bilet>0)
{ //6
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))
Print("Uzun sipariş açıldı : ",OrderOpenPrice());
} //6
başka
Print("Uzun sipariş açma hatası: ",GetLastError());
kırmak;
} //5
} ///4
dönüş(0);
//kısa sipariş için pozisyon ekle
if(OrderMagicNumber()==123 && OrderSymbol()==Symbol() && OrderType()==OP_SEL)
{ //7
for(int n2=1;n2<=15;n2++)
{ if(Ask(OrderOpenPrice()-(n2+1)*0.5*iATR(NULL,0,N1,0))&&SOrderLots<Lots*(n2+1)) //8
{ bilet=OrderSend(Symbol(),OP_SELL,NLots*Lots,Bid,3,HShort,0,0001,"EA Short",123,0,Kırmızı); //9
eğer (bilet>0)
{ // 10
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES))
Print("Kısa sipariş açıldı : ",OrderOpenPrice());
} // 10
başka
Print("Kısa sipariş açma hatası: ",GetLastError());
kırmak;
} //9
} //8
dönüş(0);
} //7
} //3
} ///2
} //1
dönüş(0)
}[lang=pl]Merhaba, OrderMagicNumer işlevinde çok az hata oldu, iki dengesiz ")" sonunda () kullanmalısınız. For döngüsünde ";" kullanmalısınız. yerine ",".
Dengesiz parantez bulmanız gerekiyorsa size Notepad ++ öneririm [/lang]