Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 453

 
pusheax :
saçmalık
Eh, bir yerde 50/50
 
Alexey Solomin :

Üzgünüm, platformu belirtmedim, mql4, " POSITION_PROFIT" yardımda değil, belki de " OrderProfit " ?

( Lütfen şöyle bir resim ekleyin: Forum: resim nasıl eklenir . - tamam)
Evet, bu " Sipariş Kârı "!
 

Merhaba ! kod tabanında bir kod ve cevabını bulamadığım bir soru buldum,

danışman kodunun başlangıcı

 #define MAGIC_NUMBER 12937

#define DEV 20
#define RISK 0.0
#define BASELOT 0.1
#define SL 100
#define TP 700
#define DELTA 30

neden makro desteği (#define) kullanılıyor çünkü bu değişkenler ayarlarda mevcut değil

ve optimizasyon ile kontrol edilebilmesi için nasıl yapılacağı

https://www.mql5.com/ru/code/viewcode/244/53730/grr-al__3.mq5

 
Alexander Antoshkin :

Merhaba ! kod tabanında bir kod ve cevabını bulamadığım bir soru buldum,

danışman kodunun başlangıcı

neden makro desteği (#define) kullanılıyor çünkü bu değişkenler ayarlarda mevcut değil

ve optimizasyon ile kontrol edilebilmesi için nasıl yapılacağı

https://www.mql5.com/ru/code/viewcode/244/53730/grr-al__3.mq5

Onları girdi değişkenleri yapın.
 
Tapochun :
Onları girdi değişkenleri yapın.

ne anlamda

# MAGIC_NUMBER 12937 girin; Böyle

input DEV 20;
input RISK 0.0;
input BASELOT 0.1;
input SL 100;
input TP 700;
input DELTA 30;
 или input uint MAGIC_NUMBER  12937;
 
Alexander Antoshkin:
input uint MAGIC_NUMBER=12937;
 
Karputov Vladimir :
yani yaptım derleyici hata verdi tamam şimdilik bilgisayar başındayım devam edicem
 
Alexander Antoshkin :

ne anlamda

# MAGIC_NUMBER 12937 girin; Böyle

Değişken türünden önce yerleştirilen girdi değiştiricisi, değişkenin uzmanın girdi parametreleri listesinde bulunacağı anlamına gelir.

Sihirbazla ilgili özel durumda, giriş değiştiricisini önüne koymak daha iyidir. Bu, değişkenin giriş parametreleri listesinde de bulunacağı, optimizasyona katılacağı, ancak değerinin optimize edilemeyeceği anlamına gelir.

Genel olarak, belgeler var. Derleyicide, word girişini vurgulayın ve F1 tuşuna basın. Orada örnekler var.

 

Hareketli ortalamalar üzerine ilk beceriksiz danışmanı yazdı. Söyle bana neden emir göndermiyor ?

 //+------------------------------------------------------------------+
//|                                                 Первый робот.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
input int TakeProfit = 1500 ;
input int StopLoss = 500 ;
int muving_handle_1;
int muving_handle_2;
double ma1[];
double ma2[];

int OnInit ()
  {
 int MA_1_PERIOD = 20 ;
 int MA_2_PERIOD = 10 ;
 muving_handle_1 = iMA ( _Symbol , _Period ,MA_1_PERIOD, 0 , MODE_SMA , PRICE_CLOSE );
 muving_handle_2 = iMA ( _Symbol , _Period ,MA_2_PERIOD, 0 , MODE_SMA , PRICE_CLOSE );
 return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   int signal; 
 
 if ( CopyBuffer (muving_handle_1, 0 , 0 , 3 ,ma1)< 0 )
 { 
       Alert ( "Ошибка копирования буферов индикатора MA 10 - номер ошибки:" , GetLastError ()); 
       return ; 
 } 
 
if ( CopyBuffer (muving_handle_1, 0 , 0 , 3 ,ma2)< 0 )
 { 
       Alert ( "Ошибка копирования буферов индикатора MA 20 - номер ошибки:" , GetLastError ()); 
       return ; 
 } 

signal=CheckTradeSignal(); 
PositionOpen(signal);
   
  }
//+------------------------------------------------------------------+
  
int CheckTradeSignal() 
  { 
   int TradeSignal= 0 ; 
   if ((ma2[ 2 ]>ma1[ 2 ]) && (ma2[ 1 ]<ma1[ 1 ])) 
      TradeSignal= 1 ; // Buy signal   
   if ((ma2[ 2 ]<ma1[ 2 ]) && (ma2[ 1 ]>ma1[ 1 ])) 
      TradeSignal= 2 ; // Sell signal 
   return TradeSignal; 
  } 
  
   bool PositionOpen( int tradeSignal) 
  { 
   int InpTP= 500 ,InpSL= 150 ; 

   if (tradeSignal> 0 ) // Signal 
     { 
       //--- 1. Создать запрос 
       MqlTradeRequest Trade_reqst={ 0 };             // Инициализация структуры торгового запроса 
      Trade_reqst.action= TRADE_ACTION_DEAL ;       // Тип: немедленное совершение сделки 
      Trade_reqst.symbol= _Symbol ;                 // Инструмент: текущий 
      Trade_reqst.volume= 1 ;                     // Лотаж 
      Trade_reqst.type_filling= ORDER_FILLING_FOK ; // Политика исполнения: Fill Or Kill 
       double sl,tp; 
       if (tradeSignal== 1 ) // Buy signal   
        { 
         Trade_reqst.type= ORDER_TYPE_BUY ;             // Тип ордера: на покупку 
         sl= SymbolInfoDouble ( _Symbol , SYMBOL_BID )-InpSL* _Point ; 
         tp= SymbolInfoDouble ( _Symbol , SYMBOL_BID )+InpTP* _Point ; 
        } 
       else 
        { 
         Trade_reqst.type= ORDER_TYPE_SELL ;           // Тип ордера: на продажу 
         sl= SymbolInfoDouble ( _Symbol , SYMBOL_ASK )+InpSL* _Point ; 
         tp= SymbolInfoDouble ( _Symbol , SYMBOL_ASK )-InpTP* _Point ; 
        } 
      Trade_reqst.sl=sl; 
      Trade_reqst.tp=tp; 
       //--- 2. Отправить торговый приказ 
       MqlTradeResult Trade_reslt_m={ 0 };             // Инициализация структуры результата торгового запроса 
       if (! OrderSend (Trade_reqst,Trade_reslt_m))     // Отправка торгового запроса на сервер 
         return false ; 
       else 
         return true ; 
     } 
   else              // No signal 
     { 
       return false ; 
     } 
  }  
Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
EA'da hata ayıklama yaparken neden yalnızca OneInit() içindeki değişkenlerin ve işlevlerin değerlerini kontrol edebileceğimi söyle? Diyelim ki OneTick()'te çubuğu veya kene işleme koşulunu kontrol etmek istiyorum, bunu nasıl yapabilirim?