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
EA sorusu
Merhaba Codersguru,
Programlamayı öğrenmeye çalışıyorum ve materyalinizi kullanıyorum, mükemmel olduğunu söylememe izin verin! adım adım ve takip etmesi basit, bunun için teşekkürler.
Bir sorum var, EA için örnek olarak ema crossover kullandığınız için ema yerine stepMA_7.2 göstergesi kullanmayı düşünüyordum. stepMA_7.2'nin işe yarayacağını düşünüyor musunuz? veya kodun yeniden düzenlenmesi gerekecek mi yoksa daha fazla ek kod gerekebilir mi?
Koddaki sadece bir gösterge takasının ortaya çıkması gerektiğini düşünüyordum.
Şimdiden teşekkürler
Şerefe.
Bu yanlış: önceki çubuklar pozitif sayılır
Teşekkür ederim.
Hala bazı sorunlar yaşıyorum. Alış emirleri doğru bir şekilde açılır, ancak çıkış koşulları göz ardı edilerek tümü stoploss'ta kapatılır.
//| EA Stripped Down.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
extern double StopLoss =13.0;
extern double MA_Open =12.0;
extern double MA_Close =12.0;
extern double MA_Exit =6.0;
extern double Lots =50.0;
#define MAGICMA 20050610
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
//+------------------------------------------------------------------+
double MA_CLOSE;
double MA_OPEN;
double MA_EXIT_0;
double MA_EXIT_1;
int res;
if(Volume[0]>1) return;
MA_CLOSE=iMA(NULL,0,MA_Close,1,MODE_SMA,PRICE_CLOSE,0);
MA_OPEN=iMA(NULL,0,MA_Open,1,MODE_SMA,PRICE_OPEN,0);
MA_EXIT_0=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,0,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if((MA_CLOSE-MA_OPEN>=1*Point) && MA_EXIT_0>MA_EXIT_1)
{
res=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-StopLoss*Point,0,"",MAGICMA,0,Blue);
return;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
if(Volume[0]>1) return;
MA_EXIT_0=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,0);
MA_EXIT_1=iMA(NULL,PERIOD_H1,MA_Exit,1,MODE_LWMA,PRICE_WEIGHTED,1);
if(OrderType()==OP_BUY)
{
if(MA_EXIT_0<=MA_EXIT_1) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
return;
}
//+------------------------------------------------------------------+
}Başka bir göstergenin hareketli ortalaması
Anladım.
bir aralıktaki açık pozisyonları kontrol etme
x pip içindeki açık pozisyonları kontrol etmeye çalışıyorum, eğer açık pozisyon yoksa bir tane açacak. Çalışmıyor ve sürekli pozisyon açıyor, yardımcı olabilecek var mı?
if(satın alma pozisyonu)
{
weBeBuying = doğru;
toplam siparişler = SiparişlerToplam();
for(i=0;i<toplam siparişler;i++)
{
OrderSelect(i,SELECT_BY_POS);
if((OrderSymbol()==Symbol()) && (OrderMagicNumber()==magicNumber))
{
type = OrderType();
if((tür == OP_BUY) || (tür == OP_BUYLIMIT))
{
if(((Teklif+spread) - OrderOpenPrice()) > -0.0013)
weBeBuying = yanlış;
}
}
}
}
if(weBeBuying==doğru)
OrderSend(Symbol(),OP_BUY,lot,Teklif+spread,slippage,0,0,NULL,magicNumber,0,Green);
iCustom göstergesinin MA
Bir iCustom göstergesinin Hareketli Ortalaması 7, Düzgün'e başvurmak için ifadeyi bir ea'da nasıl kodlayabilirim? Bu, ilk gösterge verilerini kullanarak Hareketli Ortalama kullanmaya eşittir. Bunu bir iCustom göstergesini görüntüleyerek ve göstergenin MA'sına sahip olarak yapabilirsiniz (İlk gösterge verilerini kullanarak), ancak bunu bir adette nasıl kodlarsınız???
Lütfen bu açıklamada bana yardım edin!
Yardımlarınız için şimdiden teşekkür ederim!
Dave
Bu konuda yardımcı olabilecek var mı???? Lütfen!!!!
Sanırım anladım!:
LR0=iCustom(NULL,0,"Laguerre RSI UZUN & KISA GİRİŞ",0,0); //ALT GAMA
Bu konuda hala yardıma ihtiyacım var - Bana yardım edebilir misin!
MQL4 ile ilgili sorularınızı yazabilirsiniz, cevaplamak için elimden geleni yapacağım.
hata kodu için.
Tüm uzmanlarımda, aşağıdaki Coders Guru gibi bir uzmanla bile "OrderModify error 1" hata koduna sahip olduğumu hesabıma geri verdim,
niye ya?
Teşekkürler !
//+------------------------------------------- -------------------+
//| PriceCross.mq4 |
//| Kodlayıcılar Guru |
//| https://www.mql5.com/en/forum |
//+------------------------------------------- -------------------+
#özellik telif hakkı "Coders Guru"
#özellik bağlantısı "https://www.forex-tsd.com"
//---- İçerir
#Dahil etmek
//---- İşlem limitleri
harici çift TakeProfit = 200;
harici çift TrailingStop = 50;
harici çift StopLoss = 50;
dış çift Lot = 0.1;
extern int Kayma = 5;
//--- Harici seçenekler
harici int CurrentBar = 1;
extern int HedgeLevel = 6;
extern double Expiration = 7200;
dış int Boyut = 4;
harici int Adım = 1;
extern bool UseClose = true;
//--- Gösterge ayarları
harici int MaMode = 3;
extern int MaPeriod = 24;
//--- Genel değişkenler
int SihirliSayı = 101090;
string ExpertComment = "PriceCross";
bool LimitPairs = doğru;
bool LimitFrame = doğru;
int Zaman Çerçevesi = 60;
string LP[] = {"EURUSD","USDCHF","GBPUSD","USDJPY"}; // sınırlamak istediğiniz paris'i ekleyin/kaldırın.
bool Optimize = doğru;
int SayıOfTries = 5;
//+------------------------------------------- -------------------
int init()
{
dönüş(0);
}
int tanım()
{
dönüş(0);
}
//+------------------------------------------- -------------------
bool isNewSymbol(string current_symbol)
{
// tüm açılan siparişler arasında dolaş ve sembolleri karşılaştır
int toplam = SiparişlerToplam();
for(int cnt = 0 ; cnt < toplam ; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
string selected_symbol = OrderSymbol();
if (current_symbol == selected_symbol && OrderMagicNumber()==MagicNumber)
dönüş (Yanlış);
}
dönüş (Doğru);
}
//+------------------------------------------- -------------------+
int başlangıç()
{
int cnt, bilet, toplam,n;
çift eğilim ;
if(Bars<100) {Print("100'den küçük barlar"); dönüş (0);}
if(LimitFrame)
{
if(Period()!=TimeFrame) {Print("Bu EA bu TimeFrame ile çalışmıyor!"); dönüş (0);}
}
if(SınırÇiftleri)
{
if(AllowedPair(Symbol()) == false) {Print("Bu EA bu Para Birimi ile çalışmıyor!"); dönüş (0);}
}
trend = iMA(NULL,0,MaPeriod,0,MaMode,PRICE_CLOSE,CurrentBar);
//--- Ticaret koşulları
bool BuyCondition = false , SellCondition = false , CloseBuyCondition = false , CloseSellCondition = false ;
if (Open[1]trend)
BuyCondition = doğru;
if (Open[1]>trend && Close[1]<trend)
SellCondition = doğru;
if (Open[1]>trend && Close[1]<trend)
CloseBuyCondition = doğru;
if (Open[1]trend)
CloseSellCondition = doğru;
toplam = SiparişlerToplam();
if(toplam < 1 || isNewSymbol(Symbol()))
{
if(BuyCondition) //<-- SATIN AL koşulu
{
bilet = OpenOrder(OP_BUY); //<-- SATIN AL emrini aç
CheckError(bilet,"SATIN AL");
for(n=0 ; n< Boyut ; n++)
{
bilet = OpenPendingOrder(OP_BUYSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration);
}
dönüş(0);
}
if(SellCondition) //<-- SATIŞ koşulu
{
bilet = OpenOrder(OP_SELL); //<-- SATIŞ emrini aç
CheckError(bilet,"SAT");
for(n=0 ; n < Size ; n++)
{
bilet = OpenPendingOrder(OP_SELLSTOP,Lots,HedgeLevel+(n*Step+1),Slippage,StopLoss,TakeProfit,ExpertComment,MagicNumber,CurTime() + Expiration);
}
dönüş(0);
}
dönüş(0);
}
for(cnt=0;cnt<toplam;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) //<-- Uzun pozisyon açıldı
{
if(Kullan Kapat)
{
if(CloseBuyCondition) //<-- Siparişi kapatın ve çıkın!
{
CloseOrder(OrderType()); dönüş(0);
}
}
TrailOrder(OrderType()); dönüş(0); //<-- Siparişi takip etme
}
if(OrderType()==OP_SELL) //<-- Kısa pozisyona git
{
if(Kullan Kapat)
{
if(CloseSellCondition) //<-- Siparişi kapatın ve çıkın!
{
CloseOrder(OP_SELL); dönüş(0);
}
}
TrailOrder(OrderType()); dönüş(0); //<-- Siparişi takip etme
}
}
}
dönüş(0);
}
//+------------------------------------------- -------------------+
....
Merhaba,
Bir siparişin zaten kapalı olduğunu bilebileceğimiz bir şey var mı?
İllüstrasyon şöyle:
2 bekleyen emir açıyorum.
açık #182 satın alma limiti 0.17 EURUSD 1.3005 sl'de: 1.2970 tp: 1.3013
açık #183 satın alma limiti 0.17 EURUSD 1.3000 sl'de: 1.2968 tp: 1.3011
o zamanlar
#182 siparişi, 0.17 EURUSD satın al 1.3005'te açıldı
1.3013'te #182 (1.3013 / 1.3015) kar al
#182 numaralı sipariş kapandıktan sonra 183 numaralı siparişi silmek istiyorum. Tetikleyici, eğer #182 numaralı sipariş kapatılırsa, o zaman 183 numaralı sipariş silinecektir.
Şerefe