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

 
lottamer:


ДЦ пятизначный...

что значит БЕЗ DoubleToStr(YourPrice,5) ? у меня DoubleToStr(YourPrice,5) нигде не было

Если где-нибудь в Print или Alert Вы просто ставите double-переменную (Print(double-переменная)), то выведется только четыре знака после запятой, если поставите Print(DoubleToStr(double-переменная,N)) - выведется N знаков после запятой.
 
Вопрос модераторам - очень часто сайт меня скидывает на переавторизацию. При попытке авторизации выводится сообщение"Ваш доступ временно ограничен или запрещён". Затем, по истечении нескольких часов, доступ восстанавливается. затем, вновь по круговую. В чем может быть проблема?
 
Всем спасибо за советы, однако логически, разницы между обоими вариантами нету...
  • for (int i=1; i<=OrdersTotal(); i++)
  • for (int i=OrdersTotal()-1; i>=0; i--)
Или я ошибаюсь ? Кстати, это не помогло....


Странно то, что эксперт полностью удаляет все ордера при таком условие:
  • for (int i=0; i<=OrdersTotal(); i++)
  • for (int i=OrdersTotal(); i>=0; i--)
Кто нибудь понимает почему так ?

 
yosuf:
Вопрос модераторам - очень часто сайт меня скидывает на переавторизацию. При попытке авторизации выводится сообщение"Ваш доступ временно ограничен или запрещён". Затем, по истечении нескольких часов, доступ восстанавливается. затем, вновь по круговую. В чем может быть проблема?
Гомеостатическое Мироздание. Модераторы не могут повлиять на авторизацию. Только забанить намертво.
 
granit77:
Гомеостатическое Мироздание. Модераторы не могут повлиять на авторизацию. Только забанить намертво.
Как быть, теперь? К кому обратиться?
 
yosuf:
Как быть, теперь? К кому обратиться?

К модератору Вселенной.
 
yosuf:
Вопрос модераторам - очень часто сайт меня скидывает на переавторизацию. При попытке авторизации выводится сообщение"Ваш доступ временно ограничен или запрещён". Затем, по истечении нескольких часов, доступ восстанавливается. затем, вновь по круговую. В чем может быть проблема?

Тролят Вас))) Вы личность харизматичная))))
 

Приветствую.

Подскажите, как учесть пересечение цены с линией индикатора? как это можно зафиксировать?

есть три линии у индикатора: нижняя, средняя и верхняя.

такой пример:

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

LineUp //верхняя линия

LineS // средняя линия

LineDown // нижняя линия

Ask >  LineUp // фиксируем

Ask < LineS // сбрасываем

и так же с нижней линией

Bid < LineDown // фиксируем

Bid > LineS //  сбрасываем

пробовал через True и false, то не получилось, не могу понять почему.

вот так пробовал:

double LineUp; //верхняя линия индикатора

double LineS; // средняя линия индикатора

double LineDown; // нижняя линия индикатора

bool FiksiruemUp = False;

 bool FiksiruemDown = False;

if ( Ask >  LineUp)  FiksiruemUp = True; // фиксируем

if (Ask < LineS) FiksiruemUp = False; // сбрасываем

// и так же с нижней линией

if (Bid < LineDown)  FiksiruemDown = True; // фиксируем

if (Bid > LineS)  FiksiruemDown = False; //  сбрасываем

 

// дальше в коде я к нему обращаюсь:

if ( FiksiruemUp == True) 

{

то нужно сделать это . . . . . . 

} 

а оно не получается. почему? помогите разобраться.

 
Уважаемые пользователи форума, пожалуйста помогите, никак не могу найти ошибку в коде моего советника, а именно он не умеет или не хочет закрывать позиции по индикатору, только по tp или sl, вот, как мне кажется, часть кода, с которой и связана данная проблема, заранее большое спасибо
int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   FT1,                              // Значение 0 буффера Forex Trend
   FT2,                             // Значение 1 буффера Forex Trend
   TL1,                              // Значение 1 буффера Trend Lord
   TL2,                              // Значение 0 буффера Trend Lord                          
   FI,                               // Значен. Force Index текущее 
   Lot,                             // Колич. лотов в выбран.ордере
   Lts,                             // Колич. лотов в открыв.ордере
   Min_Lot,                         // Минимальное количество лотов
   Step,                            // Шаг изменения размера лота
   Free,                            // Текущие свободные средства
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell
   Opn_B=false,                     // Критерий для открытия  Buy
   Opn_S=false;                     // Критерий для открытия  Sell
                                                        
   
//--------------------------------------------------------------- 3 --
   // Предварит.обработка
   if(Bars < Period_FI)                       // Недостаточно баров
     {
      Alert("Недостаточно баров в окне. Эксперт не работает.");
      return;                                   // Выход из start()
     }
   if(Work==false)                              // Критическая ошибка
     {
      Alert("Критическая ошибка. Эксперт не работает.");
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------- 4 --
   // Учёт ордеров
   Symb=Symbol();                               // Название фин.инстр.
   Total=0;                                     // Количество ордеров
   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if (OrderSymbol()!=Symb)continue;      // Не наш фин. инструм
         if (OrderType()>1)                     // Попался отложенный
           {   
            Alert("Обнаружен отложенный ордер. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Total++;                               // Счётчик рыночн. орд
         if (Total>1)                           // Не более одного орд
           {
            Alert("Несколько рыночных ордеров. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Ticket=OrderTicket();                  // Номер выбранн. орд.
         Tip   =OrderType();                    // Тип выбранного орд.
         Price =OrderOpenPrice();               // Цена выбранн. орд.
         SL    =OrderStopLoss();                // SL выбранного орд.
         TP    =OrderTakeProfit();              // TP выбранного орд.
         Lot   =OrderLots();                    // Количество лотов
        }
     }
//--------------------------------------------------------------- 5 --
   // Торговые критерии
                          
   TL1=iCustom(NULL, 0, "TrendLord", 1, 1);                          // trend lord синий
   TL2=iCustom(NULL, 0, "TrendLord", 0, 1);                          // красный тренд лорд
   FI=iForce(NULL, 0, Period_FI,MODE_EMA,PRICE_CLOSE,0);            // FI
   FT1=iCustom(NULL, 0, "ForexTrend", 7, 50.6, 999999, 0, 1);                        // forex trend blue
   FT2=iCustom(NULL, 0, "ForexTrend", 7, 50.6, 999999, 1, 1);                        // forex trend red


   if (TL2 == EMPTY_VALUE && FT1 == 1 && FT2 == 0 && FI > 0)
   {
      Opn_B = true;
      
   
      
   }
   while (Opn_B == true)
   {
      if (FI <= 0)
      {
         Cls_B=true;
      }
  break;
   }      
      
   if (TL1 == EMPTY_VALUE && FT2 == 1 && FT1 == 0 && FI < 0)
   {
      Opn_S = true;
      
     
      
   }
   while (Opn_S == true)
   {
      if (FI >= 0)
      {
         Cls_S=true;
      }
   break;
   }    
//--------------------------------------------------------------- 6 --
   // Закрытие ордеров
   while(true)                                  // Цикл закрытия орд.
     {
      if (Tip==OP_BUY && Cls_B==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Bid,2);      // Закрытие Buy
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ",Ticket);
            break;                              // Выход из цикла закр
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }

      if (Tip==OP_SELL && Cls_S==true)                // Открыт ордер Sell..
        {                                       // и есть критерий закр
         Alert("Попытка закрыть Sell ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Ask,2);      // Закрытие Sell
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Sell ",Ticket);
            break;                              // Выход из цикла закр
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
      break;                                    // Выход из while
 
belck:

Приветствую.

Подскажите, как учесть пересечение цены с линией индикатора? как это можно зафиксировать?

есть три линии у индикатора: нижняя, средняя и верхняя.

такой пример:

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

пробовал через True и false, то не получилось, не могу понять почему.

вот так пробовал:

а оно не получается. почему? помогите разобраться.


Не получается, потому что нужно вывести переменные которые хочешь зафиксировать на глобальный уровень, то бишь до функции Start... Например вот эти и т.д.... " FiksiruemUp = True; // фиксируем " и "iksiruemUp = False; // сбрасываем"
Если не переключать между таймфреймами, должно работать...
Причина обращения: