учусь программировать - страница 2

 
Alexey Viktorov:
Это называется "Игра в поддавки" Открываем Sell и когда сделка будет в минусе надо перевернуться и ждать когда Buy будет в минусе...

я не говорю что это Грааль и не в коем случае это не годится для торговли . для себя  ставлю другие цели 1 написать тот код который я хочу даже если это бредовая идея

и проанализировать как рынок будет себя вести при такой торговле

 
Mikhail Lebedev:

я не говорю что это Грааль и не в коем случае это не годится для торговли . для себя  ставлю другие цели 1 написать тот код который я хочу даже если это бредовая идея

и проанализировать как рынок будет себя вести при такой торговле

хорошая цель 1
а рынку от этого ни тепло ни жарко :-)
 
Mikhail Lebedev:

я не говорю что это Грааль и не в коем случае это не годится для торговли . для себя  ставлю другие цели 1 написать тот код который я хочу даже если это бредовая идея

и проанализировать как рынок будет себя вести при такой торговле

Я вас удивлю, рынок будет вести себя, как ему хочется. Независимо от вашей торговли ))
 
Alexey Volchanskiy:
Я вас удивлю, рынок будет вести себя, как ему хочется. Независимо от вашей торговли ))

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

 Line_Sell=ObjectGetValueByShift("TL_Sell",0);
   Line_Buy=ObjectGetValueByShift("TL_Buy",0);
  Comment( "Line_Buy:  " + DoubleToStr( Line_Buy,5)   +   " ,  Line_Sel: "  + DoubleToStr( Line_Sell,5)   );  
//поверить есть ли открытые ордера Buy. если нет открываем ордер когда цена будет выше линии Buy
   if(CountBuy()==0 && Line_Buy<Ask )        
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,0,0,"",Magic,0,Blue);
         
//поверить есть ли открытые ордера Buy. если есть закрываем ордер когда цена будет ниже линии Sell                   
    if(CountBuy()==1  &&  Line_Sell>Bid )    
           
        {
         for(int i=OrdersTotal()-1; i>=0;i--)
           { 
            if(OrderSelect(i,SELECT_BY_POS))
              {
               if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                  bool a=OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Black);
              }
           }
        }
 
 новый вопрос хотел найти на индикаторе стохастик последние два входа через линии уровней верх и вниз, три входа отображаются нормально и сохраняют свои значения а четвертый работает неправильно обнуляет показания когда выходит из нижней зоны подска
//--- находим индекс бара вход в верхняя зону
   for(n=0; n<(Bars-1);n++)
     {
       if(iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n)<up_level && iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n-1) >up_level )
         break;
      UpLevel_1=n+1;
         
     }
//--- находим индекс бара второго ближайшего входа верхний уровень
   for(n= UpLevel_1+1; n<(Bars-1);n++)
     {
      if(iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n)<up_level && iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n-1) >up_level )
         break;
      UpLevel_2=n+1;
      UpperPrice_2=iHigh(Symbol(),PERIOD_CURRENT,UpLevel_2);
     
     }
//--- находим индекс бара первого ближайшего входа нижний уровень
   for(n=0; n<(Bars-1);n++)
     {
     if(iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n)>dw_level && iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n-1) <dw_level )  
         break;
      DwLevel_1=n+1;
      LowerPrice_1=iLow(Symbol(),PERIOD_CURRENT,DwLevel_1);
     }
//--- находим индекс бара второго ближайшего входа нижний уровень
   for(n=DwLevel_1+1; n<(Bars-1);n++)
     {
       if(iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n)>dw_level && iStochastic(Symbol(),0,5,3,3,MODE_SMA,1,0,n-1) <dw_level )
         break;
      DwLevel_2=n+1;
      LowerPrice_2=iLow(Symbol(),PERIOD_CURRENT,DwLevel_2);
      Comment("вход верхняя зона" + DoubleToStr(UpLevel_1,0)+ "\n" + // работает правельно показания сохраняет
              "предыдущий вход верхняя зона" + DoubleToStr(UpLevel_2,0)+ "\n" + // работает правельно показания сохраняет
              " вход нижняя зона" + DoubleToStr(DwLevel_1,0)+ "\n" +  //работает неправельно обнуляет показания когда выходит из нижней зоны
              " предыдущий вход нижняя зона" + DoubleToStr(DwLevel_2,0)); // работает правельно показания сохраняет
     }
жите в чем ошибка
Причина обращения: