Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1270

 
ANDREY:

Buona giornata a tutti!

Ho iniziato a studiare mql5. Ho iniziato studiando come vengono aperti gli ordini. Ho capito che il codice per aprire un ordine è scritto in un file include separato. Ora ho imparato questo codice e la sua variante finale per il trading. Sono rimasto sorpreso dal fatto che l'apertura degli ordini in mql4 è molto più facile e semplice che in mql5.

Vorrei chiedere se sono sicuro di avere già il file con il codice per aprire l'ordine e non ho bisogno di scrivere questo codice. Se un tale file è disponibile da qualche parte, allora devo solo collegarlo al mio EA e impostare i valori dei parametri degli ordini di cui ho bisogno? Se esiste un tale file, dove e come dovrebbe essere trovato, e qual è il suo nome.

Grazie.

Se ho capito bene, è #include <Trade\Trade.mqh>.

File:
ng4txc.PNG  116 kb
15vegf1.PNG  114 kb
 
SanAlex:

Se ho capito bene, è #include <Trade\Trade.mqh>.

Grazie mille per queste preziose informazioni.

Ho capito bene che non devo cercare questi file da nessuna parte, ma solo scrivere nel posto giusto del codice #include <Trade\Trade.mqh> e questo file si unirà automaticamente al mio Expert Advisor e vi accederà quando necessario?

 
ANDREY:

Grazie mille per le preziose informazioni.

Ho capito bene che non devo cercare questi file da nessuna parte, ma solo scrivere nel posto giusto del codice #include <Trade\Trade.mqh> e questo file si unirà automaticamente al mio EA e l'EA vi accederà quando necessario?

Sì, non c'è bisogno di cercarlo, è già lì.

Puoi guardare il file di codice(Moving Averages.mq5 o MACD Sample.mq5), dal terminale.

 
SanAlex:

Sì, non c'è bisogno di cercarlo, è già lì.

Grazie mille per le preziose informazioni.
Se ho capito bene il file che mi avete inviato si chiama CLASSE Questo file è destinato all'apertura di un ordine. Penso che ci siano molte CLASSI e ognuna ha il suo scopo, per esempio chiudere l'ordine, modificare l'ordine, emettere alcune informazioni, ecc.

D: Dove posso trovare una lista di tutte le classi con le loro descrizioni dettagliate?
Grazie ancora per il vostro aiuto.

 
ANDREY:

Grazie mille per le preziose informazioni.
Se ho capito bene il file che mi hai mandato si chiama CLASS Questo file serve per aprire un ordine. Penso che ci siano molte CLASSI e ognuna ha il suo scopo specifico, ad esempio chiudere un ordine, modificare un ordine, emettere alcune informazioni, ecc.

DOMANDA Dove posso trovare un elenco di tutte le classi con le loro descrizioni dettagliate?
Grazie ancora per il vostro aiuto.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
Artyom Trishkin:

Grazie mille per le preziose informazioni. Ora comincerò a digerirlo, cioè ad assimilare ..... per quanto riguarda la mia capacità mentale.

 
ANDREY:

Buona giornata a tutti!

Ho iniziato a studiare mql5. Ho iniziato a studiare come vengono aperti gli ordini. Ho capito che il codice per aprire un ordine è scritto in un file include separato. Ora ho imparato questo codice e la sua variante finale per il trading. Sono rimasto sorpreso dal fatto che l'apertura degli ordini in mql4 è molto più facile e semplice che in mql5.

Vorrei chiedere se sono sicuro di avere già il file con il codice per aprire l'ordine e non ho bisogno di scrivere questo codice. Se un tale file è disponibile da qualche parte, allora devo solo collegarlo al mio EA e impostare i valori dei parametri degli ordini di cui ho bisogno? Se esiste un tale file, dove e come dovrebbe essere trovato, e qual è il suo nome.

Grazie.

Ho un approccio diverso alla scrittura di un EA per me. Ho solo bisogno di correggermi.

-( perché reinventare la ruota quando è già stata creata)

----------------------------------------------------------------------

qui è dove prendiamo gli indicatori

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- prepare trade class to control positions if hedging mode is active
   ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
   ExtTrade.SetExpertMagicNumber(MA_MAGIC);
   ExtTrade.SetMarginMode();
   ExtTrade.SetTypeFillingBySymbol(Symbol());
//--- Moving Average indicator
   ExtHandle=iMA(_Symbol,_Period,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE);
   if(ExtHandle==INVALID_HANDLE)
     {
      printf("Error creating MA indicator");
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

e qui li impostiamo in modo che gli indicatori si aprano correttamente secondo il segnale

//+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen(void)
  {
   MqlRates rt[2];
//--- go trading only for first ticks of new bar
   if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }
   if(rt[1].tick_volume>1)
      return;
//--- get current Moving Average 

   double   ma[1];
   if(CopyBuffer(ExtHandle,0,0,1,ma)!=1)
     {
      Print("CopyBuffer from iMA failed, no data");
      return;

     }
//--- check signals
   ENUM_ORDER_TYPE signal=WRONG_VALUE;

   if(rt[0].open>ma[0] && rt[0].close<ma[0])
      signal=ORDER_TYPE_SELL;    // sell conditions
   else
     {
      if(rt[0].open<ma[0] && rt[0].close>ma[0])
         signal=ORDER_TYPE_BUY;  // buy conditions
     }
//--- additional checking
   if(signal!=WRONG_VALUE)
     {
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100)
         ExtTrade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
     }
//---
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Per aiutarmi a capire meglio MQL5, vi sarei molto grato se poteste tradurre questo semplice codice da MQL4 a MQL5

Grazie per l'aiuto.

int s1,SL,a;
double Lou=Bid,Hay,DL=0.0030;
void OnTick()
{
if (Bid < Lou)
{
Lou=Bid;
}
if (Bid > Hay)
Hay=Bid;
if (Bid - Lou > DL&& Lou!=0)
{
Lou=Bid;
Hay=Bid;
s1=1;
}
////=======================
if (Hay-Bid>0.0000)
if (s1==1)
{
for(int c=0; c<=500;c+=20)
{
a++;
{
SL=300+c;
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,Ask+SL*Point,Ask-SL/3*Point,"300",100);
Lou=Bid;
Hay=Bid;
}
}
a=0;
s1=0;
}
}
 

numPosOr= 4;

numStepCount= 1;

iK = (numPosOr - numStepCount) / numPosOr;

Perché con questo calcoloiK = 0?

 
Sysmart:

numPosOr= 4;

numStepCount= 1;

iK = (numPosOr - numStepCount) / numPosOr;

Perché con questo calcoloiK = 0?

Per favore datemi l'intero codice