Не пойму. Написал только на продажу. Применил индикатор к 15 минутке, в течении одного периода выдается несколько сигналов на продажу, что здесь не так?
...
if(PrevSignal <= 0)
{
if(ExtForceBuffer[SIGNAL_BAR] < 0 &&
ExtForceBuffer[SIGNAL_BAR+1] > 0)
{
PrevSignal = 1;
//PlaySound("Alert.wav");
//Alert("sStochastic (", Symbol(), ", ", Period(), ") - BUY!!!");
}
}
if(PrevSignal >= 0)
{
if(ExtForceBuffer[SIGNAL_BAR] > 0 &&
ExtForceBuffer[SIGNAL_BAR+1] < 0)
{
PrevSignal = -1;
PlaySound("Alert.wav");
Alert("Forse Index (", Symbol(), ", ", Period(), ") - SELL!!!");
}
}
...
Ещё вопрос. Как в сплывающем окне удалить предыдущие сигналы перед выводом нового, чтобы была только одна строка?
Не пойму. Написал только на продажу. Применил индикатор к 15 минутке, в течении одного периода выдается несколько сигналов на продажу, что здесь не так?
Ещё вопрос. Как в сплывающем окне удалить предыдущие сигналы перед выводом нового, чтобы была только одна строка?Я пользуюсь только PlaySound(SoundName), однократный сигнал получается. Есть и другие варианты кода, тоже работают.
По алерту ничего сказать не могу, видимо, очистить его не удастся.
да. интересно было бы посмотреть как добиться одноразового сигнала...
наверно нуно так:
//+------------------------------------------------------------------+ //| Force Index.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 DodgerBlue //---- input parameters extern int ExtForcePeriod=13; extern int ExtForceMAMethod=0; extern int ExtForceAppliedPrice=0; //---- buffers double ExtForceBuffer[]; bool firstrun=false; double sign=0; datetime newbartime=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init(){ string sShortName; SetIndexBuffer(0,ExtForceBuffer); SetIndexStyle(0,DRAW_LINE); sShortName="Force("+ExtForcePeriod+")"; IndicatorShortName(sShortName); SetIndexLabel(0,sShortName); SetIndexDrawBegin(0,ExtForcePeriod); firstrun=false; newbartime=Time[0]; sign=0; return(0); } //+------------------------------------------------------------------+ //| Force Index indicator | //+------------------------------------------------------------------+ int start(){ int nLimit; int nCountedBars=IndicatorCounted(); if(Bars<=ExtForcePeriod) return(0); if(nCountedBars>ExtForcePeriod) nCountedBars--; nLimit=Bars-nCountedBars; for(int i=0; i<nLimit; i++) ExtForceBuffer[i]=Volume[i]* (iMA(NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i)- iMA(NULL,0,ExtForcePeriod,0,ExtForceMAMethod,ExtForceAppliedPrice,i+1)); //если это не первый запуск расчетов тогда проверяем время открытия нулевого бара и если это новый бар //проверим одинаковые ли знаки у предидущего запомненного значения индикатора и текущего if(firstrun){ if (newbartime!=Time[0]){ newbartime=Time[0]; if((sign<0 && ExtForceBuffer[1]>0) || (sign>0 && ExtForceBuffer[1]<0)){ PlaySound("alert.wav"); sign=ExtForceBuffer[1]; } } //если это первый запуск расчетов тогда изменим firstrun и запомним время открытия нулевого бара и //посдеднее расчитанное значение индикатора }else{ firstrun=true; newbartime=Time[0]; sign=ExtForceBuffer[1]; } return(0); } //+------------------------------------------------------------------+
вот набросал на скорую руку, нужно проверить online, думаю все правильно
наверно нуно так:
вот набросал на скорую руку, нужно проверить online, думаю все правильно
Компилирует без проблем, но во время работы выдаёт критическую ошибку.
Компилирует без проблем, но во время работы выдаёт критическую ошибку.
у меня 229 билд, ошибок не было, вроде бы и сигнал как положено выдается, но нет времени понаблюдать
заменил PlaySound("alert.wav") на Print("alert.wav"), вот лог:
18:06:27 Force_Index_Sound USDJPY,M1: loaded successfully
18:06:27 Force_Index_Sound USDJPY,M1: initialized
18:07:03 Force_Index_Sound USDJPY,M1: alert.wav
18:18:03 Force_Index_Sound USDJPY,M1: alert.wav
18:25:03 Force_Index_Sound USDJPY,M1: alert.wav
18:39:03 Force_Index_Sound USDJPY,M1: alert.wav
наверно работает
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый вечер. У меня просьба - нужен звуковой сигнал на force index при пересечений уровня 0. В программировании не силён, поэтому прошу помочь кто сможет.
Force index со стандартными настройками: Метод МА - Exponential, по ценам Close, период - 13. Желательно, чтобы все параметры настраивались как у обычного force index.
Сигнал на пересечение как вверх так и вниз. Сигнал из стандартного набора звуков + сообщение с названием инструмента в окне которого произошло пересечение. Необходимо чтобы направление пересечения настраивалось, т.е. чтобы сигнал был только при пересечении наверх или только при пересечение вниз.