Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1288

 
_Digits nedir, anlıyorum.
Ve başka bir döviz çifti için bu değer nasıl elde edilir?
Lütfen bana söyle.
 
User_mt5 :
_Digits nedir, anlıyorum.
Ve başka bir döviz çifti için bu değer nasıl elde edilir?
Lütfen bana söyle.

SYMBOL_DIGITS

Virgülden sonra birkaç simge

int

 
Hey!!! Bana günlükte tamamlanmış yapının nasıl görüntüleneceğini söyle

MqlTradeRequest mrequest ???

MQL5'te herhangi bir işlev var mı??? Neden böyle bir mesajın alındığını anlamak istiyorum 2021.02.08 21:29:20.876 my_first_ea_sartrailing(BRN,M5) Uyarı: Bir Satış siparişi verme isteği başarısız oldu - hata kodu: 4756


 //--- собираем все вместе
   if (Sell_Condition_1 && Sell_Condition_2)
     {
       if (Sell_Condition_3 && Sell_Condition_4)
        {
         // есть ли в данный момент открытая позиция на продажу?
         if (Sell_opened)
           {
             Alert ( "Уже есть позиция на продажу!!!" );
             return ;     // не добавлять к открытой позиции на продажу
           }
         mrequest.action = TRADE_ACTION_DEAL ;                                   // немедленное исполнение
         mrequest.price = NormalizeDouble (latest_price.bid, _Digits );           // последняя цена Bid
         mrequest.sl = NormalizeDouble (latest_price.bid + STP* _Point , _Digits ); // Stop Loss
         mrequest.tp = NormalizeDouble (latest_price.bid - TKP* _Point , _Digits ); // Take Profit
         mrequest.symbol = _Symbol ;                                             // символ
         mrequest.volume = Lot;                                                 // количество лотов для торговли
         mrequest.magic = EA_Magic;                                             // Magic Number
         mrequest.type= ORDER_TYPE_SELL ;                                       // ордер на продажу
         mrequest.type_filling = ORDER_FILLING_FOK ;                             // тип исполнения ордера - все или ничего
         mrequest.deviation= 100 ;                                               // проскальзывание от текущей цены
         //--- отсылаем ордер
         OrderSend (mrequest,mresult);
         // анализируем код возврата торгового сервера
         if (mresult.retcode== 10009 || mresult.retcode== 10008 ) //Request is completed or order placed
           {
             Alert ( "Ордер Sell успешно помещен, тикет ордера #:" ,mresult.order, "!!" );
           }
         else
           {
             Alert ( "Запрос на установку ордера Sell не выполнен - код ошибки:" , GetLastError ());
             return ;
           }
        }
     }
   return ;
  }

 
Kira27 :
Hey!!! Bana günlükte tamamlanmış yapının nasıl görüntüleneceğini söyle

MqlTradeRequest mrequest ???

MQL5'te herhangi bir işlev var mı??? Neden böyle bir mesajın alındığını anlamak istiyorum 2021.02.08 21:29:20.876 my_first_ea_sartrailing(BRN,M5) Uyarı: Satış siparişi verme isteği başarısız oldu - hata kodu: 4756


https://www.mql5.com/ru/forum/327894

Ve işte transkript:
Ошибка 4756
Ошибка 4756
  • 2019.12.06
  • www.mql5.com
Всем добрый день. Помогите пожалуйста разобраться. При добавлении эксперта в маркет, во время тестирования выходит это - -- NEW_ORDER(): lot=0...
 
Lütfen bana söyle,
Uyarı iletişim kutusu programlı olarak pencereden nasıl kaldırılır?
 
Lütfen bana koddaki bu satırı nasıl anlayacağımı söyleyin -- CParabolicStop *SARTrailing[];
CNRTRSdur *NRRT korkuluk[]; CParabolicStop ve CNRTRStop'un sınıflar, * işaretçi, SARTrailing[] ve NRTRTrailing[] dizileri olduğunu anlıyorum. Peki bu satırlar ne anlama geliyor? Bu EA'nın makalesi https://www.mql5.com/en/articles/134 diyor ki --- Nasıl anlaşılır? Ve bu diziler tam olarak nerede oluşturuluyor? Sınıfları dizilere yüklemek gerçekten mümkün mü? Veya sınıf nesneleri? Ve pratik bir bakış açısından ne için?
 //+------------------------------------------------------------------+
//|                                          Sample_TrailingStop.mq5 |
//|                                        MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property version    "1.00"

#include <Sample_TrailingStop.mqh> // подключение класса трейлинга

//--- input parameters
input double    SARStep     =   0.02 ;     // Шаг Parabolic
input double    SARMaximum  =   0.02 ;     // Максимум Parabolic
input int       NRTRPeriod  =   40 ;       // Период NRTR
input double    NRTRK       =   2 ;       // Коэффициент NRTR

string Symbols[]={ "EURUSD" , "GBPUSD" , "USDCHF" , "USDJPY" };

CParabolicStop *SARTrailing[];
CNRTRStop *NRTRTrailing[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   ArrayResize (SARTrailing, ArraySize (Symbols));   // изменение размера в соответствии с количеством используемых символов
   ArrayResize (NRTRTrailing, ArraySize (Symbols)); // изменение размера в соответствии с количеством используемых символов   
   for ( int i= 0 ;i< ArraySize (Symbols);i++)
     { // для всех символов
      SARTrailing[i]= new CParabolicStop(); // создание экземпляра класса CParabolicStop
      SARTrailing[i].Init(Symbols[i], PERIOD_CURRENT , false , true , true , 5 , 15 +i* 17 ,Silver,Blue); // инициализация экземпляра класса CParabolicStop 
       if (!SARTrailing[i].SetParameters(SARStep,SARMaximum))
        { // установка параметров экземпляра класса CParabolicStop 
         Alert ( "trailing error" );
         return (- 1 );
        }
      SARTrailing[i].StartTimer(); // запуск таймера
       //----
      NRTRTrailing[i]= new CNRTRStop(); // создание экземпляра класса CNRTRStop
      NRTRTrailing[i].Init(Symbols[i], PERIOD_CURRENT , false , true , true , 127 , 15 +i* 17 ,Silver,Blue); // инициализация экземпляра класса CNRTRStop 
       if (!NRTRTrailing[i].SetParameters(NRTRPeriod,NRTRK))
        { // установка параметров экземпляра класса CNRTRcStop 
         Alert ( "trailing error" );
         return (- 1 );
        }
      NRTRTrailing[i].StartTimer(); // запуск таймера         
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   for ( int i= 0 ;i< ArraySize (Symbols);i++)
     {
      SARTrailing[i].Deinit();
      NRTRTrailing[i].Deinit();
       delete (SARTrailing[i]);
       delete (NRTRTrailing[i]);
     }

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {

   for ( int i= 0 ;i< ArraySize (Symbols);i++)
     {
      SARTrailing[i].DoStoploss();
      NRTRTrailing[i].DoStoploss();
     }

  }
//+------------------------------------------------------------------+

void OnTimer ()
  {
   for ( int i= 0 ;i< ArraySize (Symbols);i++)
     {
      SARTrailing[i].Refresh();
      NRTRTrailing[i].Refresh();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam
                  )
  {

   for ( int i= 0 ;i< ArraySize (Symbols);i++)
     {
      SARTrailing[i].EventHandle(id,lparam,dparam,sparam);
      NRTRTrailing[i].EventHandle(id,lparam,dparam,sparam);
     }
  }
//+------------------------------------------------------------------+

Ve bu yıldızın nerede yazıldığını belirtmek zor değilse, belgelerde bir işaretçi * olarak. Bir şekilde gördüm, ama ders kitabına çoktan baktım ve bulamıyorum ((((

Как создать свой Trailing Stop
Как создать свой Trailing Stop
  • www.mql5.com
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5 минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
 

En iyisi, mümkün mü ve herhangi bir gösterge kullanmadan bir anlaşmayı açmak ve kapatmak için bir algoritma nasıl oluşturulur?

örneğin iki çizgi alıyoruz, bir trend çizgisi yukarı diğeri de aşağıda, üst üste uzanıyor, iki çizgi arasında bir kesişme noktası beliriyor, diyelim ki bu nokta zaman içinde 15-30'da, sonra herhangi bir taraftan başlamak için emrin tam olarak aynı anda otomatik olarak açılmasını nasıl sağlar, algoritmanın bu noktaları bulup pozisyon açmasını nasıl sağlar? Açıklama ve görüşlerinizi rica ediyorum.

Böyle bir T3'e dayalı bir Uzman Danışman yapmak mümkün müdür?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением...
 
Hey!!! Böyle bir soru var mı? Diziler halinde toplamanız gerekiyor, farklı zaman dilimlerinde gösterge tutamaçları, ancak böyle çıkıyor
 Fractal= iFractals ( Symbol (),tik);

yapılamaz(( Garip, neden bu parametrede asal sayılar kullanılabiliyor, ancak sayısal sabiti olan bir değişken değil?
 void OnTick ()
  {
   for ( int tik = 1 ; tik <= 6 ; tik++)
     {
      Fractal= iFractals ( Symbol (),tik);   // Вот эта tik переменная вызывает ошибку при компиляции

       switch (tik)
        {
         case 1 :
             CopyBuffer (Fractal, 0 , TimeCurrent (), Bars ( Symbol (), PERIOD_W1 ),FractalUP_W1);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
             CopyBuffer (Fractal, 1 , TimeCurrent (), Bars ( Symbol (), PERIOD_W1 ),FractalDown_W1); // заполнение масива FractalUp[] нижними фракталами на дневном графике
             //--- индексация как в таймсериях
             ArraySetAsSeries (FractalUP_W1, true );   //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
             ArraySetAsSeries (FractalDown_W1, true ); //Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
             break ;
         case 2 :
             CopyBuffer (Fractal, 0 , TimeCurrent (), Bars ( Symbol (), PERIOD_D1 ),FractalUP_D1);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
             CopyBuffer (Fractal, 1 , TimeCurrent (), Bars ( Symbol (), PERIOD_D1 ),FractalDown_D1); // заполнение масива FractalUp[] нижними фракталами на дневном графике
             //--- индексация как в таймсериях
             ArraySetAsSeries (FractalUP_D1, true );   //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
             ArraySetAsSeries (FractalDown_D1, true ); //Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
             break ;
         case 3 :
             CopyBuffer (Fractal, 0 , TimeCurrent (), Bars ( Symbol (), PERIOD_H4 ),FractalUP_H4);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
             CopyBuffer (Fractal, 1 , TimeCurrent (), Bars ( Symbol (), PERIOD_H4 ),FractalDown_H4); // заполнение масива FractalUp[] нижними фракталами на дневном графике
             //--- индексация как в таймсериях
             ArraySetAsSeries (FractalUP_H4, true );   //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
             ArraySetAsSeries (FractalDown_H4, true ); //Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
             break ;
         case 4 :
             CopyBuffer (Fractal, 0 , TimeCurrent (), Bars ( Symbol (), PERIOD_H1 ),FractalUP_H1);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
             CopyBuffer (Fractal, 1 , TimeCurrent (), Bars ( Symbol (), PERIOD_H1 ),FractalDown_H1); // заполнение масива FractalUp[] нижними фракталами на дневном графике
             //--- индексация как в таймсериях
             ArraySetAsSeries (FractalUP_H1, true );   //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
             ArraySetAsSeries (FractalDown_H1, true ); //Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
             break ;
         case 5 :
             CopyBuffer (Fractal, 0 , TimeCurrent (), Bars ( Symbol (), PERIOD_M30 ),FractalUP_30);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
             CopyBuffer (Fractal, 1 , TimeCurrent (), Bars ( Symbol (), PERIOD_M30 ),FractalDown_30); // заполнение масива FractalUp[] нижними фракталами на дневном графике
             //--- индексация как в таймсериях
             ArraySetAsSeries (FractalUP_30, true );   //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
             ArraySetAsSeries (FractalDown_30, true ); //Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
             break ;
         case 6 :
             CopyBuffer (Fractal, 0 , TimeCurrent (), Bars ( Symbol (), PERIOD_M15 ),FractalUP_15);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
             CopyBuffer (Fractal, 1 , TimeCurrent (), Bars ( Symbol (), PERIOD_M15 ),FractalDown_15); // заполнение масива FractalUp[] нижними фракталами на дневном графике
             //--- индексация как в таймсериях
             ArraySetAsSeries (FractalUP_15, true );   //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
             ArraySetAsSeries (FractalDown_15, true ); //Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
             break ;

        }
     }
 
Kira27 :
Hey!!! Böyle bir soru var mı? Diziler halinde toplamanız gerekiyor, farklı zaman dilimlerinde gösterge tutamaçları, ancak böyle çıkıyor
yapılamaz(( Garip, neden bu parametrede asal sayılar kullanılabiliyor , ancak sayısal sabiti olan bir değişken değil?

Çünkü bir zaman çerçevesi olmalı

handle= iFractals ( Symbol() , tf );

tanımlayıcı

Tanım

PERIOD_CURRENT

cari dönem

PERIOD_M1

1 dakika

PERIOD_M2

2 dakika

PERIOD_M3

3 dakika

PERIOD_M4

4 dakika

PERIOD_M5

5 dakika

PERIOD_M6

6 dakika

PERIOD_M10

10 dakika

PERIOD_M12

12 dakika

PERIOD_M15

15 dakika

PERIOD_M20

20 dakika

PERIOD_M30

30 dakika

PERIOD_H1

1 saat

PERIOD_H2

2 saat

PERIOD_H3

3 saat

PERIOD_H4

4 saat

PERIOD_H6

6 saat

PERIOD_H8

08:00

PERIOD_H12

12 saat

PERIOD_D1

1 gün

PERIOD_W1

1 hafta

PERIOD_MN1

1 ay

 
Kira27 :
Hey!!! Böyle bir soru var mı? Diziler halinde toplamanız gerekiyor, farklı zaman dilimlerinde gösterge tutamaçları, ancak böyle çıkıyor
yapılamaz(( Garip, neden bu parametrede asal sayılar kullanılabiliyor, ancak sayısal sabiti olan bir değişken değil?

MQL5'teki gösterge kolu BİR KEZ YAPILMALIDIR!!! Ve bunu OnInit() içinde yapmanız gerekiyor!!!

Neden: