초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 188

 

좋은 사람들, 조언을 도와주세요. 어드바이저를 테스트 할 때 로그 오류 3: 잘못된 매개변수에서 거래가 열리지 않습니다. 사용자 정의 기능에서 내가 무엇을 잘못했습니까?

              ticket= OrderSend ( Symbol (),OP_SELLSTOP,Lots,Prices_install(), 3 , 0 , 0 , NULL ,MAGICNUMBER, 0 , clrGreen );
               if (ticket> 0 ) //проверка открытия позиции
                 {
                   if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES))
                     Print ( "SELL ордер открыт:" ,OrderOpenPrice());
                 }
               else
                   Print ( "Ошибка открытия ордера SELL:" , GetLastError ());
              }
             return ;
           }
        }

       //+---------------------------------------------------------------------------+
       //|                     Условия модификации ордеров                           |
       //+---------------------------------------------------------------------------+

       if (ticket> 0 )
        {
         if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES))
           {
             //--- длинная позиция открыта
             switch (OrderType())
              {
               case OP_BUYSTOP:
                   if ( NormalizeDouble (OrderOpenPrice()-Prices_install(), Digits )> 0 && NormalizeDouble (Prices_install()-Bid, Digits )> 0 )
                    {
                     if (OrderModify(ticket,Prices_install(), 0 , 0 , 0 , clrBlue ))
                         Print ( "Цена Price_BUY ордера успешно модифицирована." );
                     else
                         Print ( "Ошибка модификации ордера BUYStop. Код ошибки=" , GetLastError ());
                    }
                   else
                     Print ( "Цена модификации выше цены ордера" );
                   break ;
               case OP_SELLSTOP:
                   if ( NormalizeDouble (Prices_install()-OrderOpenPrice(), Digits )> 0 && NormalizeDouble (Ask-Prices_install(), Digits )> 0 )
                    {
                     if (OrderModify(ticket,Prices_install(), 0 , 0 , 0 , clrGreen ))
                         Print ( "Цена Price_SELL ордера успешно модифицирована." );
                     else
                         Print ( "Ошибка модификации ордера SELLStop. Код ошибки=" , GetLastError ());
                    }
                   else
                     Print ( "Цена модификации выше цены ордера" );
                   break ;
               case OP_BUY:
                   if ( NormalizeDouble (StopLosse_install()-OrderStopLoss(), Digits )> 0 && NormalizeDouble (Ask-StopLosse_install(), Digits )> 0 )
                    {
                     if (OrderModify(ticket,OrderOpenPrice(),StopLosse_install(), 0 , 0 , clrBlue ))
                         Print ( "Цена Price_BUY ордера успешно модифицирована." );
                     else
                         Print ( "Ошибка модификации ордера BUY. Код ошибки=" , GetLastError ());
                    }
                   else
                     Print ( "Цена модификации выше цены ордера" );
                   break ;
               case OP_SELL:
                   if ( NormalizeDouble (OrderStopLoss()-StopLosse_install(), Digits )> 0 && NormalizeDouble (StopLosse_install()-Bid, Digits )> 0 )
                    {
                     if (OrderModify(ticket,OrderOpenPrice(),StopLosse_install(), 0 , 0 , clrGreen ))
                         Print ( "Цена Price_SELL ордера успешно модифицирована." );
                     else
                         Print ( "Ошибка модификации ордера SELL. Код ошибки=" , GetLastError ());
                    }
                   else
                     Print ( "Цена модификации выше цены ордера" );
                   break ;
              }
           }
        }
       Sleep ( 5 );
     }
   return ;
  }
//+------------------------------------------------------------------+
double StopLosse_install()
  {
   double StopLoss= iSAR ( NULL ,PERIODs_short_term,Step,Maximum, 1 );
   double StopLoss_install;
   int StopLevel=( int )MarketInfo( Symbol (),MODE_STOPLEVEL); // Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах
   int FreezeLevel=( int )MarketInfo( Symbol (),MODE_FREEZELEVEL); //Уровень заморозки ордеров в пунктах
   switch (OrderType())
     {
       case 0 :
         if (Bid-StopLoss>FreezeLevel)
           {
             if (Bid-StopLoss>=StopLevel)
               StopLoss_install= NormalizeDouble (StopLoss, Digits );
             if (Bid-StopLoss<StopLevel)
               StopLoss_install= NormalizeDouble (StopLoss-StopLevel*MarketInfo( Symbol (),MODE_DIGITS), Digits );
           }
         else
             Print ( "Цена открытия ордера находится в дистанции заморозки:" , GetLastError ());
         break ;
       case 1 :
         if (StopLoss-Ask>FreezeLevel)
           {
             if (StopLoss-Ask>=StopLevel)
               StopLoss_install= NormalizeDouble (StopLoss, Digits );
             if (StopLoss-Ask<StopLevel)
               StopLoss_install= NormalizeDouble (StopLoss+StopLevel*MarketInfo( Symbol (),MODE_DIGITS), Digits );
           }
         else
             Print ( "Цена открытия ордера находится в дистанции заморозки:" , GetLastError ());
         break ;
     }
     return (StopLoss_install);
  }
//+------------------------------------------------------------------+
double Prices_install()
  {
   double Price= iSAR ( NULL ,PERIODs_short_term,Step,Maximum, 1 );
   double Price_install;
   int StopLevel=( int )MarketInfo( Symbol (),MODE_STOPLEVEL); // Минимально допустимый уровень стоп-лосса/тейк-профита в пунктах
   int FreezeLevel=( int )MarketInfo( Symbol (),MODE_FREEZELEVEL); //Уровень заморозки ордеров в пунктах
   switch (OrderType())
     {
       case 4 :
         if (Price-Ask>FreezeLevel)
           {
             if (Price - Ask>=StopLevel)
               Price_install= NormalizeDouble (Price, Digits );
             if (Price - Ask<StopLevel)
               Price_install= NormalizeDouble (Price+StopLevel*MarketInfo( Symbol (),MODE_DIGITS), Digits );
           }
         else
             Print ( "Цена открытия ордера находится в дистанции заморозки:" , GetLastError ());
         break ;
       case 5 :
         if (Bid-Price>FreezeLevel)
           {
             if (Bid-Price>=StopLevel)
               Price_install= NormalizeDouble (Price, Digits );
             if (Bid-Price<StopLevel)
               Price_install= NormalizeDouble (Price+StopLevel*MarketInfo( Symbol (),MODE_DIGITS), Digits );
           }
         else
             Print ( "Цена открытия ордера находится в дистанции заморозки:" , GetLastError ());
         break ;
     }
     return (Price_install);
  }
//+------------------------------------------------------------------+
 

좋은 오후, 포물선을 도와주세요! 그림과 같이 어드바이저와 논리를 만들고 싶습니다.


다음과 같이 코드를 작성합니다.

ParSar_0 = iSAR ( NULL , time1_method, parsar_Step, parsar_Maximum, 0 );
ParSar_1 = iSAR ( NULL , time1_method, parsar_Step, parsar_Maximum, 1 );

     if (ParSar_0 < Bid && ParSar_1 > Bid)
     {
         TP = NormalizeDouble (Ask + takeprofit * _Point , _Digits );
         ticket = OpenOrder( _Symbol , OP_BUY, lot, Ask, slippage, 0 , TP, comment, Magic, 0 , clrGreen ); //покупка
     }
     
     if (ParSar_0 > Bid && ParSar_1 < Bid)
     {
         TP = NormalizeDouble (Bid - takeprofit * _Point , _Digits );
         ticket = OpenOrder( _Symbol , OP_SELL, lot, Bid, slippage, 0 , TP, comment, Magic, 0 , clrRed ); //продажа
     }
     } 


내가 실수를 했는지 확인하십시오. 흔들리기 때문에 .... 미리 감사합니다!

 
하루에 100달러의 이익을 인출하려면 어떤 보증금을 넣어야 합니까?
 
NemoomeN :
하루에 100달러의 이익을 인출하려면 어떤 보증금을 넣어야 합니까?


하루에 100달러, 그리고 드로다운이 0이 되려면?

 
NemoomeN :
하루에 100달러의 이익을 인출하려면 얼마의 예치금이 있어야 할까요?

보증금 $10! 하루에 1000%를 받고 하루에 $100의 이익을 인출하세요!

 
Expert Advisor가 거래 결정을 내릴 때 사이클을 사용하는 뉘앙스는 무엇입니까? 대략적으로 말해서 20레벨의 지지/저항이 있는 경우 모든 레벨을 체크하면 EA가 제대로 작동할까요? 아니면 가장 가까운 것을 가지고 그것을 통해하는 것이 더 낫습니까?
 
투자자의 로그인 및 비밀번호를 사용하여 MT4 에서 데모 계정 을 여는 방법은 무엇입니까?
 
Сергей Крашенинников :
투자자의 로그인 및 비밀번호를 사용하여 MT4 에서 데모 계정 을 여는 방법은 무엇입니까?

여전히 필요한 서버

 
의 닫힘만 표시했습니다. 피부에 처럼.
 
진술의 그래프를 연결하는 방법을 알려주시겠습니까? 다중 통화 거래 차트를 표시합니다. 어디선가 본거 같은데 못찾겠어
Реализация мультивалютного режима в MetaTrader 5
Реализация мультивалютного режима в MetaTrader 5
  • www.mql5.com
В настоящее время мультивалютных торговых систем, индикаторов и экспертов разработано огромное количество. Тем не менее, до сих пор создатели этого "огромного количества" сталкивались со специфическими для мультивалютных систем трудностями. С выпуском в свет терминала MetaTrader 5 и языка программирования MQL5 появилась возможность  реализации...