안녕하세요! https://www.mql5.com/ru/articles/648 기사에서 Expert Advisor를 수정하고 내 기능을 삽입하려고 합니다. 문제는 지표를 프랙탈로 대체하는 것이 불가능하다는 점이다. signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE)인 경우 iFractals(Symbols[s], PERIOD_M15)로 대체합니다. 그런 다음 잘못된 가격이 제공됩니다. 도움을 주고 코드를 수정할 수 있습니까?
//+------------------------------------------------------------------+//| Получает хэндлы индикаторов |//+------------------------------------------------------------------+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 ]);
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
안녕하세요! https://www.mql5.com/ru/articles/648 기사에서 Expert Advisor를 수정하고 내 기능을 삽입하려고 합니다. 문제는 지표를 프랙탈로 대체하는 것이 불가능하다는 점이다. signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE)인 경우 iFractals(Symbols[s], PERIOD_M15)로 대체합니다. 그런 다음 잘못된 가격이 제공됩니다. 도움을 주고 코드를 수정할 수 있습니까?
손으로 만드나요?
아니요.
안녕하세요!
이 질문을 도와주세요.
Expert Advisor 테스트 종료 시 사용한 표준 지표가 MT4 차트 창에 표시되지 않도록 하려면 어떻게 해야 하나요?
안녕하세요!
이 질문을 도와주세요.
Expert Advisor 테스트 종료 시 사용한 표준 지표가 MT4 차트 창에 표시되지 않도록 하려면 어떻게 해야 하나요?
아니요.
생성된 차트의 ID는 다음과 같이 얻을 수 있습니다.
HideTestIndicators() 함수에 대한 도움말 보기
생성된 차트의 ID는 다음과 같이 얻을 수 있습니다.