Вот это номер!

 
extern int SL = 100;
extern int TP_point = 2;
extern double Lots = 0.8;
int start()
  {
  int sSL = SL;
   while(GlobalVariablesTotal() > 0){
      Sy = "";
      TP = 0;
      SL = 0;
         for (int t = 0; t <= GlobalVariablesTotal()-1; t++){  
            sName = GlobalVariableName(t);
            //Print(sName);
            if (StringSubstr(sName,0,8) == "Sell_sy_")   {
               if (GlobalVariableGet(sName) == 1.0) {
                  RefreshRates();
                  Sy = StringSubstr(sName,8);
                  TP = StrToDouble(StringSubstr(sName,8));//-TP_point*Point;
                  SL = MarketInfo(Sy,MODE_BID) + sSL*Point;
                  
                  Print("Sell_Sy = ", Sy);  
                  Print("Sell_TP = ",TP);
                  Print("Sell_SL = ",MarketInfo(Sy,MODE_BID) + sSL*Point);//sSL);
                  Print("Sell_SL bid = ",MarketInfo(Sy,MODE_BID));//sSL);
                  Print("sSL = ",sSL);//sSL);
                  Print("Point = ",Point);//sSL);
               }
            }

Добрый день странная вещь произошла сегодня, когда я обнаружил что советник не правильно рассчитывает уровни стопа:

2009.04.10 10:33:58 Sparen_exe EURUSDc,M1: Point = 0.0001
2009.04.10 10:33:58 Sparen_exe EURUSDc,M1: sSL = 1 //вот тут произошел странный подсчет (откуда)
2009.04.10 10:33:58 Sparen_exe EURUSDc,M1: Sell_SL bid = 1.3129
2009.04.10 10:33:58 Sparen_exe EURUSDc,M1: Sell_SL = 1.313
2009.04.10 10:33:58 Sparen_exe EURUSDc,M1: Sell_TP = 0
2009.04.10 10:33:58 Sparen_exe EURUSDc,M1: Sell_Sy = EURUSDi
2009.04.10 10:32:59 Sparen_exe EURUSDc,M1: Point = 0.0001
2009.04.10 10:32:59 Sparen_exe EURUSDc,M1: sSL = 100
2009.04.10 10:32:59 Sparen_exe EURUSDc,M1: Sell_SL bid = 1.3129
2009.04.10 10:32:59 Sparen_exe EURUSDc,M1: Sell_SL = 1.3229
2009.04.10 10:32:59 Sparen_exe EURUSDc,M1: Sell_TP = 0
2009.04.10 10:32:59 Sparen_exe EURUSDc,M1: Sell_Sy = EURUSDi
2009.04.10 10:32:51 Sparen_exe EURUSDc,M1 inputs: SL=100; TP_point=2; Lots=0.8;

Вот собственно код, который и производит такий записи в журнал (см. в начале поста...)

 
С таким названием темы вам смело можно в цирке выступать.
 
EVladMih писал(а) >>
Вам бы с такими названиями тем в цирке выступать.

А если по делу?

 
niko1312 писал(а) >>

Добрый день странная вещь произошла сегодня, когда я обнаружил что советник не правильно рассчитывает уровни стопа:
2009.04.10 10:33:58 Sparen_exe EURUSDc,M1: sSL = 1 //вот тут произошел странный подсчет (откуда)
.04.10 10:32:51 Sparen_exe EURUSDc,M1 inputs: SL=100; TP_point=2; Lots=0.8;

Вот собственно код, который и производит такий записи в журнал (см. в начале поста...)

А что такое спарен_ехе?

 
Swetten писал(а) >>

А что такое спарен_ехе?

Это название эксперта

 

Вы очень лихо работаете со входной переменной SL. Это специально так задумано?

 
stringo писал(а) >>

Вы очень лихо работаете со входной переменной SL. Это специально так задумано?

Если вы имеете ввиду ее значение (100), то это только ради эксперимента.. Проблема в том, что независимо от ее начального значения, на втором тике это значение сбрасывается до 1.

 

Сбрасывается даже если Вы не будете никак менять его значение?

Кстати, у Вас в двух местах идёт смена значения SL. Вторым предложением вы сбрасываете SL в 1

SL = 0;
...
                  SL = MarketInfo(Sy,MODE_BID) + sSL*Point;

Не надо так делать.

И вообще, никогда не меняйте значения входных переменных из программы!

 
stringo писал(а) >>

Сбрасывается даже если Вы не будете никак менять его значение?

Кстати, у Вас в двух местах идёт смена значения SL. Вторым предложением вы сбрасываете SL в 1

Не надо так делать.

И вообще, никогда не меняйте значения входных переменных из программы!

ок, спасибо, приму во внимание! ))

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