Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 188

 

İyi insanlar, tavsiye ile yardım edin. Danışmanı test ederken , günlük hatası 3: yanlış parametrelerde fırsatlar açılmaz. Özel işlevlerde neyi yanlış yaptım?

              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);
  }
//+------------------------------------------------------------------+
 

İyi günler, lütfen parabolik konusunda yardım edin! Danışman ile resimdeki gibi mantık yürütmek istiyorum:


Kodu şöyle yazıyorum:

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 ); //продажа
     }
     } 


Herhangi bir hata yapıp yapmadığımı görün. çünkü bocalıyor .... şimdiden teşekkürler!

 
Günde 100 dolar kar çekmek için ne kadar depozito gerekir?
 
NemoomeN :
Günde 100 dolar kar çekmek için ne kadar depozito olmalıdır?


Günde 100 dolar ve düşüşün 0 olması için mi?

 
NemoomeN :
Günde 100 dolar kar çekmek için ne kadar depozito gerekir?

10$ yatırın! Günde %1000 kazanın ve günde 100$ kar çekin!

 
Bir Uzman Danışman tarafından alım satım kararları verirken döngüleri kullanmanın nüansları nelerdir? Kabaca söylemek gerekirse, 20 destek/direnç seviyesi varsa, tüm seviyeler for kullanılarak kontrol edilirse EA düzgün çalışır mı? Yoksa en yakındakileri alıp eğer öyleyse yapmak daha mı iyi?
 
Yatırımcının giriş ve şifresini kullanarak MT4'te bir Demo hesabı nasıl açılır?
 
Сергей Крашенинников :
Yatırımcının giriş ve şifresini kullanarak MT4'te bir Demo hesabı nasıl açılır?

sunucu hala gerekli

 
Sadece barın kapanışını gösterdi. ciltte olduğu gibi.
 
Lütfen bana ifadenin grafiklerini nasıl bağlayacağımı söyler misiniz? Çoklu döviz alım satım tablosunu görüntülemek için. Bir yerde görmüştüm ama bulamıyorum
Реализация мультивалютного режима в MetaTrader 5
Реализация мультивалютного режима в MetaTrader 5
  • www.mql5.com
В настоящее время мультивалютных торговых систем, индикаторов и экспертов разработано огромное количество. Тем не менее, до сих пор создатели этого "огромного количества" сталкивались со специфическими для мультивалютных систем трудностями. С выпуском в свет терминала MetaTrader 5 и языка программирования MQL5 появилась возможность  реализации...