포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 534

 
AlexeyVik :

이것을 사용하십시오 https://docs.mql4.com/ru/indicators/imaonarray

코드를 봐주세요, 맞나요?

 //+------------------------------------------------------------------+
//|Определяем, можно ли торговать исходя из волатильности            |
//+------------------------------------------------------------------+

bool Volatilnost( int ATRTimeframe, int ATRPeriod, int PerShortMA, int PerLongMA, int ma_method)
   {
   bool   res = false ;
   double    atr_curr[ 101 ];
   double    iatr_curr;
   
   ArraySetAsSeries (atr_curr, true );
   
   for ( int i= 100 ; i>= 0 ; i--)  
   {
   atr_curr[i]= iATR ( NULL , ATRTimeframe, ATRPeriod, i) ;
   if (i== 1 ){iatr_curr=atr_curr[i];}
   }
   double    ShortMA= iMAOnArray ( atr_curr, 0 , PerShortMA, 0 , ma_method, 1 ); 
   double    LongMA = iMAOnArray ( atr_curr, 0 , PerLongMA, 0 , ma_method,   1 ); 

   if (ShortMA < LongMA)res = false ; // Не работаем
         else res = true ;
       
   return (res);
   }
 
AlexeyVik :
이제 그들은 각도가 그래프의 크기에 따라 달라지며 이것은 할 수 없다고 설명하기 시작할 것입니다...
그러나 각도가 아니라 이 각도의 탄젠트만 취하면 계획을 충분히 수행할 수 있습니다.

흥미롭지만 어떻게 든 그것이 무엇인지, 어떻게 결정하는지 더 자세히 알 수 있습니다. 접선과 카탄젠트가 학교에서 기하학에서 배웠다는 것을 알고 있지만 슬프게도 기억이 나지 않습니다.) 포럼에서 Fresh에게 물었지만 구체적인 답변을 받은 적이 없습니다.
 

Yandex에서 차단된 경우 Google을 사용할 수 있습니다.

즉, 직각 삼각형에서 각의 접선은 반대쪽 다리와 인접한 다리의 비율입니다.

이것을 MT 차트의 상황으로 변환하면 반대쪽 다리는 포인트(단위)와 같고 인접한 다리는 막대(단위)와 같습니다.

예시:

시가 EURUSD 6.03 1.3732 시가 7:03 1.3860 총 128 포인트. M1 1440 막대에서 tan = 128/1440=0.08889

기본적으로 이 방정식은 ObjectGetValueByShift() 함수에서 사용됩니다.

 
타사 서버를 사용할 수 있습니까? 나는 이것을 http://buy.fineproxy.org/ 에 연결했습니다.
 
테이블(*.csv)의 데이터를 3차원 정적 배열 로 밀어 넣는 방법을 설명하십시오.
테이블의 첫 번째 열 - 배열의 첫 번째 차원에 대한 인덱스,
두 번째 - 배열의 두 번째 차원에 의한 인덱스,
세 번째 및 추가 열 - 배열의 세 번째 차원에 따른 값 자체.
 void AAA()
   {
     int        Handle;                                           // Файловый описатель
     string     File_Name = "AAA.csv" ;                           // Имя открываемого файла

     string     str_1 = "" ;                                       //  1 Номер индекса по первому измерению
     string     str_2 = "" ;                                       //  2 Номер индекса по второму измерению
     string     str_3 = "" ;                                       //  3 Значение
     string     str_4 = "" ;                                       //  4 Значение
     string     str_5 = "" ;                                       //  5 Значение

    Handle= FileOpen (File_Name, FILE_READ , ";" );                 // Открытие файла
    
     while ( FileIsEnding (Handle)== false )                         // До тех пор, пока файловый...
        {                                                       // ...указатель не в конце файла
         // Чтение данных из строки до файлового разделителя
         str_1 = FileReadString (Handle);                       //  1 Номер индекса по первому измерению
         str_2 = FileReadString (Handle);                       //  2 Номер индекса по второму измерению
         str_3 = FileReadString (Handle);                       //  3 Значение
         str_4 = FileReadString (Handle);                       //  4 Значение
         str_5 = FileReadString (Handle);                       //  5 Значение
         
         if ( FileIsEnding (Handle)== true )                         // Файловый указатель в конце файла
               break ;                                           // Выход из цикла чтения

         ????????????????????????????????????????????????????
        }
     FileClose (Handle);                                         // Закрываем файл
    return ;                                                     // Выход из функции
   }
 
Leo59 :
테이블(*.csv)의 데이터를 3차원 정적 배열로 밀어 넣는 방법을 설명하십시오.
테이블의 첫 번째 열 - 배열의 첫 번째 차원에 대한 인덱스,
두 번째 - 배열의 두 번째 차원에 의한 인덱스,
세 번째 및 추가 열 - 배열의 세 번째 차원에 따른 값 자체.



Excel 자체에서 분석하는 경우 피벗 테이블입니다.

글쎄, 또는 데이터의 일부를 보여주려면 인덱스 값과 일치하는 보조 문자열 배열을 가져와야 할 것 같습니다.

 
splxgf :


.... 인덱스 값과 일치하는 보조 문자열 배열을 가져와야 할 것 같습니다.

 void AAA()
   {
     int        Handle;                                           // Файловый описатель
     string     File_Name = "AAA.csv" ;                           // Имя открываемого файла

     string     str_1 = "" ;                                       //  1 Номер индекса по первому измерению
     string     str_2 = "" ;                                       //  2 Номер индекса по второму измерению
     string     str_3 = "" ;                                       //  3 Значение
     string     str_4 = "" ;                                       //  4 Значение
     string     str_5 = "" ;                                       //  5 Значение

    Handle= FileOpen (File_Name, FILE_READ , ";" );                 // Открытие файла
    
     while ( FileIsEnding (Handle)== false )                         // До тех пор, пока файловый...
        {                                                       // ...указатель не в конце файла
         // Чтение данных из строки до файлового разделителя
         str_1 = FileReadString (Handle);                       //  1 Номер индекса по первому измерению
         str_2 = FileReadString (Handle);                       //  2 Номер индекса по второму измерению
         str_3 = FileReadString (Handle);                       //  3 Значение
         str_4 = FileReadString (Handle);                       //  4 Значение
         str_5 = FileReadString (Handle);                       //  5 Значение
         
         if ( FileIsEnding (Handle)== true )                         // Файловый указатель в конце файла
               break ;                                           // Выход из цикла чтения

// Завели строковый массив

         // Преобразование типов данных и запись в масссив
         ArrayResize (Mas1, SizeMas1+ 1 );                         // Увеличили размер массива Mas1

         Mas1[SizeMas1][ 0 ] = StrToInteger (str_1);               //  0 Номер индекса по первому измерению
         Mas1[SizeMas1][ 1 ] = StrToInteger (str_2);               //  1 Номер индекса по второму измерению
         Mas1[SizeMas1][ 2 ] = StrToDouble (str_3);               //  2 Значение
         Mas1[SizeMas1][ 3 ] = StrToDouble (str_4);               //  3 Значение
         Mas1[SizeMas1][ 4 ] = StrToDouble (str_5);               //  4 Значение
         SizeMas1++;                                           // Новый размер массива Mas1

// Что дальше  ????????????????????????????????????????????????????

        }
     FileClose (Handle);                                         // Закрываем файл
     return ;                                                     // Выход из функции
   }
 

예를 들어 OBJ_ARROW_RIGHT_PRICE 와 같은 모든 개체를 삭제하는 방법은 무엇입니까?

ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE) 명령은 ! 기간을 변경한 후에도 (차트 전체를 강제로 다시 그리기 위해)

나는 간단한 스크립트를 작성했는데, 주석에서 화면에 쓰는 내용은 다음과 같습니다.

경고("obj_arrow_right_price=",OBJ_ARROW_RIGHT_PRICE) ; // =36

ObjectCreate("MyArrow",OBJ_ARROW_RIGHT_PRICE,0,시간[1],열기[1]) ; // 생성된 OBJ_ARROW_RIGHT_PRICE

경고( "objectTipe=", ObjectType("MyArrow")," ARROW CODE=",ObjectGet("MyArrow",OBJPROP_ARROWCODE) ) ; // 악몽 "objecType=" =22, 첫 번째 줄과 같이 36이 아닌 이유를 이해하지 못함 ??

ResetLastError() ;

Alert("스크립트 오른쪽 화살표 삭제 가격=",ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE)," lastError=",GetLastError() ) ; // 원격 객체 = 0, 오류 코드 = 0

나는 실험을 추가로 씁니다. ObjectsDeleteAll(22) ; // 그리고 다시 삭제된 객체 =0

 
VoDyaMon :

OBJ_ARROW_RIGHT_PRICE와 같은 모든 개체를 삭제하는 방법은 무엇입니까?


도움말을 다시 읽으십시오.

개체모두 삭제

지정된 차트 하위 창에서 지정된 유형을 가진 모든 개체를 삭제합니다.

 int    ObjectsDeleteAll (
   int    window= EMPTY ,       // индекс окна
   int    type= EMPTY          // тип объекта для удаления
   );

개체가 기본 차트 창에 있는 경우:

 ObjectsDeleteAll ( 0 , OBJ_ARROW_RIGHT_PRICE );
 
isn-88 :


도움말을 다시 읽으십시오.

개체모두 삭제

지정된 차트 하위 창에서 지정된 유형을 가진 모든 개체를 삭제합니다.

개체가 기본 차트 창에 있는 경우:

어리석은 옵션을 조언할 필요는 없습니다. 이 명령은 차트에서 모든 개체를 제거합니다.
사유: