Uzman Danışmanlar: Simple MA Expert Advisor

 

Simple MA Expert Advisor:

Yeni Strateji Test Cihazını denemek isteyen ve herhangi bir EA'sı olmayanlar için bir şey.

Simple MA Expert Advisor

Author: Karlis Balcers

 

Test cihazında bir hata veriyor:

2010.04.28 06:27:44 Çekirdek 1 İşlem oluşturma hatası [2]

 
1Serg:

Test cihazında bir hata veriyor:

2010.04.28 06:27:44 Çekirdek 1 İşlem oluşturma hatası [2]

Lütfen en son sürüme güncelleyin ve ardından program dizininin kök dizininde metatester.exe dosyasını kontrol edin.
 
Renat:
Lütfen en son sürüme güncelleyin ve ardından program dizininin kök dizininde metatester.exe dosyasını olup olmadığını kontrol edin.

Teşekkürler, çalışıyor.

İyileştirici ve görselleştirme eksik.

 
1Serg:

İyileştirici ve görselleştirme eksik.

Optimize edici orada - sadece test penceresinin yüksekliğini artırın.

Görselleştirme daha sonra olacak.

 
Renat:

Optimize edici orada - sadece test penceresinin yüksekliğini artırın.

Görselleştirme daha sonra gelecek.

Harika!

 

Saygılar,

Bay / Bayan tsaktuo, K_eSimpleMA kodunuzu inceledim ve bir EA'nın yapısının nasıl olduğunu ve SMA çaprazlarıyla nasıl çalışılacağı gibi kavramları anlamak için çok yararlı oldu.

Bu makaleyi paylaştığınız için gerçekten minnettarım ve size çok teşekkür ederim.

Öte yandan birkaç sorum var; her ikisi de SymbolInfoTick işleviile ilgilidir :


MQL5 kılavuzununSymbolInfoTick(Symbol(),tick) hakkında söylediğişey, MqlTick türündeki bir değişkende belirtilen bir sembolün mevcut fiyatlarını döndürdüğü ve ayrıca işlevin başarılı olursa true, aksi takdirde false döndürdüğünüsöylüyor.

Yukarıdakilere göre, anladığım kadarıyla, alınan bir tick yoksa ("Failed to get Symbol info!") mesajı yazdırılıyor. Bu doğru mu? Eğer doğru değilse lütfen bana bunun ne hakkında olduğunu söyleyebilir misiniz?

Diğer soru ise şu: Mesaj her tikte yazdırılırsa ne olur?

Tekrar teşekkürler.

 

İşte:

trReq.sl=tick.ask-_Point*sl; // Emrin Zarar Durdurma seviyesi

trReq.tp=tick.ask+_Point*tp; // Emrin Kar Al seviyesi

gerekli:

trReq.sl=tick.bid-_Point*sl; // Emrin Zarar Durdurma seviyesi

trReq.tp=tick.bid+_Point*tp; // Emrin Kar Al seviyesi

ve buna göre SAT için değiştirin.

Alış satış fiyatından yapılır, ancak alış fiyatından kapatılır.

Kar ve zararı örneğin 20 puanla sınırlamak istiyorsanız, ALIŞ için alış fiyatından (kapanış fiyatı) ve SATIŞ için satış fiyatından (kapanış fiyatı) tam olarak 20 puan sayılmalıdır.

 

MACD trendinde duraksız işlem yapmak için bu koda nasıl ekleyeceğimi söyleyebilir misiniz?

Uzun: MACD büyüyor hızlı MA yavaş MA'yı yukarıdan aşağıya geçti

Croy Long: MACD yükselen hızlı MA, yavaş MA'yı aşağıdan yukarıya doğru geçti

Kısa: MACD azalan hızlı MA yavaş olanı yukarıdan aşağıya geçti

Kısa: MACD azalan hızlı MA yavaş olanı aşağıdan yukarıya doğru geçti

Şöyle denedim:

//+------------------------------------------------------------------+
//|MACD&DEMA.mq5 |
//|Telif Hakkı 2010, AM2 Group. |
//| http://www.am2_group.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, AM2 Group."
#property link      "http://www.am2_group.net"
#property version   "1.00"

//--- giriş parametreleri
input int Periods=2;          // Dönem 1 Hareketli Ortalama
input int Shift=38;           // Dönem 2 Hareketli Ortalama
input int SL=30;              // Zararı Durdur
input int TP=100;             // Kâr Al
input int MAGIC=3072010;      // Sihirli Sayı Danışmanı

MqlTradeRequest trReq;
MqlTradeResult trRez;
int ma1Handle;
int ma2Handle;
int macdHandle;               // MACD gösterge tanıtıcısı
double ma1Val[];
double ma2Val[];
double macdVal[]; // günlük çubuklar için sayısal MACD değerlerini saklamak için dinamik dizi
  
int sl;
int tp;
//+------------------------------------------------------------------+
//| Uzman başlatma işlevi|
//+------------------------------------------------------------------+
int OnInit()
{
   //Set default vaules for all new order requests
      trReq.action=TRADE_ACTION_DEAL;
      trReq.magic=MAGIC;
      trReq.symbol=Symbol();                 // Ticaret sembolü
      trReq.volume=0.1;                      // Lot cinsinden bir anlaşma için talep edilen hacim
      trReq.deviation=1;                     // Talep edilen fiyattan maksimum olası sapma
      trReq.type_filling=ORDER_FILLING_AON;  // Sipariş gerçekleştirme türü
      trReq.type_time=ORDER_TIME_GTC;        // Sipariş yürütme süresi
      trReq.comment="MA Sample";
   //end
  
   //Create handle for 2 MA indicators
      ma1Handle=iMA(Symbol(),PERIOD_CURRENT,Periods,0,MODE_EMA,PRICE_CLOSE);
      ma2Handle=iMA(Symbol(),PERIOD_CURRENT,Periods+Shift,0,MODE_EMA,PRICE_CLOSE);
   //---Get MACD gösterge tanıtıcısı
      macdHandle=iMACD(NULL,PERIOD_D1,15,26,1,PRICE_CLOSE);
   //end
  
   //giriş parametreleri Salt Okunurdur
      tp=0;
      sl=0;
   //end
  
   //Suppoprt for acount with 5 decimals
      if(_Digits==5)
      {
         sl*=10;
         tp*=10;
      }
   //end
      
   return(0);
}
//+------------------------------------------------------------------+
//| Uzman başlangıçtan kaldırma işlevi|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Uzman tik fonksiyonu|
//+------------------------------------------------------------------+
void OnTick()
  {
  
   MqlTick tick; //kene bilgisi için değişken
   if(!SymbolInfoTick(Symbol(),tick))
   {
      Print("Failed to get Symbol info!");
      return;
   }
  
   //Son MA gösterge değerlerini bir tampona kopyalayın
   int copied=CopyBuffer(ma1Handle,0,0,4,ma1Val);
   if(copied>0)
      copied=CopyBuffer(ma2Handle,0,0,4,ma2Val);
      copied=CopyBuffer(macdHandle,0,0,4,macdVal);
   if(copied>0)
   {
      //Eğer MAPeriod > MAPeriod + Shift -> BUY ise
      if(ma1Val[1]>ma2Val[1] && macdVal[1]>macdVal[2])
      {
         trReq.price=tick.bid;                   // SymbolInfoDouble(NULL,SYMBOL_BID);
         trReq.sl=tick.bid-_Point*sl;            // Emrin Zarar Durdurma seviyesi
         trReq.tp=tick.bid+_Point*tp;            // Emrin Kar Al seviyesi
         trReq.type=ORDER_TYPE_BUY;              // Sipariş türü
         OrderSend(trReq,trRez);
      }
      //Eğer MAPeriod < MAPeriod + Shift -> SAT
      else if(ma1Val[1]<ma2Val[1] && macdVal[1]<macdVal[2])
      {
         trReq.price=tick.ask;
         trReq.sl=tick.ask+_Point*sl;            // Emrin Zarar Durdurma seviyesi
         trReq.tp=tick.ask-_Point*tp;            // Emrin Kar Al seviyesi
         trReq.type=ORDER_TYPE_SELL;             // Sipariş türü
         OrderSend(trReq,trRez);
      }
   }

  }
//+------------------------------------------------------------------+
 
Automated-Trading:

Basit MA EA:

Yazar: outkast

Merhaba Outkast,

EA'larda yeniyim, Bay tsaktuo esimpleMA'yı yeni ithal ettim, Kodu gerçekten anlamadığım için, grafiğimde çalıştığını görüyorum, ancak bazı MA değerlerini ayarlamam gerekiyor mu, yardıma ihtiyacım olduğunu bilmiyorum bir sınıfa veya kitaba ihtiyacım var ???

 

MA'yı tamponlama ve bir grafikte görünmesini sağlama sorunumu çözdüğü için kod örneğinizi bulmaktan mutlu oldum. Gönderdiğiniz için teşekkürler.

Aklıma takılan tek soru, açık emri kapatma kararını nasıl veriyor?

Teşekkürler