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

 
MakarFX :
bana göstergeni ver

Kene göstergesi .

 #property   indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua
double x[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   IndicatorBuffers( 1 );
   SetIndexStyle( 0 , DRAW_LINE );
   SetIndexBuffer ( 0 ,x);
   SetIndexDrawBegin( 0 , 0 );
   IndicatorDigits( 5 );
   SetIndexLabel( 0 , "x" );
   SetIndexShift( 0 , 0 );
   return ( 0 );
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double b=MarketInfo( Symbol (),MODE_BID);
   x[ 0 ]=b;
   for ( int j= ArraySize (x)- 1 ;j>= 1 ;j--){x[j]=x[j- 1 ];}
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
Oleg Bondarev :

Kene göstergesi .

İkincisi ne gösteriyor? Neden ayrılıyorlar?

Ne sıklıkla seviye atlamanız gerekiyor?

 
MakarFX :

İkincisi ne gösteriyor? Neden ayrılıyorlar?

Ne sıklıkla seviye atlamanız gerekiyor?

Henüz ikincisi yok. Prensip aynıdır, sadece bir filtre ile işaretleyin. Hizalama, yayınladığım şeyde desen göründüğü gibi olacaktır. Dalgalar üzerinde çalışmak gibi bir şey (bir dip belirdi, onu hizaladık, bir tepe belirdi - boyunca).

 
Oleg Bondarev :

Henüz ikincisi yok. Prensip aynıdır, sadece bir filtre ile işaretleyin. Hizalama, yayınladığım şeyde desen göründüğü gibi olacaktır. Dalgalar üzerinde çalışmak gibi bir şey (bir dip belirdi, onu hizaladık, bir tepe belirdi - boyunca).

birleştirilirlerse, bir sapma ekleyebilirsiniz.

   x[ 0 ]=b+ "отклонение" ;
ve hizalamanız gereken yere bağlı olarak sapma (+) veya (-) olacaktır.
 
MakarFX :

birleştirilirlerse, bir sapma ekleyebilirsiniz.

ve hizalamanız gereken yere bağlı olarak sapma (+) veya (-) olacaktır.

Sapma kalıcı olmayacaktır. Çizgiyi fare ile hareket ettirmeyi düşündüm, ama görünüşe göre bu mümkün değil. ne yazık ki

 
Oleg Bondarev :

Sapma kalıcı olmayacaktır. Çizgiyi fare ile hareket ettirmeyi düşündüm, ama görünüşe göre bu mümkün değil. ne yazık ki

Fare yok ... serbest çalışanlar fare sapma ayarı yapabilir, ancak para için (
Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Добрый день. Нужен советник на основе индикаторов МА. Вход/выход по пересечению линий. В настройках задаются периоды, сдвиги и методы расчета, метод управления капиталлом, мартнгейл. Код для МТ4/Мт5 Должен работать в тестере. Срок выполнение 2-3 дня Здравствуйте. У меня есть утилита! Она сама выставляет TP и SL мне нужно доработать её что...
 

OnDeinit(-1) işlevi çağrıldığında göstergenin neden kaldırılmadığını lütfen bana bildirin.

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Если некоторое имя, которое не было описано ранее, появляется в выражении и за ним следует левая круглая скобка, то оно по контексту считается именем некоторой функции. Аргументы (формальные параметры) передаются по значению, т. е. каждое выражение x1, . . . , xn вычисляется и значение передается функции. Порядок вычисления выражений и порядок...
 
MakarFX :
Fare yok ... serbest çalışanlar fare sapma ayarı yapabilir, ancak para için (

Evet, çalışma sisteminin hemen sipariş edildiğinden emin olurum) Ve deneylere para harcamak kârsızdır.

 
Oleg Bondarev :

Sapma kalıcı olmayacaktır. Çizgiyi fare ile hareket ettirmeyi düşündüm, ama görünüşe göre bu mümkün değil. ne yazık ki

fareler, fare tıklamasının koordinatlarına ve tıklama yerinde bir gösterge çizgisinin varlığına ihtiyaç duyar, bunu yapmadım veya daha doğrusu alt pencerede aramadım, KB'de bir tıklama örneği yayınladım ana pencerenin çubuklarında ve çubukla ilgili bilgileri görüntüleyerek - görebilirsiniz

deneyler için düğmelerle bir gösterge çizdim - düğmeleri kontrol ettim gösterge çizgisini hareket ettirin

 #property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com/ru/users/igorm"
#property version    "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots    1
//--- plot line1
#property indicator_label1    "line1"
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
input int shift   = 100 ;
input int XButton   = 20 ;
#include <Controls\Button.mqh>
//--- indicator buffers
double          line1Buffer[];
double          Yshift;
CButton button1, button2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
{
   SetIndexBuffer ( 0 , line1Buffer);
   SetIndexEmptyValue( 0 , 0.0 );
   IndicatorDigits( Digits );
   Yshift = 0.0 ;
   button1.Create( 0 , "Mybutton1" + ( string ) rand (), ChartWindowFind (), XButton, 20 , 50 , 50 );
   button1.Text( "+" );
   button2.Create( 0 , "Mybutton2" + ( string ) rand (), ChartWindowFind (), XButton, 70 , 50 , 100 );
   button2.Text( "-" );
//---
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long & lparam,
                   const double & dparam,
                   const string & sparam
                 )
{
   if (id == CHARTEVENT_OBJECT_CLICK )
   {
       bool isRedraw = false ;
       if (sparam == button1.Name())
      {
         Yshift += _Point * ( double )shift;
         isRedraw = true ;
         button1.Pressed( false );
      }
       if (sparam == button2.Name())
      {
         Yshift -= _Point * ( double )shift;
         isRedraw = true ;
         button2.Pressed( false );
      }
       if (isRedraw)
      {
         for ( int i = ArraySize (line1Buffer) - 1 ; i >= 0 ; i--)
            line1Buffer[i] = Close[i] + Yshift;
      }
   }
}
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
   int i, limit = prev_calculated == 0 ? rates_total - 1 : rates_total - prev_calculated + 1 ;
   for (i = limit; i >= 0 ; i--)
   {
      line1Buffer[i] = close[i] + Yshift;
   }
   return (rates_total);
}
göstergenin hareket ettiğini görmek için gösterge alt penceresine yatay bir çizgi bırakın ... oldukça havalı oldu)))
 
Igor Makanu :

farelerin fare tıklama koordinatlarına ihtiyacı var

Daha kolay bir seçenek var, Trendline'ı doğru yere taşıyorsun ve bir hindi onu takip ediyor

gibi bir şey

         // получаем точки
         string name; double b;
         int i, j= 0 , n = ObjectsTotal ();
         for (i = 0 ; i<=n; i++)
        {
                name = ObjectName (i);
                 if ((ObjectType(name)== OBJ_TREND )&&name==ID)
                {
                        tX[ 0 ]=ObjectGet(name, OBJPROP_TIME1); pY[ 0 ]=ObjectGet(name, OBJPROP_PRICE1);
                        tX[ 1 ]=ObjectGet(name, OBJPROP_TIME2); pY[ 1 ]=ObjectGet(name, OBJPROP_PRICE2);
                         break ;
                }
        }