Советники: Stax.mq4 - страница 2

 

Дополнение:при тестировании с 5 знаками после запятой нужно исправит в коде максимальное отклонение с 5 на 50.

 
MOHCTP36:

ну извините, на основе кода МТ4 ни кто не в состоянии изобрести машину времени ))

я ни слова не сказал о возможности узнать будущее, и даже не думал об этом) все сказанное мной только обращает ваше внимание на слабые стороны советника (на случай, если вы захотите его улучшить), и вашего высказывания насчет 30%.

 
MOHCTP36:

Дополнение:при тестировании с 5 знаками после запятой нужно исправит в коде максимальное отклонение с 5 на 50.

double GetPoint(string currency)
{
    int count = 0;
    double check = MarketInfo(currency, MODE_POINT);
    if(check == 0.00001)
    {
        //Print("пятизнак");
        return (0.0001);
    }
    if(check == 0.0001)
    {
        //Print("четырехзнак");
        return (0.0001);
    }
    return (check);
}
double GetSymbolPoint()
{
    return (GetPoint(Symbol()));
}
 
OneDepo писал(а):
Вообще-то функция OrderClosePrice() применяется к уже закрытому ордеру. Здесь нужно использовать MarketInfo(Symbol(), MODE_BID) или MarketInfo(Symbol(), MODE_ASK).

Ошибаетесь. Функция OrderClosePrice() великолепно работает и для открытых ордеров. Но вообще конечно в коде куча ошибок.

Одна эта строчка чего стоит:

OrderSelect(SELECT_BY_POS,MODE_TRADES);

Что тут ещё можно обсуждать?

 
Meat:
OneDepo писал(а):
Вообще-то функция Price() применяется к уже закрытому ордеру. Здесь нужно использовать MarketInfo(Symbol(), MODE_BID) или MarketInfo(Symbol(), MODE_ASK).

Ошибаетесь. Функция OrderClosePrice() великолепно работает и для открытых ордеров. Но вообще конечно в коде куча ошибок.

Одна эта строчка чего стоит:

OrderSelect(SELECT_BY_POS,MODE_TRADES);

Что тут ещё можно обсуждать?

Уважаемые господа если бы в коде были ошибки он бы не компилировался.Я кажется начинаю понимать чем здесь занимаются.Среди знатаков программистов идёт выпендрёж кто красивее и правильнее напишет,а для чего это надо хрен кто знает.

 

MOHCTP36 писал(а):

Уважаемые господа если бы в коде были ошибки он бы не компилировался.Я кажется начинаю понимать чем здесь занимаются.Среди знатаков программистов идёт выпендрёж кто красивее и правильнее напишет,а для чего это надо хрен кто знает.

профанация. простейший пример кода, который компилируется, но содержит ошибку - это использование переменной-делителя, значение которой может принимать нулевое значение, в процессе выполнения.

для чего надо писать правильный (пусть и некрасивый) код - вы будете не в силах понять, пока не понимаете, зачем вообще код пишется. я говорю о чисто практической стороне, то есть, если не рассматривать программирование как вид искусства.

вместо реакций на предметную критику (которая по большей части направлена на помощь в улучшении вами вашего же детища), вы начинаете строить странные гипотезы о том "чем же эти люди занимаются". извините, но вы выложили код, чтобы вас похвалили, сказали что-то типа "какой же умничка этот МОНСТР36"? или для рассмотрения сообществом этого кода, для получения мнения, комментариев других людей?

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

 
xp3rienced:

MOHCTP36 писал(а):

Уважаемые господа если бы в коде были ошибки он бы не компилировался.Я кажется начинаю понимать чем здесь занимаются.Среди знатаков программистов идёт выпендрёж кто красивее и правильнее напишет,а для чего это надо хрен кто знает.

профанация. простейший пример кода, который компилируется, но содержит ошибку - это использование переменной-делителя, значение которой может принимать нулевое значение, в процессе выполнения.

для чего надо писать правильный (пусть и некрасивый) код - вы будете не в силах понять, пока не понимаете, зачем вообще код пишется. я говорю о чисто практической стороне, то есть, если не рассматривать программирование как вид искусства.

вместо реакций на предметную критику (которая по большей части направлена на помощь в улучшении вами вашего же детища), вы начинаете строить странные гипотезы о том "чем же эти люди занимаются". извините, но вы выложили код, чтобы вас похвалили, сказали что-то типа "какой же умничка этот МОНСТР36"? или для рассмотрения сообществом этого кода, для получения мнения, комментариев других людей?

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

извините я погорячился.вы правы.

 

Потратил 15 минут, поправил, что-бы хоть работало. Ниже основная часть кода.

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {//00
    if(OrdersTotal()!=0)
      {//55
      OrderSelect(SELECT_BY_POS,MODE_TRADES);
      int Order_mode=OrderType();
      if(razvorot==true)
      {//11
      if(iStochastic(NULL,0,6,21,8,MODE_SMA,0,MODE_MAIN,3)>53&&
          iStochastic(NULL,0,6,21,8,MODE_SMA,0,MODE_MAIN,0)<53&&
     
         Order_mode==OP_BUY)
          {//22
            OrderSelect(SELECT_BY_POS,MODE_TRADES); 
            if (Order_mode==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Red); }
          }//22
 
  
      if(iStochastic(NULL,0,6,21,8,MODE_SMA,0,MODE_MAIN,3)<42&&
          iStochastic(NULL,0,6,21,8,MODE_SMA,0,MODE_MAIN,0)>42&&
     
         Order_mode==OP_SELL)
          {//22
            OrderSelect(SELECT_BY_POS,MODE_TRADES); 
            if (Order_mode==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); }
          }//22
      }//11
   }//55
  
  
//----
   if(OrdersTotal()==0)
   {//55
   OrderSelect(SELECT_BY_POS,MODE_TRADES); 
   if(iStochastic(NULL,0,6,21,8,MODE_SMA,0,MODE_MAIN,5)<53&&
      iStochastic(NULL,0,6,21,8,MODE_SMA,0,MODE_MAIN,4)>53)
      {//113
          if (cBars1!=Bars) // пробежал тик и условие выполнилось
             {//223        //---------- 1
    
                 OrderSend(Symbol(),OP_SELL,Lot,Bid,5,Bid+sl*Point,
                 Ask-tp*Point,"My order #",16384,0,Aqua);
    
              cBars1=Bars;
             }//223
       }//113
   if(iStochastic(NULL,0,6,21,8,MODE_SMA,0,MODE_MAIN,5)>42&&
      iStochastic(NULL,0,6,21,8,MODE_SMA,0,MODE_MAIN,4)<42)
         {//111
            if (cBars2!=Bars) // пробежал тик и условие выполнилось
            {//221    //---------- 1
                OrderSend(Symbol(),OP_BUY,Lot,Ask,5,Ask-sl*Point,
                Bid+tp*Point,"My order #",16384,0,Gold);
             cBars2=Bars;
            }//221 
         }//111
   }//55
//----
   return(0);
  }//00
//+------------------------------------------------------------------+

Но оно сливает, правда, медленно и мучительно.

Мне кажется автор выложил далеко не весь код.

И для чего вот эта строка "if(razvorot==true)", надо-бы опубликовать логику программы поподробнее, видно я там, что-то исказил слегка.

 

MOHCTP36, если не трудно, опишите пожалуйтса _полностью_ алгоритм работы советника, каким он должен быть. попробуем разобраться с реализацией окончательно, чтобы можно было начать говорить об улучшениях самогО алгоритма работы

 

вот и предсказаные 30 %

Причина обращения: