Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 910

 

Здравствуйте!

Мне в эксперте на открытие свечи проверяется предыдущая свеча, если условия позволяет то открывается позиция, если нет то не открывается. Проблема в том что позиция открывается раньше чем проверяется условие предыдущее свече. Получается в журнале вижу открытие позиции а потом что позиция не должна открывается. Как решит эту проблему?

 
evillive:

Фигурных скобок не хватает.

Спасибо, разобрался! Проблема была более глубже, в моем непонимании, что будет на выходе при таком написании,в общем ожидания не совпадали с результатом, прикрутил счетчики - все работает теперь как думалось.   
 

 Помогите , почему советник не открывает ордера в процессе тестирования? (Ничего не делает?) Прошу помочь , пожалуйста!!

 

extern double    OrderValue =  0.01;         
extern int       Up         =  70;
extern int       Dn         =  30;
extern int       rrr        =   5;
extern int       S1_period  =   5;
extern int       S1_slowing =   3;
extern double    TP         =  30;
extern double    SL         =  30;

double    S1a          = 0;
double    S1b          = 0;
      
double MyOrderStateB;
double MyOrderStateS;

int    OpenOrderB      ;   
int    OpenOrderS      ;   

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  
   {
    if (Digits == 3 || Digits == 5)
     {
       TP *=10;
       SL  *=10;
      
     }
  
  
  
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----

   S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);
   S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);
   
   if(MyOrderStateB == 1)Sleep(3000);
    else MyOrderStateB = 0;
   if(MyOrderStateS == 1)Sleep(3000);
    else MyOrderStateS = 0;
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

void GetBuy(){
     
   if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
 {OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue);
     MyOrderStateB = 1; }
   else Sleep(2);
}
void GetSell(){
      
   if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )

    {OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), 3, SL, TP, NULL, 0, 0,clrRed);
      MyOrderStateS = 1; }    
       else Sleep(2);
   } 

 
Viktorline14:

 Помогите , почему советник не открывает ордера в процессе тестирования? (Ничего не делает?) Прошу помочь , пожалуйста!!

 


Создать корректно пост религия не позволяет?

В функции Start() нет ни одного вызова функций для открытия ордеров

 
Vinin:

Создать корректно пост религия не позволяет?

В функции Start() нет ни одного вызова функций для открытия ордеров

 
Братуха а как это добавить?
 
Viktorline14:
Братуха а как это добавить?
Жалко мне твоих папу и маму. Не научили культуре общения
 

Vinin:
Жалко мне твоих папу и маму. Не научили культуре общения

 Я извиняюсь, мне действительно нужна помощь , так как это мой первый опыт в написании советника.

Прошу , помоги пожалуйста 

 

Так я все таки разобрался , ошибок нет , но есть предупреждения

Видимо из за них выдает ошибки в тестере 

 
Viktorline14:

Так я все таки разобрался , ошибок нет , но есть предупреждения

Видимо из за них выдает ошибки в тестере 

Ребят помогите Прошу!!!
Причина обращения: