MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1095

[삭제]  
MakarFX :
당신의 지표를 줘

눈금 표시기 .

 #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 :

눈금 표시기 .

두 번째 것은 무엇을 보여줍니까? 그들은 왜 갈라지는가?

얼마나 자주 수평을 맞춰야 합니까?

[삭제]  
MakarFX :

두 번째 것은 무엇을 보여줍니까? 그들은 왜 갈라지는가?

얼마나 자주 수평을 맞춰야 합니까?

두 번째는 아직 없습니다. 원리는 필터만 있으면 동일합니다. 정렬은 제가 포스팅한 패턴대로 하겠습니다. 파도 작업과 같은 것(바닥이 나타났고, 정렬하고, 피크가 나타났습니다).

 
Oleg Bondarev :

두 번째는 아직 없습니다. 원리는 필터만 있으면 동일합니다. 정렬은 제가 포스팅한 패턴대로 하겠습니다. 파도 작업과 같은 것(바닥이 나타났고, 정렬하고, 피크가 나타났습니다).

그것들이 하나로 결합되면 편차를 추가 할 수 있습니다

   x[ 0 ]=b+ "отклонение" ;
정렬해야 하는 위치에 따라 편차는 (+) 또는 (-)가 됩니다.
[삭제]  
MakarFX :

그것들이 하나로 결합되면 편차를 추가 할 수 있습니다

정렬해야 하는 위치에 따라 편차는 (+) 또는 (-)가 됩니다.

편차는 영구적이지 않습니다. 마우스로 선을 옮기고 싶다는 생각이 들었지만, 아무래도 불가능한 것 같습니다. 슬프게도(

 
Oleg Bondarev :

편차는 영구적이지 않습니다. 마우스로 선을 옮기고 싶다는 생각이 들었지만, 아무래도 불가능한 것 같습니다. 슬프게도(

마우스가 없습니다 ... 프리랜서가 마우스 편향 조정을 할 수 있지만 을 위해 (
Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Добрый день. Нужен советник на основе индикаторов МА. Вход/выход по пересечению линий. В настройках задаются периоды, сдвиги и методы расчета, метод управления капиталлом, мартнгейл. Код для МТ4/Мт5 Должен работать в тестере. Срок выполнение 2-3 дня Здравствуйте. У меня есть утилита! Она сама выставляет TP и SL мне нужно доработать её что...
 

OnDeinit(-1) 함수 가 호출될 때 표시기가 제거되지 않는 이유를 알려주십시오.

Документация по MQL5: Основы языка / Функции / Вызов функции
Документация по MQL5: Основы языка / Функции / Вызов функции
  • www.mql5.com
Если некоторое имя, которое не было описано ранее, появляется в выражении и за ним следует левая круглая скобка, то оно по контексту считается именем некоторой функции. Аргументы (формальные параметры) передаются по значению, т. е. каждое выражение x1, . . . , xn вычисляется и значение передается функции. Порядок вычисления выражений и порядок...
[삭제]  
MakarFX :
마우스가 없습니다 ... 프리랜서가 마우스 편향 조정을 할 수 있지만 을 위해 (

예, 작업 시스템이 즉시 주문되었다고 확신합니다) 그리고 실험에 돈을 쓰는 것은 수익성이 없습니다.

 
Oleg Bondarev :

편차는 영구적이지 않습니다. 마우스로 선을 옮기고 싶다는 생각이 들었지만, 아무래도 불가능한 것 같습니다. 슬프게도(

마우스는 마우스 클릭의 좌표와 클릭 위치에 표시선 이 있어야 합니다. 이 작업을 수행하지 않았거나 하위 창에서 찾지 않았습니다. KB에서 클릭하는 예를 게시했습니다. 메인 창의 막대에 표시되고 막대에 대한 정보 표시 - 다음을 볼 수 있습니다.

실험을 위해 버튼으로 표시기를 스케치했습니다. 버튼이 표시기 선을 이동하는지 확인했습니다.

 #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);
}
표시기가 움직이는 것을 확인하려면 표시기 하위 창에 수평선을 놓으십시오 ... 꽤 멋지게 밝혀졌습니다)))
 
Igor Makanu :

마우스에는 마우스 클릭 좌표가 필요합니다.

더 쉬운 옵션이 있습니다. 추세선을 올바른 위치로 이동하면 칠면조가 따라갑니다.

뭔가

         // получаем точки
         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 ;
                }
        }