Nasıl kodlanır? - sayfa 237

 

Yazdığınız EA türüne bağlı olarak, yayılmayı da sürekli olarak saklamanız gerekebileceğini unutmayın. aksi halde işe yaramaz

 

YÜKSEK [0] -- sadece BAŞLAYAN geçerli çubuk

düşük için, bilmiyorum, belki düşük[1]

 

OrderSend(),OrderModify() koymak için doğru sıra

Bir gün önce forumda OrderSend() ve OrderModify() fonksiyonları hakkında bir konu okudum.

ve bu konu bana neden bazı EA'ların işe yarayıp diğerlerinin çalışmadığına dair bir ipucu veriyor ve OrderSend() ve OrderModify() işlevlerinin düzgün yazılıp yazılmadığını nasıl kontrol edeceğimi merak ediyorum.Örnek var mı?

 

herkese selam...

Lütfen bana MT4'teki tüm çiftlerin listesini almak için nasıl kod yazacağımı söyleyin?

Teşekkürler

Charles

 
sunshineh:
Merhaba,

Sor[1] yazmam doğru değil ama son tikten Ask-Fiyatını nasıl alabilirim??

Teşekkür ederim!

Keneleri gerçek zamanlı olarak kaydetmeniz ve ardından EA veya göstergenizden onlara erişmeniz gerekir. Hala ilgileniyorsanız, sizin için bir örnek kodlamaya çalışabilirim.

 
DooMGuarD:
herkese selam...

Lütfen bana MT4'teki tüm çiftlerin listesini almak için nasıl kod yazacağımı söyleyin?

Teşekkürler

Charles

Acele etmeyin adamım, Mql5'te yapmanın daha kolay olduğuna inanıyorum, bu yüzden işlerin oturmasını bekleyin.

 

bir değişkende sihirli eğilim değerleri almak ...

merhaba!!

Bir EA üzerinde çalışıyorum ve bir değişkende sihirli eğilim göstergesi değerlerini nasıl elde edebileceğimi merak ediyorum. iMA'nın hareketli ortalamalar için yaptığı gibi, sihirli trend için doğal bir işlev olmadığı açıktır.

Şimdiye kadar sıfırdan kodlamam gerekiyor gibi görünüyor. ama matematik hakkında herhangi bir bilgi bulamıyorum!

birisi yardım edebilir mi?

çok teşekkürler!!!

 
atch3000:
merhaba!!

Bir EA üzerinde çalışıyorum ve bir değişkende sihirli eğilim göstergesi değerlerini nasıl elde edebileceğimi merak ediyorum. iMA'nın hareketli ortalamalar için yaptığı gibi, sihirli trend için doğal bir işlev olmadığı açıktır.

Şimdiye kadar sıfırdan kodlamam gerekiyor gibi görünüyor. ama matematik hakkında herhangi bir bilgi bulamıyorum!

birisi yardım edebilir mi?

çok teşekkürler!!!

MQL4'te ICustom işlevinin nasıl kullanılacağı hakkında bilgi arayın. Bu fonksiyon ile EA'nızdaki harici göstergeleri arayabilirsiniz.

-adam

 

Robot - EA'yı yaklaşık 2 hareketli ortalama MA hızlı ve yavaş otomatikleştirin

#define SIGNAL_NONE 0

#define SIGNAL_BUY 1

#define SIGNAL_SELL 2

#define SIGNAL_CLOSEBUY 3

#define SIGNAL_CLOSESEL 4

harici int SihirliSayı = 0;

harici bool SignalMail = Yanlış;

extern bool EachTickMode = True;

dış çift Lot = 0,2;

extern int Kayma = 3;

extern bool UseStopLoss = True;

harici int StopLoss = 15;

extern bool UseTakeProfit = True;

harici int TakeProfit = 30;

extern bool UseTrailingStop = True;

extern int TrailingStop = 20;

int BarCount;

int Akım;

bool TickCheck = Yanlış;

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

//| uzman başlatma işlevi |

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

int init() {

BarCount = Barlar;

if (EachTickMode) Akım = 0; başka Akım = 1;

dönüş(0);

}

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

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

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

int tanım() {

dönüş(0);

}

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

//| uzman başlatma işlevi |

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

int start() {

int Sıra = SIGNAL_NONE;

int Toplam, Bilet;

çift StopLossLevel, TakeProfitLevel;

if (EachTickMode && Çubuklar != BarCount) TickCheck = False;

Toplam = SiparişlerToplam();

Sıra = SIGNAL_NONE;

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

//| Değişken Başlangıç |

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

double Var1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double Var2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double Buy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double Buy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double Sell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double Sell1_2 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double CloseBuy1_1 = iMA("EURUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double CloseBuy1_2 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double CloseSell1_1 = iMA("EURUSD", PERIOD_M5, 7, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

double CloseSell1_2 = iMA("GBPUSD", PERIOD_M5, 14, 0, MODE_SMA, PRICE_MEDIAN, Mevcut + 1);

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

//| Değişken Son |

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

//Konumu kontrol et

bool IsTrade = Yanlış;

for (int i = 0; i < Toplam; ben ++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {

IsTrade = Doğru;

if(OrderType() == OP_BUY) {

//Kapat

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

//| Sinyal Başla(Çıkış Satın Al) |

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

if (CloseBuy1_1 > CloseBuy1_2 && False) Sipariş = SIGNAL_CLOSEBUY;

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

//| Sinyal Sonu(Çıkış Satın Al) |

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

if (Sipariş == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Barlar != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Teklif, Rakamlar) + " Satın Alma Kapat");

if (!EachTickMode) BarCount = Çubuklar;

IsTrade = Yanlış;

devam etmek;

}

//Sondaki durdurma

if(UseTrailingStop && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Nokta * TrailingStop) {

if(OrderStopLoss() < Teklif - Nokta * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = Çubuklar;

devam etmek;

}

}

}

} başka {

//Kapat

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

//| Sinyal Başla(Çıkış Sat) |

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

if (CloseSell1_1 > CloseSell1_2False) Sipariş = SIGNAL_CLOSESELL;

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

//| Sinyal Sonu (Çıkış Sat) |

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

if (Sipariş == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Barlar != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Kapat Satış");

if (!EachTickMode) BarCount = Çubuklar;

IsTrade = Yanlış;

devam etmek;

}

//Sondaki durdurma

if(UseTrailingStop && TrailingStop > 0) {

if((OrderOpenPrice() - Sor) > (Nokta * TrailingStop)) {

if((OrderStopLoss() > (Sor + Nokta * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Çubuklar;

devam etmek;

}

}

}

}

}

}

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

//| Sinyal Başlıyor(Giriş) |

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

if (Buy1_1 < Buy1_2 && Yanlış) Sipariş = SIGNAL_BUY;

if (Sell1_1 < Sell1_2 && False) Sipariş = SIGNAL_SELL;

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

//| Sinyal Sonu |

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

//Satın almak

if (Sipariş == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Barlar != BarCount)))) {

if(!IsTrade) {

// Serbest marjı kontrol et

if (AccountFreeMargin() < (1000 * Lot)) {

Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());

dönüş(0);

}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Puan; başka StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Sor + TakeProfit * Puan; başka TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lot, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Bilet > 0) {

if (OrderSelect(Bilet, SELECT_BY_TICKET, MODE_TRADES)) {

Print("Satın alma emri açıldı : ", OrderOpenPrice());

if (SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Satın Alımı Aç");

} başka {

Print("SATIN AL emri açılırken hata oluştu : ", GetLastError());

}

}

if (EachTickMode) TickCheck = Doğru;

if (!EachTickMode) BarCount = Çubuklar;

dönüş(0);

}

}

//Satmak

if (Sipariş == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Barlar != BarCount)))) {

if(!IsTrade) {

// Serbest marjı kontrol et

if (AccountFreeMargin() < (1000 * Lot)) {

Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());

dönüş(0);

}

if (UseStopLoss) StopLossLevel = Teklif + StopLoss * Puan; başka StopLossLevel = 0.0;

if (UseTakeProfit) TakeProfitLevel = Teklif - TakeProfit * Puan; başka TakeProfitLevel = 0.0;

Bilet = OrderSend(Symbol(), OP_SELL, Lot, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sat(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

if(Bilet > 0) {

if (OrderSelect(Bilet, SELECT_BY_TICKET, MODE_TRADES)) {

Print(" SAT emri açıldı : ", OrderOpenPrice());

if (SignalMail) SendMail("[Sinyal Uyarısı]", "[" + Symbol() + "] " + DoubleToStr(Teklif, Rakamlar) + " Açık Satış");

} başka {

Print("SATIŞ emrini açarken hata: ", GetLastError());

}

}

if (EachTickMode) TickCheck = Doğru;

if (!EachTickMode) BarCount = Çubuklar;

dönüş(0);

}

}

if (!EachTickMode) BarCount = Çubuklar;

dönüş(0);

}

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

//hata nerede, bilmiyorum çünkü bana yardım et. Teşekkürler

 

Hangi hatayı alıyorsun?

Neden: