"Semafor Göstergelerini Kullanan Basit Alım Satım Sistemleri" makalesi için tartışma

 

Yeni makale Semafor Göstergelerini Kullanan Basit Alım Satım Sistemleri yayınlandı:

Herhangi bir karmaşık alım satım sistemini dikkatlice incelersek, bunun bir dizi basit alım satım sinyaline dayandığını göreceğiz. Bu nedenle, acemi geliştiricilerin hemen karmaşık algoritmalar yazmaya başlamasına gerek yoktur. Bu makale, sözleşmeleri gerçekleştirmek için semafor göstergelerini kullanan bir alım satım sistemine bir örnek sunmaktadır.

Semafor veya sinyal göstergeleri, piyasaya giriş veya çıkış anlarını gösteren basit detektörlerdir. Geçerli çubukta bir giriş sinyali olması durumunda, bir sembol grafiğinde uygun bir etiket görünür. Bu etiket daha sonra bir sözleşme gerçekleştirmek için bir koşul olarak kullanılabilir.

Bu tür birçok gösterge vardır, ancak bu tür göstergelere dayanan orijinal alım satım sisteminin özü hiç değişmemiştir. Bu nedenle, bunu en basit ve evrensel biçimde uygulamak iyi bir fikirdir. Bu, önemli değişiklikler olmadan benzer göstergelerle çalışırken elde edilen sonucun daha fazla kullanılmasına izin verecektir.

Şekil 1. ASCtrend semafor sinyal göstergesi

Yazar: Nikolay Kositsin

 
Makale çok açık.
Bu arada küçük bir not - kopyalanıp yapıştırılan örnekte verilen kod parçasında mekanik bir yazım hatası var:
//---- Yerel değişkenlerin bildirilmesi
   double TrendVelue[2];
 

Bazı Sinyalleri derledim ve "Candles_SmoothedSignal.mqh" (..MQL5\Include\Expert\MySignals\Candles_SmoothedSignal.mqh) gibi yeniden başlattım, ancak MetaEditor bunu Sihirbazda bir Uzman Danışman yapmak için göremiyor.

Bunu nasıl çözebilirim?

 

Bu mükemmel ve kapsamlı açıklama için teşekkürler...!


daveM

 

Talimatlarda belirtildiği gibi her şeyi indirdim ve paketinden çıkardım, ancak test cihazı tüm sistemlerde hata veriyor:

OnInit başarısız olduğu için test cihazı durdu

CExpert::ValidationSettings: hata para parametreleri

CMoneyFixedLot::ValidationSettings: lot miktarı 1.000000 ila 1000000.000000 aralığında olmalıdır

Lütfen neyi değiştireceğimi söyleyin.

 

Merhaba!

ASCtrend göstergesine (indicators.zip sıkıştırılmış dosyasında bulunur) dayanarak oluşturulan ASCtrendSignal işlem siny ali modülünü (mysignals.zip sıkıştırılmış dosyasında bulunur) MQL5 Sihirbazına eklemeye çalışıyorum, ancak hiçbir şey çalışmıyor. ASCtrendSignal işlem sinyali modülünü Include\Expert\Signal'a yerleştiriyorum ve ASCtrend göstergesini Göstergeler paketine yerleştiriyorum, her şey doğru görünüyor, ancak modül ısrarla MQL5 Sihirbazında görüntülenmek istemiyor. İşte ASCtrendSignal ticaret sinyali modülünün kodu:

//+------------------------------------------------------------------+
//|ASCtrendSignal.mqh |
//|Telif Hakkı © 2011, Nikolay Kositsin | 
//|Habarovsk, farria@mail.redcom.ru | 
//+------------------------------------------------------------------+
#property copyright "Telif Hakkı © 2011, Nikolay Kositsin."
#property link      "farria@mail.redcom.ru"
//+------------------------------------------------------------------+
//| Dahil edilen dosyalar|
//+------------------------------------------------------------------+
#property tester_indicator "ASCtrend.ex5"
#include <Expert\ExpertSignal.mqh>
//--- sihirbaz açıklaması başlangıç
//+------------------------------------------------------------------+ 
//| Sabitlerin bildirilmesi|
//+------------------------------------------------------------------+ 
#define  OPEN_LONG     80  // Satın al komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  OPEN_SHORT    80  // Satış komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  CLOSE_LONG    40  // Uzman Danışmana uzun bir pozisyonu kapatma komutunu döndürmek için kullanılan sabit
#define  CLOSE_SHORT   40  // Uzman Danışmana kısa pozisyon kapatma komutunu döndürmek için kullanılan sabit
#define  REVERSE_LONG  100 // Uzman Danışmana uzun bir pozisyonu tersine çevirme komutunu döndürmek için kullanılan sabit
#define  REVERSE_SHORT 100 // Kısa pozisyonu tersine çevirme komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  NO_SIGNAL      0  // Uzman Danışmana bir sinyalin yokluğunu döndürmek için kullanılan sabit
//+----------------------------------------------------------------------+
//| Sınıfın açıklaması|
//| Başlık=ASCtrend göstergesine dayalı sinyaller |
//| Type=SignalAdvanced.|
//| Name=ASCtrend|
//| Class=CASCtrendSignal|
//| Sayfa=|
//| Parametre=BuyPosOpen,bool,true,Satın alma izni |
//| Parametre=SellPosOpen,bool,true,Satış izni |
//| Parametre=BuyPosClose,bool,true,Uzun pozisyondan çıkmak için izin |
//| Parametre=SellPosClose,bool,true,Kısa pozisyondan çıkmak için izin |
//| Parametre=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parametre=RISK,int,4,Risk seviyesi|
//| Parametre=SinyalBar,uint,1,Giriş sinyali için çubuk indeksi |
//+----------------------------------------------------------------------+
//--- sihirbaz açıklaması end
//+----------------------------------------------------------------------+
//| CASCtrendSignal sınıfı.|
//| Amaç: |'a dayalı ticaret sinyalleri üreteci sınıfı
//| ASCtrend indicator values http://www.mql5.com/ru/code/491/.&nbsp;         |
//| CExpertSignal sınıfından türetilmiştir. ||
//+----------------------------------------------------------------------+
class CASCtrendSignal : public CExpertSignal
  {
protected:
   CiCustom          m_indicator;      // ASCtrend değerlerine erişim için nesne

   //--- ayarlanmış parametreler
   bool              m_BuyPosOpen;       // satın alma izni
   bool              m_SellPosOpen;      // satış izni
   bool              m_BuyPosClose;      // uzun pozisyondan çıkma izni
   bool              m_SellPosClose;     // kısa pozisyondan çıkma izni
   ENUM_TIMEFRAMES   m_Ind_Timeframe;    // ASCtrend göstergesi zaman dilimi
   uint              m_RISK;             // Risk seviyesi
   uint              m_SignalBar;        // giriş sinyali için çubuk indeksi

public:
                     CASCtrendSignal();

   //--- ayarlanabilir parametreleri ayarlama yöntemleri
   void               BuyPosOpen(bool value)                  { m_BuyPosOpen=value;       }
   void               SellPosOpen(bool value)                 { m_SellPosOpen=value;      }
   void               BuyPosClose(bool value)                 { m_BuyPosClose=value;      }
   void               SellPosClose(bool value)                { m_SellPosClose=value;     }
   void               Ind_Timeframe(ENUM_TIMEFRAMES value)    { m_Ind_Timeframe=value;    }
   void               RISK(uint value)                        { m_RISK=value;             }
   void               SignalBar(uint value)                   { m_SignalBar=value;        }

   //--- ayarlanabilir parametreler doğrulama yöntemi
   virtual bool      ValidationSettings();
   //--- ayarlanabilir parametreler doğrulama yöntemi
   virtual bool      InitIndicators(CIndicators *indicators); // göstergelerin başlatılması
   //--- pazara giriş sinyalleri oluşturma yöntemi
   virtual int       LongCondition();
   virtual int       ShortCondition();

   bool              InitASCtrend(CIndicators *indicators);   // ASCtrend göstergesi başlatma yöntemi

protected:

  };
//+------------------------------------------------------------------+
//|CASCtrendSignal kurucusu.|
//| GİRİŞ: hayır.|
//| ÇIKTI: hayır.|
//|| HATIRLATMA: hayır.|
//+------------------------------------------------------------------+
void CASCtrendSignal::CASCtrendSignal()
  {
//--- varsayılan parametrelerin ayarlanması
   m_BuyPosOpen=true;
   m_SellPosOpen=true;
   m_BuyPosClose=true;
   m_SellPosClose=true;
   
//--- gösterge giriş parametreleri
   m_Ind_Timeframe=PERIOD_H4;
   m_RISK=4;
//--- 
   m_SignalBar=1;
   m_used_series=USE_SERIES_OPEN+USE_SERIES_HIGH+USE_SERIES_LOW+USE_SERIES_CLOSE;
  }
//+------------------------------------------------------------------+
//| Ayarlanabilir parametreler kontrol ediliyor.|
//| GİRİŞ: hayır.|
//| ÇIKTI: ayarlar geçerliyse true, değilse false.
//|| HATIRLATMA: hayır.|
//+------------------------------------------------------------------+
bool CASCtrendSignal::ValidationSettings()
  {
//--- parametreleri kontrol etme
   if(m_RISK<=0)
     {
      printf(__FUNCTION__+": Risk level must be above zero");
      return(false);
     }

//--- başarılı tamamlama
   return(true);
  }
//+------------------------------------------------------------------+
//| Göstergelerin ve zaman serilerinin başlatılması. ||
//| GİRİŞ: indicators - bir nesne koleksiyonuna işaretçi |
//| göstergeler ve zaman serileri.|
//| OUTPUT: true - başarılı olması durumunda, aksi takdirde - false. || OUTPUT: true - başarılı olması durumunda, aksi takdirde - false. ||
//|| HATIRLATMA: hayır.|
//+------------------------------------------------------------------+
bool CASCtrendSignal::InitIndicators(CIndicators *indicators)
  {
//--- işaretçinin kontrolü
   if(indicators==NULL) return(false);

//--- gösterge başlatma 
   if(!InitASCtrend(indicators)) return(false);

//--- başarılı tamamlama
   return(true);
  }
//+------------------------------------------------------------------+
//| ASCtrend göstergesi başlatma.|
//| GİRİŞ: indicators - bir nesne koleksiyonuna işaretçi |
//| göstergeler ve zaman serileri.|
//| OUTPUT: true - başarılı olması durumunda, aksi takdirde - false. || OUTPUT: true - başarılı olması durumunda, aksi takdirde - false. ||
//|| HATIRLATMA: hayır.|
//+------------------------------------------------------------------+
bool CASCtrendSignal::InitASCtrend(CIndicators *indicators)
  {
//--- işaretçinin kontrolü
   if(indicators==NULL) return(false);

//--- koleksiyona bir nesne ekleme
   if(!indicators.Add(GetPointer(m_indicator)))
     {
      printf(__FUNCTION__+": error of adding the object");
      return(false);
     }

//--- gösterge parametrelerinin ayarlanması
   MqlParam parameters[2];
   
   parameters[0].type=TYPE_STRING;
   parameters[0].string_value="ASCtrend.ex5";
   
   parameters[1].type=TYPE_INT;
   parameters[1].integer_value=m_RISK;

//--- nesne başlatma 
   if(!m_indicator.Create(m_symbol.Name(),m_Ind_Timeframe,IND_CUSTOM,2,parameters))
     {
      printf(__FUNCTION__+": object initialization error");
      return(false);
     }
     
//--- tampon sayısı
   if(!m_indicator.NumBuffers(2)) return(false);
   
//--- ASCtrend göstergesi başarıyla başlatıldı
   return(true);
  }
//+------------------------------------------------------------------+
//| Uzun pozisyon açmak için koşulları kontrol etme ve |
//| ve kısa bir kapanış|
//| INPUT:Hayır|
//| ÇIKTI: 0'dan 100'e kadar oy ağırlığı|
//|| HATIRLATMA: hayır.|
//+------------------------------------------------------------------+
int CASCtrendSignal::LongCondition()
  {
//--- satın alma sinyali ASCtrend göstergesinin tampon 1'i tarafından belirlenir
   double Signal=m_indicator.GetData(1,m_SignalBar);

//--- bir işlem sinyali almak 
   if(Signal && Signal!=EMPTY_VALUE)
     {
      if(m_BuyPosOpen)
        {
         if(m_SellPosClose) return(REVERSE_SHORT);
         else return(OPEN_LONG);
        }
      else
        {
         if(m_SellPosClose) return(CLOSE_SHORT);
        }
     }

//--- kısa pozisyonu kapatmak için sinyal aramak
   if(!m_SellPosClose) return(NO_SIGNAL);

   int Bars_=Bars(m_symbol.Name(),m_Ind_Timeframe);

   for(int bar=int(m_SignalBar); bar<Bars_; bar++)
     {
      Signal=m_indicator.GetData(0,bar);
      if(Signal && Signal!=EMPTY_VALUE) return(NO_SIGNAL);

      Signal=m_indicator.GetData(1,bar);
      if(Signal && Signal!=EMPTY_VALUE) return(CLOSE_SHORT);
     }

//--- işlem sinyali yok
   return(NO_SIGNAL);
  }
//+------------------------------------------------------------------+
//| Kısa pozisyon açmak için koşulları kontrol etme ve |
//| uzun olanı kapatmak|
//| INPUT:Hayır|
//| ÇIKTI: 0'dan 100'e kadar oy ağırlığı|
//|| HATIRLATMA: hayır.|
//+------------------------------------------------------------------+
int CASCtrendSignal::ShortCondition()
  {
//--- satış sinyali ASCtrend göstergesinin tampon 0'ı tarafından belirlenir
   double Signal=m_indicator.GetData(0,m_SignalBar);
   
//--- bir işlem sinyali almak
   if(Signal && Signal!=EMPTY_VALUE)
     {
      if(m_SellPosOpen)
        {
         if(m_BuyPosClose) return(REVERSE_LONG);
         else return(OPEN_SHORT);
        }
      else
        {
         if(m_BuyPosClose) return(CLOSE_LONG);
        }
     }

//--- uzun bir pozisyonu kapatmak için sinyal aramak
   if(!m_BuyPosClose) return(NO_SIGNAL);

   int Bars_=Bars(m_symbol.Name(),m_Ind_Timeframe); // Здесь код исправлен с учетом подсказки от Владимира Карпутова: Symbol() заменен на m_symbol.Name()
   for(int bar=int(m_SignalBar); bar<Bars_; bar++)
     {
      Signal=m_indicator.GetData(1,bar);
      if(Signal && Signal!=EMPTY_VALUE) return(NO_SIGNAL);

      Signal=m_indicator.GetData(0,bar);
      if(Signal && Signal!=EMPTY_VALUE) return(CLOSE_LONG);
     }

//--- işlem sinyali yok 
   return(NO_SIGNAL);
  }
//+------------------------------------------------------------------+

Lütfen bana sorunun ne olabileceğini söyleyebilir misiniz?

Saygılarımla, Vladimir

 
MrBrooklin:

Merhaba!

ASCtrend göstergesine (indicators.zip sıkıştırılmış dosyasında bulunur) dayanarak oluşturulan ASCtrendSignal işlem siny ali modülünü (mysignals.zip sıkıştırılmış dosyasında bulunur) MQL5 Sihirbazına eklemeye çalışıyorum, ancak hiçbir şey çalışmıyor. ASCtrendSignal işlem sinyali modülünü Include\Expert\Signal içine yerleştiriyorum ve ASCtrend göstergesini Indicators paketine yerleştiriyorum, her şey doğru görünüyor, ancak modül ısrarla MQL5 Sihirbazında görüntülenmek istemiyor. İşte ASCtrendSignal ticaret sinyali modülünün kodu:

Lütfen bana sorunun ne olabileceğini söyleyebilir misiniz?

Saygılarımla, Vladimir

Aynı sorunun göstergelere dayalı olarak yazılan diğer alım satım sinyalleri modüllerinde de meydana geldiğini eklemek isterim. Görünüşe göre, onlar da aynı sorunu yaşıyor. Lütfen bu sorunların çözülmesine yardımcı olun.

Saygılarımla, Vladimir.

Not: Sıkıştırılmış indicators.zip dosyasından açtığım bazı göstergeler terminale yüklendi ve normal çalışıyor.

 

Önemli olan sırası:

// sihirbaz açıklaması başlangıç
//+----------------------------------------------------------------------+
//| Sınıfın açıklaması|
//| Başlık=ASCtrend göstergesine dayalı sinyaller |
//| Type=SignalAdvanced.|
//| Name=ASCtrend|
//| Class=CASCtrendSignal|
//| Sayfa=|
//| Parametre=BuyPosOpen,bool,true,Satın alma izni |
//| Parametre=SellPosOpen,bool,true,Satış izni |
//| Parametre=BuyPosClose,bool,true,Uzun pozisyondan çıkmak için izin |
//| Parametre=SellPosClose,bool,true,Kısa pozisyondan çıkmak için izin |
//| Parametre=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parametre=RISK,int,4,Risk seviyesi|
//| Parametre=SinyalBar,uint,1,Giriş sinyali için çubuk indeksi |
//+----------------------------------------------------------------------+
// sihirbaz açıklaması end

değil

//--- wizard description start
//--- wizard description end

ve başlangıç ve bitiş arasında sadece bir servis bloğu - değişken veya makro ikamesi yok.


Modül bu şekilde başlamalıdır:

//+------------------------------------------------------------------+
//|ASCtrendSignal.mqh |
//|Telif Hakkı © 2011, Nikolay Kositsin |
//|Habarovsk, farria@mail.redcom.ru |
//+------------------------------------------------------------------+
#property copyright "Telif Hakkı © 2011, Nikolay Kositsin."
#property link      "farria@mail.redcom.ru"
//+------------------------------------------------------------------+
//| Dahil edilen dosyalar|
//+------------------------------------------------------------------+
//#property tester_indicator "ASCtrend.ex5"
#include <Expert\ExpertSignal.mqh>
// sihirbaz açıklaması başlangıç
//+----------------------------------------------------------------------+
//| Sınıfın açıklaması|
//| Başlık=ASCtrend göstergesine dayalı sinyaller |
//| Type=SignalAdvanced.|
//| Name=ASCtrend|
//| Class=CASCtrendSignal|
//| Sayfa=|
//| Parametre=BuyPosOpen,bool,true,Satın alma izni |
//| Parametre=SellPosOpen,bool,true,Satış izni |
//| Parametre=BuyPosClose,bool,true,Uzun pozisyondan çıkmak için izin |
//| Parametre=SellPosClose,bool,true,Kısa pozisyondan çıkmak için izin |
//| Parametre=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parametre=RISK,int,4,Risk seviyesi|
//| Parametre=SinyalBar,uint,1,Giriş sinyali için çubuk indeksi |
//+----------------------------------------------------------------------+
// sihirbaz açıklaması end
//+------------------------------------------------------------------+
//| Sabitlerin bildirilmesi|
//+------------------------------------------------------------------+
#define  OPEN_LONG     80  // Satın al komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  OPEN_SHORT    80  // Satış komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  CLOSE_LONG    40  // Uzman Danışmana uzun bir pozisyonu kapatma komutunu döndürmek için kullanılan sabit
#define  CLOSE_SHORT   40  // Uzman Danışmana kısa pozisyon kapatma komutunu döndürmek için kullanılan sabit
#define  REVERSE_LONG  100 // Uzman Danışmana uzun bir pozisyonu tersine çevirme komutunu döndürmek için kullanılan sabit
#define  REVERSE_SHORT 100 // Kısa pozisyonu tersine çevirme komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  NO_SIGNAL      0  // Uzman Danışmana bir sinyalin yokluğunu döndürmek için kullanılan sabit
//+----------------------------------------------------------------------+
//| CASCtrendSignal sınıfı.|
//| Amaç: |'a dayalı ticaret sinyalleri üreteci sınıfı
//| ASCtrend indicator values http://www.mql5.com/ru/code/491/.&nbsp;         |
//| CExpertSignal sınıfından türetilmiştir. ||
//+----------------------------------------------------------------------+
class CASCtrendSignal : public CExpertSignal
  {

düzenleme yaptıktan sonra MetaEditor'u yeniden yükleyin

 
Vladimir Karputov:

Önemli olan sırası:

değil

ve başlangıç ile bitiş arasında sadece bir servis bloğu - değişken veya makro ikamesi yok.


Bir modül bu şekilde başlamalıdır:

düzenleme yaptıktan sonra MetaEditor'u yeniden yükle

Teşekkürler, Vladimir!

Her şey çalıştı.

Saygılarımla, Vladimir.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi üzerine forum

"Semafor göstergeleri kullanan basit ticaret sistemleri" makalesinin tartışılması

Vladimir Karputov, 2019.10.30 08:50

Sıra önemli:

 // sihirbaz açıklaması başlangıç
//+----------------------------------------------------------------------+
//| Sınıfın açıklaması|
//| Başlık=ASCtrend göstergesine dayalı sinyaller |
//| Type=SignalAdvanced|
//| Name=ASCtrend|
//| Class=CASCtrendSignal|
//| Sayfa=|
//| Parametre=BuyPosOpen,bool,true,Satın alma izni |
//| Parametre=SellPosOpen,bool,true,Satış izni |
//| Parametre=BuyPosClose,bool,true,Uzun pozisyondan çıkmak için izin |
//| Parametre=SellPosClose,bool,true,Kısa pozisyondan çıkmak için izin |
//| Parametre=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parametre=RISK,int,4,Risk seviyesi|
//| Parametre=SinyalBar,uint,1,Giriş sinyali için çubuk indeksi |
//+----------------------------------------------------------------------+
// sihirbaz açıklaması end 

ama değil

 //--- wizard description start
//--- wizard description end 

ve başlangıç ve bitiş arasında sadece servis bloğu - değişkenler ve makro ikameleri yok.


Bu, modülün sahip olması gereken başlangıçtır:

 //+------------------------------------------------------------------+
//|ASCtrendSignal.mqh |
//|Telif Hakkı © 2011, Nikolay Kositsin |
//|Habarovsk, farria@mail.redcom.ru |
//+------------------------------------------------------------------+
#property  copyright "Telif Hakkı © 2011, Nikolay Kositsin"
#property  link        "farria@mail.redcom.ru"
//+------------------------------------------------------------------+
//| Dahil edilen dosyalar|
//+------------------------------------------------------------------+
//#property tester_indicator "ASCtrend.ex5"
#include  <Expert\ExpertSignal.mqh>
// sihirbaz açıklaması başlangıç
//+----------------------------------------------------------------------+
//| Sınıfın açıklaması|
//| Başlık=ASCtrend göstergesine dayalı sinyaller |
//| Type=SignalAdvanced|
//| Name=ASCtrend|
//| Class=CASCtrendSignal|
//| Sayfa=|
//| Parametre=BuyPosOpen,bool,true,Satın alma izni |
//| Parametre=SellPosOpen,bool,true,Satış izni |
//| Parametre=BuyPosClose,bool,true,Uzun pozisyondan çıkmak için izin |
//| Parametre=SellPosClose,bool,true,Kısa pozisyondan çıkmak için izin |
//| Parametre=Ind_Timeframe,ENUM_TIMEFRAMES,PERIOD_H4,Timeframe |
//| Parametre=RISK,int,4,Risk seviyesi|
//| Parametre=SinyalBar,uint,1,Giriş sinyali için çubuk indeksi |
//+----------------------------------------------------------------------+
// sihirbaz açıklaması end
//+------------------------------------------------------------------+
//| Sabitlerin bildirilmesi|
//+------------------------------------------------------------------+
#define  OPEN_LONG     80    // Satın al komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  OPEN_SHORT     80    // Satış komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  CLOSE_LONG     40    // Uzman Danışmana uzun bir pozisyonu kapatma komutunu döndürmek için kullanılan sabit
#define  CLOSE_SHORT   40    // Uzman Danışmana kısa pozisyon kapatma komutunu döndürmek için kullanılan sabit
#define  REVERSE_LONG   100 // Uzman Danışmana uzun bir pozisyonu tersine çevirme komutunu döndürmek için kullanılan sabit
#define  REVERSE_SHORT 100 // Kısa pozisyonu tersine çevirme komutunu Uzman Danışmana döndürmek için kullanılan sabit
#define  NO_SIGNAL       0    // Uzman Danışmana bir sinyalin yokluğunu döndürmek için kullanılan sabit
//+----------------------------------------------------------------------+
//| CASCtrendSignal sınıfı.|
//| Amaç: |'a dayalı ticaret sinyalleri üreteci sınıfı
//| ASCtrend indicator values http://www.mql5.com/ru/code/491/.&nbsp;         |
//| CExpertSignal sınıfından türetilmiştir.|
//+----------------------------------------------------------------------+
class CASCtrendSignal : public CExpertSignal
  {

değişiklik yaptıktan sonra MetaEditor'ü yeniden başlatın