Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 534

 
AlexeyVik:

Use este https://docs.mql4.com/ru/indicators/imaonarray

Por favor, olhe o código, isto é correto?

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

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:
Agora vão começar a explicar-lhe que o ângulo depende da escala do gráfico e não pode ser feito...
Mas se você não tomar o ângulo, mas apenas a tangente do ângulo, você pode fazer isso.

Eu me pergunto se é possível descobrir o que é e como deve ser determinado. Eu sei que na escola de geometria ensinavam as tangentes e as catangentes, mas infelizmente não me lembro) perguntei ao Fresh no fórum, mas não recebi uma resposta definitiva.
 

Se Yandex for banido, você pode usar o Google.

Em resumo, a tangente de um ângulo em um triângulo de ângulo reto é a razão entre a perna oposta e a perna adjacente.

Traduzindo isto para a situação no diagrama MT, obtemos - a perna oposta será igual aos pontos (em pct.) e a adjacente em barras (também em pct.).

Exemplo:

EURUSD abertura 6,03 1,3732 abertura 7:03 1,3860 total 128 pips. Em M1 1440 barras tan = 128/1440=0,08889

Esta equação é basicamente usada na função ObjectGetValueByShift()

 
É possível usar um servidor de terceiros? Só tenho este conectado http://buy.fineproxy.org/
 
Favor explicar como encaixar os dados de uma tabela (*.csv) em uma matriz estática tridimensional.
A primeira coluna da tabela contém o índice para a primeira dimensão da matriz,
A segunda coluna contém o índice para a segunda dimensão da matriz,
A terceira e outras colunas contêm os próprios valores para a terceira dimensão da matriz.
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:
Favor explicar como colocar os dados de uma tabela (*.csv) em uma matriz estática tridimensional.
A primeira coluna da tabela tem um índice sobre a primeira dimensão da matriz,
A segunda coluna é o índice para a segunda dimensão da matriz,
Na terceira e outras colunas - os próprios valores de acordo com a terceira dimensão da matriz.



Se para análise no próprio Excel, a tabela de resumo.

Ou mostrar alguns dos dados, parece que teremos de ter matrizes de cordas auxiliares que corresponderão ao valor do índice.

 
splxgf:


.... parece que teremos de ter matrizes de cordas auxiliares que corresponderão ao valor do índice.

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;                                                    // Выход из функции
   }
 

Como apagar todos os objetos como OBJ_ARROW_RIGHT_PRICE?

Objetos de comandoDeleteAll(OBJ_ARROW_RIGHT_PRICE) não apaga! mesmo depois de mudar o cronograma (para redesenhar todo o gráfico com força)

Escrevi um roteiro simples, nos comentários que ele escreve na tela:

Alerta("obj_arrow_right_price=",OBJ_ARROW_RIGHT_PRICE) ; // =36

ObjectCreate("MyArrow",OBJ_ARROW_RIGHT_PRICE,0,Time[1],Open[1]) ; // criado OBJ_ARROW_RIGHT_PRICE

Alerta("objectTipe=", ObjectType("MyArrow"), "ARROW CODE=",ObjectGet("MyArrow",OBJPROP_ARROWCODE) ) ; // pesadelo "objectType=" =22, não entendeu porque não 36 como na primeira linha ?

ResetLastError() ;

Alert("script delete arrow right price=",ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE)," lastError=",GetLastError() ) ; // objetos excluídos =0, código de erro =0

Continuo o experimento escrevendo: ObjetosDeleteAll(22) ; // objetos apagados =0 novamente

 
VoDyaMon:

Como apagar todos os objetos como OBJ_ARROW_RIGHT_PRICE ?


Leia a ajuda mais uma vez:

ObjetosDeleteAll

Apaga todos os objetos de um tipo especificado e em uma subjanela especificada.

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

Se os objetos estiverem na subjanela do gráfico principal:

ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE);
 
isn-88:


Leia a ajuda novamente:

ObjetosDeleteAll

Deleta todos os objetos do tipo especificado e na subjanela especificada do gráfico.

Se os objetos estiverem na subjanela principal do gráfico:

Apenas não sugira opções bobas. Este comando removerá todos os objetos do gráfico ao todo.
Razão: