![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
Çok teşekkürler!!! cockeyedcowboy, bu gerçekten harikaydı!!
Şimdi hata mesajı uzakta!
Ama 2. gösterge çizilmedi ve neden bilmiyorum
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);
İkinci tamponla ilgili bir sorununuz var çünkü hesaplar için veri yok.
Buffer_Mom , ardından Buffer_Ma içindeki TÜM öğeleri hesaplamaya çalışın.
Misal:
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
for(int i=0; i<limit; i++)
{
Buffer_Mom=iMomentum(NULL,Timeframe_Momentum,Periode_Momentum,PRICE_CLOSE,i);
}
for( i=0; i<limit; i++)
{
Buffer_Ma=iMAOnArray(Buffer_Mom,0,Periode_MA_Momentum,0,MODE_SMA,i);
}
return(0);
}İyi şanlar.
Belirli bir çubuğun OHLC'sini bulma
Biri bana MQL kodunu kullanarak belirli bir çubuğun kapanış fiyatını nasıl öğrendiğimi söyleyebilir mi? Bir bara saatine kadar referans verebilir miyim?
yani: close_price_of_bar = Close("04:59:00 AM") ... keşke bu kadar kolay olsaydı!
Teşekkür ederim
selam millet!
tamam başka bir büyük sorunum var...
bu durum nasıl kodlanır:
yalnızca ilk kez uzun veya kısa girin
(yani, takip eden çok sayıda uzun sinyalim varsa, yalnızca ilk seferde girin)
Herkes bana bu konuda yardımcı olabilir ödeyeceğim
bu benim satın alma koşulum için basit kodum:
//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);
}
}Biri bana MQL kodunu kullanarak belirli bir çubuğun kapanış fiyatını nasıl öğrendiğimi söyleyebilir mi? Bir bara saatine kadar referans verebilir miyim?
yani: close_price_of_bar = Close("04:59:00 AM") ... keşke bu kadar kolay olsaydı!
Teşekkür ederimBunu dene:
close_price_of_bar = iClose (Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59"));
Al veya Sat
Herkese merhaba,
Her zaman birden fazla pozisyona açık olan EA Satın Al ve EA Sat'a sahibim. Sadece 1(bir) alış pozisyonuna ve 1(bir) satış pozisyonuna ve 1(bir) hesapta izin veren kodun nasıl değiştirileceği veya değiştirileceği konusunda yardım almak istiyorum.
SL ve TP, Fiyat Hedefini kullanacak, yani Alış fiyatı Fiyat Hedefine ulaştıysa, pozisyonu kapatacaktır. Satış fiyatı ile aynı.
Bu forumdaki kod uzmanlarının yardımını takdir ediyorum.
Teşekkür ederim.
=s21=
Al ve sat
ayy...
İşte EA Satın Al.
Merhaba, sadece bir siparişin açılması gerekiyorsa, bir sonraki koşulu ekleyebilirsiniz: If (OrdersTotal()==0).
Yani SATIN AL emirleri için kurallarınız şöyle olacak:
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
[/CODE]
So you will not get second-third-... orders opened until you current order open.
hy folks !
ok i have another big problem...
how to code this condition :
enter long or short only first time
(so if i have many following long signal ea enter only at first time)
i'll pay everyone could help me on this
this is my simple code for buy condition:
[CODE]
//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);
}
}Bunu deneyin: close_price_of_bar = iClose(Symbol(),PERIOD_M1,iBarShift(Symbol(),PERIOD_M1,StrToTime("04:59"));
harika! Tercümanın bir hatadan şikayet etmesini engellemek için fazladan 1 kapatma parantezi eklemek zorunda kaldım ama harika çalıştı.
Teşekkürler, Roger09
Merhaba, sadece bir siparişin açılması gerekiyorsa, bir sonraki koşulu ekleyebilirsiniz: If (OrdersTotal()==0).
Yani SATIN AL emirleri için kurallarınız şöyle olacak:
if (Order == SIGNAL_BUY && (OrdersTotal==0) && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount))))
teşekkürler Çığ,
ama benim için bir çözüm değil, çünkü TP'm var, aksi duruma kadar beklemiyorum
Diğerleri fikir? PM at sana ödeyeyim