MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 126

 
MosheDayan :
Sinyali detaylandırabilir misiniz, MT aracılığıyla mı yoksa üçüncü taraf aracılığıyla mı?
Belki burada yazılmıştır . Sadece seviye yerine, alım satımınız yayınlanır ve sistemi beğenirse herkes bağlanabilir.
 

Yardım için teşekkürler, düzeltildi.

 
Örneğin herhangi bir göstergenin verilerine göre tüm terminalde veya belirli bir Uzman Danışmanda otomatik alım satımı durdurmak/etkinleştirmek mümkün müdür?
 
Andrey Sokolov :
Örneğin herhangi bir göstergenin verilerine göre tüm terminalde veya belirli bir Uzman Danışmanda otomatik alım satımı durdurmak/etkinleştirmek mümkün müdür?

Kendi başınıza, herkes için aynı GP'yi ayarlamak ve örneğin 0 - tüm danışmanlar ticaret yapmadığında değeri izlemek için terminalin global değişkenlerini kullanabilirsiniz.

Ayrıca WinAPI üzerinden terminal panelindeki autotrade butonunu bulabilir ve devre dışı bırakabilirsiniz.

 
Merhaba! Söylesene, grafikte (etiket, hatırlatıcı) metin görüntülemek için grafikle birlikte hareket etmeyen ancak sabitlenmiş bir kod var mı? Teşekkür ederim!
 
Vladimir.Tyumen :
Merhaba! Söylesene, grafikte (etiket, hatırlatıcı) metin görüntülemek için grafikle birlikte hareket etmeyen ancak sabitlenmiş bir kod var mı? Teşekkür ederim!
OBJ_LABEL
 
Herkese merhaba, dili yeni öğrenmeye başladım, geçenlerde bir grid Expert Advisor oluşturma ile ilgili bir video eğitimine rastladım, yazdım, derledim, 0 hata, 0 uyarı. Ancak robot esnaf açmıyor. Kodu gönderiyorum, kimin tembel olmadığına bir bakın)))

Şimdiden teşekkürler!


extern double Lots      = 0.1 ;
extern double Profit    = 50 ;
extern int Step         = 30 ;
extern int Magic        = 6677 ;
extern int Slippage     = 5 ;

extern int maPeriod     = 100 ;
extern int maShift      = 1 ;

double ma, FindLastBuyPrice, price;
//------------------------------------------------------------------
//___ПРОВЕРКА_ЗНАКОВ_ПОСЛЕ_ТОЧКИ___
//------------------------------------------------------------------
int OnInit ()
{
   if ( Digits == 3 || Digits == 5 )
   {
      Step     *= 10 ;
      Slippage *= 10 ;
   }
   return ( INIT_SUCCEEDED );
}
//---------------------------------------------
void OnDeinit ( const int reason)
{

}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
void OnTick ()
{
  
   ma = iMA ( Symbol (), 0 ,maPeriod, maShift, MODE_SMA , PRICE_CLOSE , 0 );
  
   if (CountBuy() && CountSell() == 0 && Bid < ma) //
   {
       if ( OrderSend ( Symbol (), OP_SELL , Lots, Bid , Slippage, 0 , 0 , "" , Magic, 0 , Red) < 1 )
         Print ( "Неудалось открыть ордер на Продажу" );
   }
   if (CountBuy() && CountSell() == 0 && Ask < ma)
   {
       if ( OrderSend ( Symbol (), OP_BUY , Lots, Ask , Slippage, 0 , 0 , "" , Magic, 0 , Blue) < 1 )
         Print ( "Неудалось открыть ордер на Покупку" );
      
   }
   if (CountBuy() >= 1 )
   {
      price = FindLastBuyPrice();
       if ((price - Ask ) >= Step* Point )
      {
         if ( OrderSend ( Symbol (), OP_BUY , Lots, Ask , Slippage, 0 , 0 , "" , Magic, 0 , Blue) < 1 )
         Print ( "Неудалось открыть ордер на Покупку" );
      }
   }
  
   if (CountSell() >= 1 )
   {
      price = FindLastBuyPrice();
       if (( Bid - price) >= Step* Point )
      {
         if ( OrderSend ( Symbol (), OP_SELL , Lots, Bid , Slippage, 0 , 0 , "" , Magic, 0 , Red) < 1 )
         Print ( "Неудалось открыть ордер на Ппродажу" );
      }
   }
  
  
   double op = CalculateProfit();
   if (op >= Profit)
   {
      CloseAll();
   }      
  
}
//------------------------------------------------------------------
void CloseAll()
{
   for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
   {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic)
         {
             if ( OrderType () == OP_BUY )
            {
               if (! OrderClose ( OrderTicket (), OrderLots (), Bid , Slippage))
               {
                   Print ( "Не удалось закрыть ордер на ПОКУПКУ" );
               }
            }
             if ( OrderType () == OP_SELL )
            {
               if (! OrderClose ( OrderTicket (), OrderLots (), Ask , Slippage))
               {
                   Print ( "Не удалось закрыть ордер на ПРОДАЖУ" );
               }
            }
         }
      }
   }
}
//------------------------------------------------------------------
double CalculateProfit()   // Считаем профит по всем ордерам
{
   double oProfit = 0 ;
   for ( int i= OrdersTotal () - 1 ; i>= 0 ; i--)
   {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic)
         {
             if ( OrderType () == OP_BUY || OrderType () == OP_SELL )
            {
               oProfit += OrderProfit ();
            }
         }
      }
   }
  
   return (oProfit);

}
//------------------------------------------------------------------
double FindLastBuyPrice()
{

   int oldTicket, ticket   = 0 ;
   double oldopenPrice     = 0 ;
  
   for ( int cnt = OrdersTotal ()- 1 ; cnt>= 0 ; cnt--)
   {
       if ( OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic && OrderType () == OP_BUY )
         {
            oldTicket = OrderTicket ();
             if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice ();
            }
         }
        
      }
   }
   return (oldopenPrice);
}
double FindLastSellPrice()
{

   int oldTicket, ticket   = 0 ;
   double oldopenPrice     = 0 ;
  
   for ( int cnt = OrdersTotal ()- 1 ; cnt>= 0 ; cnt--)
   {
       if ( OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES ))
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic && OrderType () == OP_SELL )
         {
            oldTicket = OrderTicket ();
             if (oldTicket > ticket)
            {
               ticket = oldTicket;
               oldopenPrice = OrderOpenPrice ();
            }
         }
        
      }
   }
   return (oldopenPrice);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int CountBuy()
{
   int count = 0 ;
   for ( int trade = OrdersTotal ()- 1 ; trade >= 0 ; trade--)
   {
       if ( OrderSelect (trade, SELECT_BY_POS , MODE_TRADES ) == true )
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic && OrderType () == OP_BUY )
            count++;
      }
   }
   return (count);
}
//+------------------------------------------------------------------+
int CountSell()
{
   int count = 0 ;
   for ( int trade = OrdersTotal ()- 1 ; trade >= 0 ; trade--)
   {
       if ( OrderSelect (trade, SELECT_BY_POS , MODE_TRADES ) == true )
      {
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic && OrderType () == OP_SELL )
            count++;
      }
   }
   return (count);
}
//+------------------------------------------------------------------+


 

Merhaba. Bir soru:

Kütüphaneli bir gösterge var, üzerine bir danışman yazmanız gerekiyor

Dosya üretmemek için hangi eylem planına ihtiyaç duyulacak, ancak sonunda iki veya bir tane olacak. İdeal olarak, birleştirin.


Voznesen :
Herkese merhaba, dili yeni öğrenmeye başladım, geçenlerde bir grid Expert Advisor oluşturma ile ilgili bir video eğitimine rastladım, yazdım, derledim, 0 hata, 0 uyarı. Ancak robot esnaf açmıyor. Kodu gönderiyorum, kimin tembel olmadığına bir bakın)))
Ve anlaşmaları nasıl açmalı? Hangi koşullar altında?
 
trader781 :

Merhaba. Bir soru:

Kütüphaneli bir gösterge var, üzerine bir danışman yazmanız gerekiyor

Dosya üretmemek için hangi eylem şemasına ihtiyaç duyulacak, ancak sonunda iki veya bir tane olacak. İdeal olarak, birleştirin.


Kaynak olarak bağlı özel göstergelerle çalışma

mql4 programlarının çalışması için bir veya daha fazla özel gösterge gerekebilir, bunların tümü yürütülebilir bir mql4 programının koduna dahil edilebilir. Göstergelerin kaynak olarak dahil edilmesi, programların dağıtılmasını kolaylaştırır.

Tek sorun, içinde dosya yoksa başka bir bilgisayarda derlenmeyecek olmasıdır.
Ресурсы - Программы MQL4 - Справочник MQL4
Ресурсы - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Ресурсы - Программы MQL4 - Справочник MQL4