![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
birkaç sorun daha
1. Sonuçlarda fark ettiğim şeylerden biri, eğer bir ticaret açıldıysa, önceki ticaret tamamlanana kadar başka bir tane açmadı, bunu değiştirmenin bir yolu var mı? örtüşen işlemler yapmak?![](https://c.mql5.com/forextsd/smiles/nerd.png)
(lütfen mümkünse çakışan işlemlerle ikinci bir dosya gönderin, yine de ikisini de test etmem gerekiyor)
2. basit soru,
500 veya 1000'lik bir başlangıç bakiyesi girdiğinizde test cihazı sonuçları göstermiyorsa, ancak 3.000 veya daha yüksekte gösteriyorsa, bu tam olarak ne anlama geliyor, (bu, başlangıç bakiyesinin o kadar düşük olduğu işlemlerde iflas ettiğiniz anlamına mı geliyor? ?)
Döngüden nasıl çıkılır?!
Kendi uyarılarımdan bazılarını ekliyorum ve sonunda bir miktar başarı elde ettim, ancak çoğu zaman kendime hiç bitmeyen bir uyarı döngüsü alıyorum ve bunu kırmanın tek yolu MT4'ü kapanmaya zorlamak, oraya nasıl bir ara verebilirim veya Kullanabileceğim bir klavye molası var mı?
temel sorularım için herhangi bir yardım için teşekkürler![](https://c.mql5.com/forextsd/smiles/mouth_closed.png)
Bana bunu gösterebilir misin/gösterir misin...
programlama hala kafamı karıştırıyor ...
Acaba bana çok basit bir konuda yol gösterebilir ve bunun gerçekleşmesi için kodun nasıl olması gerektiğini gösterebilir misiniz?
iki hareketli ortalama kesişir...sondaki durma ile bir sıraya girer...
extern double lots=1.0;
extern int MA1=1;
extern int MA2=5;
extern int trailingstop=8;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+Bu yardımcı programı kullandım ve bunu yarattım ....
//| 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. |
//| Use at your own risk. |
//| |
//| Please do not remove this header. |
//+------------------------------------------------------------------+
#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 = False;
extern double Lots = 1.0;
extern int Slippage = 0;
extern bool StopLossMode = False;
extern int StopLoss = 10;
extern bool TakeProfitMode = False;
extern int TakeProfit = 8;
extern bool TrailingStopMode = True;
extern int TrailingStop = 10;
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
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 = iClose("EURUSD", PERIOD_M1, Current + 0);
double Buy1_2 = iMA("EURUSD", PERIOD_M1, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);
double Sell1_1 = iClose("EURUSD", PERIOD_M1, Current + 0);
double Sell1_2 = iMA("EURUSD", PERIOD_M1, 5, 0, MODE_EMA, PRICE_CLOSE, 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(TrailingStopMode && 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(TrailingStopMode && 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 (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (TakeProfitMode) 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 (StopLossMode) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (TakeProfitMode) 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);
}
//+------------------------------------------------------------------+sorun şu ki, strateji test cihazında çalıştığında herhangi bir sonuç vermiyor.
Anladım! eğitimin için çok teşekkürler
iki basit sorum var sanırım..
heiken ashi Mumlarını varsayılan olarak 3 yerine 5 kalınlığında nasıl yapabilirim? Ne zaman yeni bir tablo açsam 3'e geri dönüyorlar.
Ayrıca, bir RSI göstergesinin değerine bağlı olarak mumun üstünde veya altında nasıl bir işaret yapabilirim?
Programlama hakkında biraz bilgim var ama bunun sözdizimini bilmiyorum... o yüzden hiçbir şey bilmiyormuşum gibi davran![](https://c.mql5.com/forextsd/smiles/angel_smile.png)
çok teşekkürler..bir şey bulursam yazarım![](https://c.mql5.com/forextsd/smiles/nerd.png)
PS bu uzman danışman oluşturucu GÜZEL, orada ve GÖSTERGE oluşturucu da var mı? bu harika olurduSadece Heiken Ashi'yi düzelttim .
Yeni - Sorular - Yardıma İhtiyacınız Var
Bu forumda yeniyim. Elit Bölümün değeri hakkında bana herhangi bir bilgi verebilecek biri olup olmadığını bilmek istiyorum (yukarıdaki bağlantıda neredeyse hiçbir bilgi bulunmayan satış konuşması dışında).
Ayrıca yukarıdaki bağlantının beni götürdüğü web sayfasından bir soru göndermeye çalıştım ama form sürekli alanlardan birinin boş olduğunu gösteriyor. Bu alan Öncelik alanıdır ve açılır kutuda hiçbir şey yoktur (hepsi boştur) ve o alanda bir değerim olması mümkün değildir. O yüzden bu şekilde soru gönderemiyorum.
DD
Bunu başka kimse deneyimledi mi? Alpari verilerini kullanarak sistemimi geriye dönük test ediyorum, 4107 geçersiz fiyat ve 131 geçersiz hacim hatası alıyorum. 4107, aldığı fiyat döviz çiftinden 4 ondalık basamak fazla olduğu için üretildi. OrderSend()'e ilettiğim fiyat önceden tanımlanmış Bid and Ask olduğundan 4107 aldığıma şaşırdım. Ayrıca bir Yorum ekledim(Teklif, " ", Sor); Bid ve Ask'ın ne döndürdüğünü görmek için OrderSend()'den önce. Ve Comment()'de bu uygun ondalık kesinlikti, ancak OrderSend() yine de hatayı üretecekti. Bid/Ask değerini bir değişkene atadım ve değişkende NormalizeDouble() kullanarak onu OrderSend()'e ilettim ve bu işe yarıyor.
Ancak, hala 131'i alıyorum ve bunun için bir geçici çözüm bilmiyorum.
PipChick, kişisel olarak elit kesime girmeye değmeyeceğini düşünüyorum.
Acemi.
Biraz c ++ biliyorum ama çok temel bazı kodlarla mücadele ediyorum.
İstediğim:
Fiyat 1.2788. 10 pip'e kadar yükselirse satın almak istiyorum. 10 pip düşerse satmak istiyorum.
Doğru koda sahip miyim?
OrderSend(Symbol(),OP_BUYSTOP,1,Sor+10*Puan,kayma,
(Sor+10*Puan)-10*Puan,
( Ask+10*Puan)+200*Puan”Sipariş yorumum”,0,0,Yeşil);
OrderSend(Symbol(),OP_SELLSTOP,1,Bid-10*Point,slippage,
(Teklif-10*Puan)+10*Puan,
(Teklif -10*Puan)-200*Puan”Sipariş yorumum”,0,0,Yeşil);
http://www.metatrader.info/node/34 okuyorum ama kayboldum. Sabrınız için teşekkürler.
Merhaba,
Benim sorunum: MT3,
Çalışmıyor. Niye ya?
Teşekkürler, Bongo
satmak=yanlış;
satın=yanlış;
if ((C[1]>O[1])<O[0]) ise { buy=true; satmak=yanlış; }
if ((C[1]O[0]) ise { sat=true; buy=false; }