Tünaydın! https://www.mql5.com/ru/articles/648 makalesinden Expert Advisor'ı değiştiriyorum ve kendi işlevimi eklemeye çalışıyorum. Sorun, göstergeyi bir fraktal ile değiştirmenin imkansız olmasıdır. Eğer signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE) ile değiştiririm iFractals(Symbols[s], PERIOD_M15); o zaman yanlış fiyat verilir. Yardım edip kodu düzeltebilir misiniz?
//+------------------------------------------------------------------+//| Получает хэндлы индикаторов |//+------------------------------------------------------------------+void GetIndicatorHandles()
{
//--- Пройдемся по всем символамfor ( int s= 0 ; s<NUMBER_OF_SYMBOLS; s++)
{
//--- Если торговля по этому символу разрешенаif (Symbols[s]!= "" )
{
//--- Если хэндл еще не полученif (signal_indicator_handles[s]== INVALID_HANDLE )
{
//--- Получим хэндл индикатора
signal_indicator_handles[s]= iMA (Symbols[s], _Period ,IndicatorPeriod[s], 0 , MODE_SMA , PRICE_CLOSE );
//--- Если не удалось получить хендл индикатораif (signal_indicator_handles[s]== INVALID_HANDLE )
Print ( "Не удалось получить хэндл индикатора для символа " +Symbols[s]+ "!" );
}
}
}
}
//+------------------------------------------------------------------+//| Получает значения индикаторов |//+------------------------------------------------------------------+bool GetIndicatorsData( int symbol_number)
{
//--- Количество значений индикаторного буфера для определения торгового сигнала int NumberOfValues= 3 ;
//--- Если хэндл индикатора был полученif (signal_indicator_handles[symbol_number]!= INVALID_HANDLE )
{
//--- Установим обратный порядок индексации (... 3 2 1 0)ArraySetAsSeries (indicator[symbol_number].value, true );
//--- Получим значения индикатораif ( CopyBuffer (signal_indicator_handles[symbol_number], 0 , 0 ,NumberOfValues,indicator[symbol_number].value)<NumberOfValues)
{
Print ( "Не удалось скопировать значения (" +
Symbols[symbol_number]+ "; " +TimeframeToString( _Period )+ ") в массив indicator! Ошибка (" +
IntegerToString ( GetLastError ())+ "): " +ErrorDescription( GetLastError ())+ "" );
return ( false );
}
return ( true );
}
//--- Если хэндл индикатора не получен, то...else
{
// ...попробуем получить его еще раз
GetIndicatorHandles();
}
return ( false );
}
Проверка
Print ( "++++++++indicator[symbol_number][0]" ,Symbols[symbol_number], "= " ,indicator[symbol_number].value[ 0 ]);
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
Merhaba! Bana ilgimi çekmeyen kategori haberlerini kapatıp MT5'te haber penceresini spam olarak göndermenin mümkün olup olmadığını söyler misiniz? Ve nasıl yapılır?
Tünaydın! https://www.mql5.com/ru/articles/648 makalesinden Expert Advisor'ı değiştiriyorum ve kendi işlevimi eklemeye çalışıyorum. Sorun, göstergeyi bir fraktal ile değiştirmenin imkansız olmasıdır. Eğer signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE) ile değiştiririm iFractals(Symbols[s], PERIOD_M15); o zaman yanlış fiyat verilir. Yardım edip kodu düzeltebilir misiniz?
Elle mi oluşturuyorsunuz?
Numara.
Merhaba!
Bu soruya yardım edin.
Expert Advisor testinin sonunda, kullanılan standart göstergenin MT4 grafik penceresinde görüntülenmemesi için nasıl yapılır?
Merhaba!
Bu soruya yardım edin.
Expert Advisor testinin sonunda, kullanılan standart göstergenin MT4 grafik penceresinde görüntülenmemesi için nasıl yapılır?
Numara.
Oluşturulan grafiğin kimliğini şu şekilde alabilirsiniz:
HideTestIndicators() işlevi için yardıma bakın
Oluşturulan grafiğin kimliğini şu şekilde alabilirsiniz: