포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 76

 
lottamer :


DC 5자리...

WITHOUT DoubleToStr(YourPrice,5)은(는) 무슨 뜻인가요? 어디에도 DoubleToStr(YourPrice,5)이 없었습니다.

Print 또는 Alert의 어딘가에 이중 변수(Print(double-variable))를 넣으면 소수점 이하 네 자리만 표시됩니다. Print(DoubleToStr(double-variable,N)) - N 소수점 이하 자릿수는 표시됩니다.
 
중재자에게 질문 - 사이트에서 재승인을 요청하는 경우가 많습니다. 인증을 시도하면 " 귀하의 액세스가 일시적으로 제한되거나 거부 되었습니다 " 라는 메시지가 표시됩니다. 그런 다음 몇 시간 후에 액세스가 복원됩니다. 그런 다음 다시 원으로. 무엇이 문제가 될 수 있습니까?
 
조언을 주신 모든 분들께 감사드립니다. 하지만 논리적으로는 두 옵션 간에 차이가 없습니다...
  • for (int i=1; i<=OrdersTotal(); i++)
  • (int i=OrdersTotal()-1; i>=0; i--)
아니면 내가 틀렸어? 그건 그렇고, 그것은 작동하지 않았습니다 ...


이상한 점은 Expert Advisor가 다음 조건에서 모든 주문을 완전히 삭제한다는 것입니다.
  • (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) 

{

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

} 

작동하지 않습니다. 왜요? 이해하도록 도와주세요.

 
친애하는 포럼 사용자, 도와주세요. 제 EA 코드에서 오류를 찾을 수 없습니다. 즉, 그는 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; // 재설정"
시간대를 전환하지 않으면 작동해야 합니다...