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

 
ХМ, а мне поможет кто-нибудь?
 
Chiripaha:

Вот, как раз в коде Pr0t0tip (ну, и ник - запарился перепечатывать : )) ) эти переменные extern int sl=100; (и т.п.) отображены. Таким образом нужно объявить переменную, тогда она появится в настройках совы, после чего ее значение можно будет менять и оптимизировать.

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

а от функции я избавится не могу. там модификация ордера.... 

 
solnce600:
А выше только START и больше НИЧЕГО

Аааааааа - вот, нашел... Не туда вставил - нужно было за скобочку переменную воткнуть:

int start()
  {
   bool have = true;

   for(int i=0;i<10;i++)
     {
      if(Low[i]<=Low[i+1])
       {
        have=false; 
        break;
       } 
     } 

   if(have)
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-1510*Point,"jfh",123 );// действия если условие соблюдено 
    }

   return(0);
  }

Да еще и лишние были внизу else и еще одна фигурная скобка. Ты пишешь не соблюдая полей и единой структуры (стиля) письма. Когда правильно все расставишь, сразу все ошибки (несоответствия) видны. Будь аккуратнее в написании кода. - Так не должно ругаться.

 

Страно. У меня ваш код ругается так 

'bool' - semicolon expected C:\Documents and Settings\User\Мои документы\FxClub\TeleTRADE\experts\Точка с запятой.mq4 (33, 4) 

собствено на bool have = true;
 

 
Именно. А то был логический заворот-else,или-   или функция заканчивает свою работу выдавая наружу ноль, или же что???
 
Chiripaha:

Аааааааа - вот, нашел... Не туда вставил - нужно было за скобочку переменную воткнуть:

Да еще и лишние были внизу else и еще одна квадр-я скобка. Ты пишешь не соблюдая полей. Когда правильно все расставишь, сразу все ошибки (несоответствия) видны. Будь аккуратнее в написании кода. - Так не должно ругаться.


Большое тебе спасибо......что бы я без тебя делал.....дай бог тебе здоровья .....а остальное все купишь на профиты....
 
lottamer:

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

а от функции я избавится не могу. там модификация ордера.... 

Почему не работают? - Если ты возьмешь в пользовательскую функцию любую глобальную переменную, то она будет фурычить как и объявленная внутри. Просто данные внутренней переменной видны только этой функции - дальше ее действие ограничено. А у глобальной (extern) значения переменной видны всей проге. В этом вся разница. Но у внешней - опять же extern - переменная еще появится и в настройках. - Это же учебник. Перечитай, помогает. : )) Разумеется, при объявлении внешней переменной ссылку внутри функции нужно давать на эту глобальную. И чтобы имена не были одинаковыми. А то объявишь и внешнюю и внутреннюю одним именем. - Хотя, так можно, но вроде функция заберет значение внутренней переменной - точно не помню. Тут уже точно нужно в учебник лезть. Сам полазь, если хочешь это поэкспериментировать. Я обычно даю разные имена, чтобы не путаться и все.
 
Chiripaha:
Почему не работают? - Если ты возьмешь в пользовательскую функцию любую глобальную переменную, то она будет фурычить как и объявленная внутри. Просто данные внутренней переменной видны только этой функции - дальше ее действие ограничено. А у глобальной (extern) значения переменной видны всей проге. В этом вся разница. Но у внешней - опять же extern - переменная еще появится и в настройках. - Это же учебник. Перечитай, помогает. : )) Разумеется, при объявлении внешней переменной ссылку внутри функции нужно давать на эту глобальную. И чтобы имена не были одинаковыми. А то объявишь и внешнюю и внутреннюю одним именем. - Хотя, так можно, но вроде функция заберет значение внутренней переменной - точно не помню. Тут уже точно нужно в учебник лезть. Сам полазь, если хочешь это поэкспериментировать. Я обычно даю разные имена, чтобы не путаться и все.


Спасибо огромное...думал если внутренняя не видна снаружи, то и наружные не видны внутри...
 

Здравствуйте. Написал советника простого (пытаюсь сам научиться). Робот открывает сделки только на продажу, а на покупку не хочет. Я так понимаю, что не правильно прописал условия для покупки или не разделил должным образом. Прошу помощи. Вот оно:

 extern int tp=100;

extern int sl=100;

extern int H=14;

extern int M=00;

double ma1, ma2;

int start()

  {

  ma1=iMA (NULL,0,18,0,MODE_SMA,PRICE_CLOSE,0);

  ma2=iMA (NULL,0,36,0,MODE_SMA,PRICE_CLOSE,0);

if (OrdersTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)<iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1<ma2)

OrderSend ("EURUSD", OP_SELL,0.1,Bid,0,Ask+sl*Point,Ask-tp*Point,"",123,Red); 

if (OrdersTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)>iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1>ma2)

OrderSend ("EURUSD", OP_BUY,0.1,Ask,0,Bid+sl*Point,Bid-tp*Point,"",123,Red);

  }

  return (0);

 
Pr0t0tip:
ХМ, а мне поможет кто-нибудь?

Сейчас глянем - ток я не сильно опытный. Но попробуем... : ))

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

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