Tâche terminée
Spécifications
Здравствуйте. Я пока не очень хорошо разбираюсь в mql. Написал индикатор, но в нем есть проблема, которую не совсем решил (работает нестабильно).
Приведу пример несложных условий для открытия позиции, для простоты
for(i = 0; i < limit; i++) // участок от начала до конца всей истории баров
{
if (
iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,i)<iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,i)
&& iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,i+1)>iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,i+1) // если пересекаются ма20 и ма 50
)
SignalBufferBlue[i]=SignalBuffer[i]; // рисуется стрелка с этим проблем нет
}
Стрелка действительно рисуется всё ок. Но в момент рисования стрелки нужно послать звуковой сигнал.
Я знаю есть команда Alert. Если поставить ее в этом же цикле после команды рисования стрелки, то индикатор будет постоянно ПИЛИКАТЬ.
Я ничего умнее не придумал, запихнул alert в другой цикл ниже:
for(i = limit-3; i < limit-2; i++) // попытка рассмотреть только последний сформированный бар и бар до него. Иначе алерты постоянно будут пиликать.
{
if ( iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,i)<iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,i)
&& iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,i+1)>iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,i+1) // если пересекаются ма20 и ма 50
)
Alert("sMACD (", Symbol(), ", ", Period(), ") - ПРОДАЖА!!!"); // подать звуковое сообщение - продажа
}
НО К, СОЖАЛЕНИЮ, ЭТО РАБОТАЕТ НЕ СОВСЕМ ХОРОШО.
1. ПРИ ПЕРЕКЛЮЧЕНИИ ТАЙМФРЕЙМОВ ИНОГДА СРАБАТЫВАЕТ АЛЕРТ, НЕ ПОНЯТНО ПОЧЕМУ. ХОТЕЛОСЬ БЫ ЭТО УБРАТЬ.
2. СТРЕЛКИ РИСУЮТСЯ ВСЕГДА СТАБИЛЬНО, А АЛЕРТЫ ИНОГДА НЕ ОТСЫЛАЮТСЯ. ПОЧЕМУ ТОЖЕ НЕПОНЯТНО.
3. НЕОБХОДИМО ОТПРАВЛЯТЬ АЛЕРТЫ ПОСЛЕ СФОРМИРОВАВШЕГОСЯ БАРА.
ПОДСКАЖИТЕ КАКИЕ ОШИБКИ В МОЕЙ ПРОГРАММЕ, КАК БОЛЕЕ ГРАМОТНО ОРГАНИЗОВАТЬ ОТПРАВКУ АЛЕРТОВ?
СКОЛЬКО БУДУТ СТОИТЬ УСЛУГИ ПО ДОРАБОТКЕ ПРОГРАММЫ ?
ВО ВЛОЖЕНИИ МОЙ ИНДИКАТОР.
СПАСИБО ЗА ПОМОЩЬ .)