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
Gerekli sarı çizgiler
Gerekli sarı çizgiler
Şimdi bize buradan nasıl kazanç elde edileceğini anlatın... Yoksa oyun mu kurmak gerekiyor?
Herkese merhaba, lütfen danışmanın kodunda bir hata bulmama yardım edin, her şeyi inceledim, her şey kodda doğru yazılmış gibi görünüyor, ancak bir nedenden dolayı program doğru ticaret yapmıyor! Fikir şudur: EA aynı yönde iki uzun mum aramalıdır (mumlar arasındaki uzunluk EA'da düzenlenir, yani yöne bağlı olarak iki minimum veya maksimum mum arasında), fiyat kırılırsa Son mumun minimum veya maksimum ters yönde, bir anlaşma açılmalıdır (Dosyaya ekli çizelgede durumların örnek fotoğrafları). EA, bu tür her uygun durumda alım satım açmalıdır ve bir nedenden dolayı alım satımları yalnızca günler arasındaki alım satım pencerelerinde açar. Programcılar için zor olmayan durum budur, lütfen yardım edin, hatayı düzeltin. Aşağıdaki danışman koduna ve ekteki dosyaya bakın.
Herkese merhaba, lütfen danışmanın kodunda bir hata bulmama yardım edin, her şeyi inceledim, her şey kodda doğru yazılmış gibi görünüyor, ancak bir nedenden dolayı program doğru ticaret yapmıyor! Fikir şudur: EA aynı yönde iki uzun mum aramalıdır (mumlar arasındaki uzunluk EA'da düzenlenir, yani yöne bağlı olarak iki minimum veya maksimum mum arasında), fiyat kırılırsa Son mumun minimum veya maksimum ters yönde, bir anlaşma açılmalıdır (Dosyaya ekli çizelgede durumların örnek fotoğrafları). EA, bu tür her uygun durumda alım satım açmalıdır ve bir nedenden dolayı alım satımları yalnızca günler arasındaki alım satım pencerelerinde açar. Programcılar için zor olmayan durum budur, lütfen yardım edin, hatayı düzeltin. Aşağıdaki danışman koduna ve ekteki dosyaya bakın.
İlk önce danışmanın bir bölümünü, bulunan mumları grafikte işaretlemesi için yazmak daha iyidir - her şey netleşecektir. Ve sizin durumunuzda aşağıdaki satırlar gereksizdir:
Şimdi bize buradan nasıl kazanç elde edileceğini anlatın... Yoksa oyun mu kurmak gerekiyor?
Kâr henüz mevcut değil. Trend boyunca iki olası fiyat hedefini beş ana noktaya göre hesaplamak için bir algoritma var, ancak ücretli bir abonelikle özel bir sunucuda hesaplanıyor. Hedefleri kendim hesaplamak istiyorum, algoritma üzerindeki çalışmalar henüz bitmedi.
MQL4'te programınız nasıl görünecek?
Eğer iyi bir stratejiniz varsa ve bunu paylaşmaya hazırsanız, bir danışman yazabilirim . Herkese açık veya özel mesajlarla tartışmaya davet ediyorum.
Anton, çözmeme yardım et, EA'ya takip eden durdurma işlevini ekledim, derledim ve iki hata veriyor. - Kafamı kırdım, baykuş yapmak için nasıl düzelteceğimi anlayamıyorum. Doğru, fiyat sırasıyla kanalın üst sınırına ve alt sınırına dokunduktan sonra işlemler eski stratejinin koşullarına göre kapatılır. Burada da bir şeylerin değişmesi gerektiğini anlıyorum. - DPR ordusunun adamlarına cevap verin.
#property telif hakkı "Telif Hakkı 2017, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#mülkiyet katı
//------------------------------------------------ ---------
dış çift Lot = 0,01;
harici int TakeProfit = 600;
harici int StopLoss = 25;
harici int Sihir = 0001;
dış int kayma = 3;
harici int TralType = 0; // 0-SAR, 1-ATR, 2-HMA
harici çift SAR_Adım = 0.02;
harici çift SAR_Max = 0,2;
harici int ATR_Period = 14;
harici çift ATR_K = 2.0;
harici int HMA_Period = 16;
harici int HMA_Method = 3;
harici int HMA_Shift = 0;
tarihsaat LBT;
//------------------------------------------------ ---------
extern string TMA = "TMA göstergesinin parametreleri";
extern string TimeFrame = "geçerli zaman çerçevesi";
extern int HalfLength = 56;
extern int Fiyat = PRICE_CLOSE;
harici çift ATRMÇarpan = 2.0;
harici int ATRPeriyot = 100;
extern bool Interpolate = true;
//------------------------------------------------ ---------
çift FiyatYüksek, FiyatDüşük, SL, TP;
int bileti;
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int OnInit()
{
if (Rakamlar == 3 || Basamaklar == 5)
{
Kâr Al *= 10;
StopLoss *= 10;
kayma *= 10;
}
dönüş(INIT_SUCCESSED);
}
//+------------------------------------------- --------------------+
//| Uzman başlatmasızlaştırma işlevi |
//+------------------------------------------- --------------------+
geçersiz OnDeinit(const int nedeni)
{
}
//+------------------------------------------- --------------------+
//| Uzman onay işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPperiod, Interpolate, 1, 0);
PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);
if(CountSell() == 0 && Teklif >= FiyatYüksek)
{
bilet = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, 0, 0, "TMA robotu", Magic, 0, Red);
eğer (bilet > 0)
{
SL = NormalizeDouble(Teklif + StopLoss*Puan, Rakamlar);
TP = NormalizeDouble(Teklif - TakeProfit*Puan, Rakamlar);
if (OrderSelect(bilet, SELECT_BY_TICKET))
if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("Satış emri değiştirme hatası !");
}
}
if (CountBuy() == 0 && Sor <= FiyatDüşük)
{
bilet = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robotu", Magic, 0, Blue);
eğer (bilet > 0)
{
TP = NormalizeDouble(Sor + Kâr Al*Puan, Rakamlar);
SL = NormalizeDouble(Sor - Kaybı Durdur*Puan, Rakamlar);
if (OrderSelect(bilet, SELECT_BY_TICKET))
if(!OrderModify(bilet, OrderOpenPrice(), SL, TP, 0))
Print("Satın alma siparişi değiştirilirken hata oluştu!");
} else Print("Satın alma siparişi açılırken hata oluştu");
}
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
//--------
//--------
dönüş(0);
}
//+------------------------------------------- --------------------+
//| Uzman onay işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPperiod, Interpolate, 1, 0);
PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);
if(CountSell() == 0 && Teklif >= FiyatYüksek)
{
bilet = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, 0, 0, "TMA robotu", Magic, 0, Red);
eğer (bilet > 0)
{
SL = NormalizeDouble(Teklif + StopLoss*Puan, Rakamlar);
TP = NormalizeDouble(Teklif - TakeProfit*Puan, Rakamlar);
if (OrderSelect(bilet, SELECT_BY_TICKET))
if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("Satış emri değiştirilirken hata oluştu!");
} else Print("Satış emri açılırken hata oluştu!");
}
if (CountBuy() == 0 && Sor <= FiyatDüşük)
{
bilet = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robotu", Magic, 0, Blue);
eğer (bilet > 0)
{
TP = NormalizeDouble(Sor + Kâr Al*Puan, Rakamlar);
SL = NormalizeDouble(Sor - Kaybı Durdur*Puan, Rakamlar);
if (OrderSelect(bilet, SELECT_BY_TICKET))
if(!OrderModify(bilet, OrderOpenPrice(), SL, TP, 0))
Print("Satın alma siparişi değiştirilirken hata oluştu!");
} else Print("Satın alma siparişi açılırken hata oluştu");
}
if (<= FiyatDüşük && CountSell() > 0) sor
{
for (int i = OrdersTotal() -1; i>0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)
if (!OrderClose(OrderTicket(), OrderLots(), Sor, Kayma, Siyah))
Print("Satış emri kapatılırken hata oluştu!");
}
}
}
if (Teklif >= FiyatYüksek && CountBuy() > 0)
{
for (int i = OrdersTotal() -1; i>0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)
if(!OrderClose(OrderTicket(), OrderLots(), Teklif, Kayma, Siyah))
Print("Satın alma siparişi kapatılırken hata oluştu!");
}
}
}
}
//+------------------------------------------- --------------------+
int SaySat()
{
int sayı = 0;
for (int ticaret = OrdersTotal()-1; ticaret>=0; ticaret--)
{
if(Sipariş Seçimi(ticaret, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
say++;
}
}
dönüş(sayım);
}//+---------------------------------------------- --------------------+
int CountBuy()
{
int sayı = 0;
for (int ticaret = OrdersTotal()-1; ticaret>=0; ticaret--)
{
if(Sipariş Seçimi(ticaret, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
say++;
}
}
dönüş(sayım);
}
//+------------------------------------------- --------------------+
//| Uzman başlatmasızlaştırma işlevi |
//+------------------------------------------- --------------------+
int tanım()
{
//+-------
//+-------
dönüş(0);
}
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int Başlat()
{
//-----
bool hatası = yanlış;
if (LBT!=Zaman[0]) {
if (Sipariş Toplamı()!=0) {
for (int i=0; i<SiparişlerToplam(); i++) {
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {
çift SL = OrderStopLoss();
if OrderType()==0) {
anahtar(TralType) {
durum 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
kırmak;
durum 1: SL = Yüksek[1] - iATR(NULL,0,ATR,Period,1)*ATR_K;
kırmak;
durum 2: SL = iCustom(NULL,0,"VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,"",1,0,0);
kırmak;
}
if (SL<OrderStopLoss())
SL = OrderStopLoss();
}
if (OrderType()==1) {
anahtar(TralType) {
durum 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
kırmak;
durum 1: SL = Düşük[1] + iATR(NULL,0,ATR,Period,1)*ATR_K;
kırmak;
durum 2: SL = iCustom(NULL,0,"VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,"",1,0,0);
kırmak;
}
if (SL>OrderStopLoss())
SL = OrderStopLoss();
}
if (SL!=OrderStopLoss()) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0))
hata=doğru;
}
}
}
}
eğer (!hata)
LBT = Zaman[0];
}
dönüş(0);
}
//+------------------------------------------- --------------------+
Bu alanda deneyim kazanmak için ilginç fikirleriniz ve stratejileriniz için ücretsiz 25 danışman yazacağım.
19 danışman kaldı
Andrey , çözmeme yardım et, EA'ya takip eden durdurma işlevini ekledim, derledim ve iki hata veriyor. - Kafamı kırdım, baykuş yapmak için nasıl düzelteceğimi anlayamıyorum. Doğru, fiyat sırasıyla kanalın üst sınırına ve alt sınırına dokunduktan sonra işlemler eski stratejinin koşullarına göre kapatılır. Burada da bir şeylerin değişmesi gerektiğini anlıyorum. - DPR ordusunun adamlarına cevap verin.
#property telif hakkı "Telif Hakkı 2017, MetaQuotes Software Corp."
#özellik bağlantısı "https://www.mql5.com"
#özellik sürümü "1.00"
#mülkiyet katı
//------------------------------------------------ ---------
dış çift Lot = 0,01;
harici int TakeProfit = 600;
harici int StopLoss = 25;
harici int Sihir = 0001;
dış int kayma = 3;
harici int TralType = 0; // 0-SAR, 1-ATR, 2-HMA
harici çift SAR_Adım = 0.02;
harici çift SAR_Max = 0,2;
harici int ATR_Period = 14;
harici çift ATR_K = 2.0;
harici int HMA_Period = 16;
harici int HMA_Method = 3;
harici int HMA_Shift = 0;
tarihsaat LBT;
//------------------------------------------------ ---------
extern string TMA = "TMA göstergesinin parametreleri";
extern string TimeFrame = "geçerli zaman çerçevesi";
extern int HalfLength = 56;
extern int Fiyat = PRICE_CLOSE;
harici çift ATRMÇarpan = 2.0;
harici int ATRPeriyot = 100;
extern bool Interpolate = true;
//------------------------------------------------ ---------
çift FiyatYüksek, FiyatDüşük, SL, TP;
int bileti;
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int OnInit()
{
if (Rakamlar == 3 || Basamaklar == 5)
{
Kâr Al *= 10;
StopLoss *= 10;
kayma *= 10;
}
dönüş(INIT_SUCCESSED);
}
//+------------------------------------------- --------------------+
//| Uzman başlatmasızlaştırma işlevi |
//+------------------------------------------- --------------------+
geçersiz OnDeinit(const int nedeni)
{
}
//+------------------------------------------- --------------------+
//| Uzman onay işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPperiod, Interpolate, 1, 0);
PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPperiod, Interpolate, 2, 0);
if(CountSell() == 0 && Teklif >= FiyatYüksek)
{
bilet = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, 0, 0, "TMA robotu", Magic, 0, Red);
eğer (bilet > 0)
{
SL = NormalizeDouble(Teklif + StopLoss*Puan, Rakamlar);
TP = NormalizeDouble(Teklif - TakeProfit*Puan, Rakamlar);
if (OrderSelect(bilet, SELECT_BY_TICKET))
if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("Satış emri değiştirme hatası !");
}
}
if (CountBuy() == 0 && Sor <= FiyatDüşük)
{
bilet = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robotu", Magic, 0, Blue);
eğer (bilet > 0)
{
TP = NormalizeDouble(Sor + Kâr Al*Puan, Rakamlar);
SL = NormalizeDouble(Sor - Kaybı Durdur*Puan, Rakamlar);
if (OrderSelect(bilet, SELECT_BY_TICKET))
if(!OrderModify(bilet, OrderOpenPrice(), SL, TP, 0))
Print("Satın alma siparişi değiştirilirken hata oluştu!");
} else Print("Satın alma siparişi açılırken hata oluştu");
}
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int init()
{
//--------
//--------
dönüş(0);
}
//+------------------------------------------- --------------------+
//| Uzman onay işlevi |
//+------------------------------------------- --------------------+
geçersiz OnTick()
{
PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPperiod, Interpolate, 1, 0);
PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPperiod, Interpolate, 2, 0);
if(CountSell() == 0 && Teklif >= FiyatYüksek)
{
bilet = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, 0, 0, "TMA robotu", Magic, 0, Red);
eğer (bilet > 0)
{
SL = NormalizeDouble(Teklif + StopLoss*Puan, Rakamlar);
TP = NormalizeDouble(Teklif - TakeProfit*Puan, Rakamlar);
if (OrderSelect(bilet, SELECT_BY_TICKET))
if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
Print("Satış emri değiştirilirken hata oluştu!");
} else Print("Satış emri açılırken hata oluştu!");
}
if (CountBuy() == 0 && Sor <= FiyatDüşük)
{
bilet = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robotu", Magic, 0, Blue);
eğer (bilet > 0)
{
TP = NormalizeDouble(Sor + Kâr Al*Puan, Rakamlar);
SL = NormalizeDouble(Sor - Kaybı Durdur*Puan, Rakamlar);
if (OrderSelect(bilet, SELECT_BY_TICKET))
if(!OrderModify(bilet, OrderOpenPrice(), SL, TP, 0))
Print("Satın alma siparişi değiştirilirken hata oluştu!");
} else Print("Satın alma siparişi açılırken hata oluştu");
}
if (<= FiyatDüşük && CountSell() > 0) sor
{
for (int i = OrdersTotal() -1; i>0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)
if (!OrderClose(OrderTicket(), OrderLots(), Sor, Kayma, Siyah))
Print("Satış emri kapatılırken hata oluştu!");
}
}
}
if (Teklif >= FiyatYüksek && CountBuy() > 0)
{
for (int i = OrdersTotal() -1; i>0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)
if(!OrderClose(OrderTicket(), OrderLots(), Teklif, Kayma, Siyah))
Print("Satın alma siparişi kapatılırken hata oluştu!");
}
}
}
}
//+------------------------------------------- --------------------+
int SaySat()
{
int sayı = 0;
for (int ticaret = OrdersTotal()-1; ticaret>=0; ticaret--)
{
if(Sipariş Seçimi(ticaret, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_SELL)
say++;
}
}
dönüş(sayım);
}//+---------------------------------------------- --------------------+
int CountBuy()
{
int sayı = 0;
for (int ticaret = OrdersTotal()-1; ticaret>=0; ticaret--)
{
if(Sipariş Seçimi(ticaret, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
say++;
}
}
dönüş(sayım);
}
//+------------------------------------------- --------------------+
//| Uzman başlatmasızlaştırma işlevi |
//+------------------------------------------- --------------------+
int tanım()
{
//+-------
//+-------
dönüş(0);
}
//+------------------------------------------- --------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- --------------------+
int Başlat()
{
//-----
bool hatası = yanlış;
if (LBT!=Zaman[0]) {
if (Sipariş Toplamı()!=0) {
for (int i=0; i<SiparişlerToplam(); i++) {
if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {
çift SL = OrderStopLoss();
if OrderType()==0) {
anahtar(TralType) {
durum 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
kırmak;
durum 1: SL = Yüksek[1] - iATR(NULL,0,ATR,Period,1)*ATR_K;
kırmak;
durum 2: SL = iCustom(NULL,0,"VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,"",1,0,0);
kırmak;
}
if (SL<OrderStopLoss())
SL = OrderStopLoss();
}
if (OrderType()==1) {
anahtar(TralType) {
durum 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
kırmak;
durum 1: SL = Düşük[1] + iATR(NULL,0,ATR,Period,1)*ATR_K;
kırmak;
durum 2: SL = iCustom(NULL,0,"VininI_HMAsound&",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,"",1,0,0);
kırmak;
}
if (SL>OrderStopLoss())
SL = OrderStopLoss();
}
if (SL!=OrderStopLoss()) {
if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0))
hata=doğru;
}
}
}
}
eğer (!hata)
LBT = Zaman[0];
}
dönüş(0);
}
//+------------------------------------------- --------------------+
Andrey , anlamama yardım et, EA'ya takip eden durdurma işlevini ekledim, derledim ve iki hata veriyor. - Kafamı kırdım, baykuş yapmak için nasıl düzelteceğimi anlayamıyorum. Doğru, fiyat sırasıyla kanalın üst sınırına ve alt sınırına dokunduktan sonra işlemler eski stratejinin koşullarına göre kapatılır. Burada da bir şeylerin değişmesi gerektiğini anlıyorum. - DPR ordusunun adamlarına cevap verin.
Spam Gönderme
Yanlış bir şey yaptıysam özür dilerim. Doğru, nasıl spam attığımı anlamadım ... Bence iki yoldaşa iki mesaj gönderdim. Yoksa bu mümkün değil mi? - Suçlu.