[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 42

 
TarasBY:

В вызове индикатора отсутствует одна переменная - буфер!!!


работает  .спсибо ище раз 
 

Вопрос знатокам. 

есть код на реальном графике коменты показывает верно. в тестере стратегий все значения имеют значение равны 2147483647

Что тут не так?

или в проверку надо ставить еще на EMPTY_VALUE?

И надо ли всегда нормализовать полученные данные с индикаторов для их сравнения между собой в 5 знаке? 

 

double adxLastBuy,adxLastSell,adxLast;

for (int i=0; i<Bars; i++)
{
   adxLastBuy=iCustom(NULL,0,"Adx_crossing",ADXbars,CountBars,0,i); if (adxLastBuy>0) break;
   
}
for (int j=0; j<Bars; j++)
{
   
   adxLastSell=iCustom(NULL,0,"Adx_crossing",ADXbars,CountBars,1,j); if (adxLastSell>0) break;
}

for (int k=0; k<Bars; k++)
{
   adxLast=iCustom(NULL,0,"Adx_crossing",ADXbars,CountBars,0,k); if (adxLast>0) break;
   adxLast=iCustom(NULL,0,"Adx_crossing",ADXbars,CountBars,1,k); if (adxLast>0) break;
}



 Comment("Цена последнего ADX Покупки: ", adxLastBuy, " Цена последнего ADX продажи: ", adxLastSell, " Последний сигнал ", adxLast );
 
Twilight:

Вопрос знатокам. 

есть код на реальном графике коменты показывает верно. в тестере стратегий все значения имеют значение равны 2147483647

Что тут не так?

или в проверку надо ставить еще на EMPTY_VALUE?

И надо ли всегда нормализовать полученные данные с индикаторов для их сравнения между собой в 5 знаке? 

Обязательно при использовании iCustom. Типа:
if(signal!=0 && signal!=EMPTY_VALUE){
   BuySignal=true;
}
 
ммм ...есть ище проблема ..свуковой сигнал иногда звучит так как задан в коде   News.wav   а чаще звенит Alert.wav

#property copyright "Copyright © 2012"
#property link      "Не ссать  против ветра "
 
 extern bool       Будильник      = true ;
 extern string SoundFile      =  "News.wav";
 
int start ()                                  
{
 double  a=iCustom(NULL,0,"HMA_Russian_Color",5,MODE_LWMA,PRICE_MEDIAN,"Uptrend[]",0); 
 double  b=iCustom(NULL,0,"HMA_Russian_Color",8,MODE_LWMA,PRICE_MEDIAN,"Uptrend[]",0); 
 
if (Будильник ==true)
{

  {
 if ( a > b ) 
       
 {  
  Alert("BUY
  PlaySound(SoundFile);
  Sleep(100000);
  }
 }
}


return(0);}
 
odiseif:
ммм ...есть ище проблема ..свуковой сигнал иногда звучит так как задан в коде   News.wav   а чаще звенит Alert.wav

подскажите пожалуйста где ошибка 
 

Большая просьба помочь, подскажите, как в двух-трех строчках реализовать код советника:

При поступлении сигнала (напр. пересечения двух МА)

  1.Советник определяет  время поступления сигнала(в часах, минутах),запоминает его;

  2.Отсчитывает одну минуту.

Далее, готовность совершить какое-либо действие(напр. открытие ордера)
 
Twilight:

Вопрос знатокам. 

есть код на реальном графике коменты показывает верно. в тестере стратегий все значения имеют значение равны 2147483647

Что тут не так?

или в проверку надо ставить еще на EMPTY_VALUE?

И надо ли всегда нормализовать полученные данные с индикаторов для их сравнения между собой в 5 знаке? 

У индикаторного буфера есть понятие "пустое значение". Оно (по умолчанию) равно EMPTY_VALUE, НО его можно изменить посредством функции SetIndexEmptyValue(). Именно это значение буфер не отрисовывает на графике (если он ВООБЧЕ что-либо рисует). На его отсутствие и нужно делать проверку, если есть на то необходимость.
 
odiseif:
ммм ...есть ище проблема ..свуковой сигнал иногда звучит так как задан в коде   News.wav   а чаще звенит Alert.wav

Здесь написана ерунда:

 double  a=iCustom(NULL,0,"HMA_Russian_Color",5,MODE_LWMA,PRICE_MEDIAN,"Uptrend[]",0); 
 double  b=iCustom(NULL,0,"HMA_Russian_Color",8,MODE_LWMA,PRICE_MEDIAN,"Uptrend[]",0);

Почитайте про iCustom().

 
Andrey-F:

Большая просьба помочь, подскажите, как в двух-трех строчках реализовать код советника:

При поступлении сигнала (напр. пересечения двух МА)

  1.Советник определяет  время поступления сигнала(в часах, минутах),запоминает его;

  2.Отсчитывает одну минуту.

Далее, готовность совершить какое-либо действие(напр. открытие ордера)

В глобальную переменную пишите значение времени в момент поступления сигнала:

    if (Signal) gdt_TimeSignal = TimeCurrent();

а затем отсчитываете свою минуту (можно так):

    if (gdt_TimeSignal != 0) if (iBarShift (NULL, 1, gdt_TimeSignal) == 1)
    {
        //---- Открываете ордер
        OrderSend ();
        gdt_TimeSignal = 0;
    }

Это один из вариантов решения отслеживания времени после наступления какого-то события.

 
TarasBY:

В глобальную переменную пишите значение времени в момент поступления сигнала:

а затем отсчитываете свою минуту (можно так):

Это один из вариантов решения отслеживания времени после наступления какого-то события.



Еще вариант, можно устанавливать любое время после поступления сигнала
if (Signal) gdt_TimeSignal = TimeCurrent();
//
//
//
if (TimeCurrent()-gdt_TimeSignal >=60)
     {
     //
     }
Причина обращения: