![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Bu Advanced ADX göstergesini kullanarak bir EA yazısı yazmak istiyorum... Göstergeden değeri ve rengi nasıl çıkarabilirim...
Satın almak
ADX rengi yeşil ve (bu saat ADX> önceki saat ADX)
Satmak
ADX rengi kırmızı ve (bu saatteki ADX< önceki saatteki ADX)
Kendi başıma kodlamada abit denedim. Benim kuralıma göre kodlama doğru mu? Bana burada yardım et?
Teşekkür
sonik
for (i = Bars - 205; i >= 0; i --)
{
double adx1 =iCustom(NULL, 0, "Advanced_ADX",13,0,i);
double adx2 =iCustom(NULL, 0, "Advanced_ADX",13,1,i);
if ((adx1>adx2)&&(adx1 > adx1) // BUY
{ BUY routine}
if ((adx1<adx2)&&(adx1 < adx1) // SELL
{ SELL routine}
}ICözel Gösterge EA
//+------------------------------------------------------------------+
//| This MQL is generated by Expert Advisor Builder |
//| http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |
//| |
//| In no event will author be liable for any damages whatsoever. |
//| |
//| |
//+------------------- DO NOT REMOVE THIS HEADER --------------------+
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright "Expert Advisor Builder"
#property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 0.2;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 27;
extern bool UseTakeProfit = True;
extern int TakeProfit = 34;
extern bool UseTrailingStop = False;
extern int TrailingStop = 30;
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
double Buy1_1 = iOBV(NULL, 0, PRICE_LOW, Current + 0);
double Buy1_2 = iCustom(NULL, 0, "synthetic_", 22, 0, Current + 0);
double Sell1_1 = iOBV(NULL, 0, PRICE_HIGH, Current + 0);
double Sell1_2 = iCustom(NULL, 0, "synthetic_", 22, 0, Current + 0);
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
if (Buy1_1 != Buy1_2) Order = SIGNAL_BUY;
if (Sell1_1 != Sell1_2) Order = SIGNAL_SELL;
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+----------------------------------------------------------------merhaba
bu benim startegy'm
double Buy1_1 = iOBV(NULL, 0, PRICE_LOW, Mevcut + 0);
double Buy1_2 = iCustom(NULL, 0, "sentetik_", 22, 0, Geçerli + 0);
double Sell1_1 = iOBV(NULL, 0, PRICE_HIGH, Mevcut + 0);
double Sell1_2 = iCustom(NULL, 0, "sentetik_", 22, 0, Geçerli + 0);
özel göstergem obv çizgisini geçtiğinde piyasayı satmayı veya satın almayı istiyorum
ancak
çalışmıyor![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
kodda yanlış olan ne?_
2 renkli hint
Herkese selam,
Alttaki indi (Complex_Pairs1) yalnızca bir renge sahiptir. Birisi bana yardım edebilir ve bunun yerine 2 renge değiştirebilir mi? Yukarı çıkmak için mavi, aşağı inmek için Kırmızı. Tıpkı grafikteki indi gibi (Execute Line).
Kodu kendim değiştirmek için çok uğraştım ama başarılı olamadım.
Derlemeden sonra hiçbir hata olmadı, ancak indi'yi açmaya çalıştığımda hiçbir şey olmuyor.![](https://c.mql5.com/forextsd/smiles/cry_smile.png)
Bu muhtemelen siz yetenekli kodlayıcılar için çocuk oyuncağıdır ve umarım bundan bir şeyler öğrenebilirim.![](https://c.mql5.com/forextsd/smiles/embaressed_smile.png)
Teşekkür ederim!
Klondyke
Bir belge veya forum dizisi mi arıyorsunuz?
Merhaba, google'da bir uzmana özel bir göstergenin nasıl çizileceğine dair bir kullanıcı kılavuzu veya forum başlığı aramaya çalıştım. Aslında iCustom işlevinin nasıl daha iyi kullanılacağı hakkında bir bilgi ve birkaç örnek istiyorum .... Şimdiden teşekkürler!
Konunuzu iCustom fonksiyon başlığına taşıdım.
Umarım her şeyi bulursun.
Ayrıca bu gönderiye bakın https://www.mql5.com/en/forum
Konuyu anladım teşekkürler millet!
mQL ea'ya nasıl ekleneceğini bilen var mı?
icustom işlevini kullanan zig zag göstergesi.
denedim
double x = iCustom(NULL,PERIOD_M5,"ZigZag",3,0,0);
ancak yazdırma işlevimde çeşitli sayılar alıyorum.
Ayrıca çeşitli numaralar denedim.
herhangi bir yardım takdir edilmektedir.
mQL ea'ya nasıl ekleneceğini bilen var mı?
icustom işlevini kullanan zig zag göstergesi.
denedim
double x = iCustom(NULL,PERIOD_M5,"ZigZag",3,0,0);
ancak yazdırma işlevimde çeşitli sayılar alıyorum.
Ayrıca çeşitli numaralar denedim.
herhangi bir yardım takdir edilmektedir.Bir yol: iCustom(NULL,0,"ZigZag",derinlik,sapma,backstep,0,1)
zikzaklı
hey ajk....... zikzak, çoğu göstergeden farklıdır, çünkü zamanın büyük bir yüzdesi için değeri 0'dır, yalnızca ara sıra sıfır olmayan bir sayı ile..... bu, onu standart iCustom biçiminde neredeyse kullanılamaz hale getirir .....
// ---> zig = iCustom(NULL,0,"ZigZag",15,5,3, 0, i);
yararlı olması için neredeyse kesinlikle tüm "sıfır olmayan" sayıları depolamak için bir dizi oluşturmanız gerekecek..... örneğin;
if(zig>0)
{
zag[n] = zig;
}
o zaman genel olanı yapabilirsin
if(zag[1] > zag[2]) // bunu yap
başka // veya
if(zag[1] < zag[2]) // bunu yap
//------------
biraz daha fazlası var, ama temel fikir bu.....h
yardıma ihtiyacım var
merhaba..
Univeral MA Cross EA'yı buldum..
güzel bir EA..![](https://c.mql5.com/forextsd/smiles/smile.png)