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

 

Ciao, c'è una domanda nel codice. Questo evento appare su ogni nuova barra del TF di lavoro. TF - dovrebbe essere così o c'è un errore nel codice?

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   ResetLastError();   
   datetime Arr[];
   if(CopyTime(NULL,PERIOD_M5,10,1,Arr)<=0) 
   {
      int error=GetLastError();
      Print("Ошибка 4401 возникает на новом баре раб.ТФ, который должен быть ниже М5 в данном случае ",error);
      Print("Почему запрошенная история не найдена ведь я обращаюсь всего лишь к 10-му бару старшего ТФ М5");
      return(0);
      }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
novichok2018:

C'è anche la funzionebool ExistPositions() di Igor Kim, che restituisce la bandiera di esistenza della posizione, che è difficile per me adattare alle mie condizioni specifiche. Ma non credo nemmeno che sarà testato nella storia.

Se nessuno ha un codice, effettivamente testato nel mondo reale, da mostrarmi, lo proverò scientificamente. Grazie.

La mia conoscenza è di nuovo carente! Una semplice sostituzione in iOpen(NULL,0,0) per EURUSD produce errori identificatore non dichiarato e conversione implicita da 'numero' a 'stringa'. Lo stesso quando si cambia Symbol() inOrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,"",magic,0,Blue); Come lo risolvo?

 
novichok2018:

Ancora una volta la mia conoscenza è carente! La semplice sostituzione di NULL in iOpen(NULL,0,0) con EURUSD dà errori di identificazione non dichiarata e conversione implicita da 'numero' a 'stringa'. Lo stesso quando si cambia Symbol() in OrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,"",magic,0,Blue); Come lo risolvo?

Non hai dimenticato di mettere le virgolette?

 
novichok2018:

Sì, è come l'ho immaginato, ma non posso verificare se funziona sullo storico, perché l 'apertura di una posizione sull'euro dovrebbe avvenire dalla condizione per la sterlina e non si riflette nel codice per l'euro, mentre lo storico è visualizzato sull'euro. Da qui l'incertezza sulla correttezza della decisione.

Poi dovrò imparare MQL5 e testare la variante multivaluta.

 
Alexey Viktorov:

Allora dovrò imparare MQL5 e testare la variante multivaluta.

Oh no, grazie! Non ho intenzione di studiare a fondo MKL4 o MKL5. Il mio obiettivo è quello di scrivere semplici Expert Advisors che siano redditizi nel 95% delle posizioni aperte, e di evitare di tirare tutto il saldo prima di decidere di chiudere una posizione in perdita. Ho diversi Expert Advisors che funzionano su conti demo, ma ogni volta appaiono nuove idee e voglio testarle subito. Rimango dell'opinione che più semplice è il codice, meglio è, non voglio addentrarmi nel linguaggio. Non ancora, comunque! Uno studio approfondito della lingua è giustificato solo allo scopo di guadagnare soldi scrivendo esperti su ordinazione, IMHO.

Grazie per le citazioni. Non l'ho ancora provato, un po' più tardi.

 
novichok2018:

....... Il mio obiettivo è quello di scrivere semplici Expert Advisors per me, che siano redditizi nel 95% delle posizioni aperte, e che un minus sospeso non prosciughi tutto il mio bilancio fino a quando non decido di chiudere una posizione in perdita. .....

Lei ha descritto il sogno del 95% dei commercianti di tutto il mondo. Ma non vuoi nemmeno preoccuparti dell'ortografia e della sintassi della lingua. Un'invidiabile fiducia in se stessi, mi piacerebbe. IMHO naturalmente.

 
novichok2018:

Oh no, grazie! Non ho intenzione di studiare a fondo MKL4 o MKL5. Il mio obiettivo è quello di scrivere semplici Expert Advisors che siano redditizi nel 95% delle posizioni aperte, e di evitare di tirare tutto il saldo prima di decidere di chiudere una posizione in perdita. Ho diversi Expert Advisors che funzionano su conti demo, ma ogni volta appaiono nuove idee e voglio testarle subito. Rimango dell'opinione che più semplice è il codice, meglio è, non voglio addentrarmi nel linguaggio. Non ancora, comunque! Uno studio approfondito della lingua è giustificato solo con lo scopo di guadagnare soldi scrivendo esperti personalizzati, IMHO.

Grazie per le citazioni. Non l'ho ancora provato, lo proverò un po' più tardi.

MQL5 non è più complicato di MQL4. In alcuni casi è anche più semplice e veloce. OOP è solo un fastidio per i principianti. Per scrivere un semplice Expert Advisor a cui si fa riferimento, non è necessario conoscere l'OOP.

Dimmi quanto è più difficile scrivere

// MQL4

OrderSend(_Symbol, OP_BUY, lot, price, Slip, sl, tp, "", Magic);
// MQL5

#include <Trade\\Trade.mqh>
CTrade trade;

trade.Buy(lot);
 
Sergey Voytsekhovsky:

Lei ha descritto il sogno del 95% dei commercianti del mondo. Ma non vuoi nemmeno preoccuparti dell'ortografia e della sintassi della lingua. Un'invidiabile fiducia in se stessi, mi piacerebbe. IMHO, naturalmente.

Non capisco cosa intendi per "ortografia", ma non importa, perché i miei robot funzionano, ed esattamente nel modo che ho descritto.

 
Alexey Viktorov:

MQL5 non è più complicato di MQL4. E in alcuni casi è ancora più semplice e veloce. OOP è solo una storia dell'orrore per i principianti. Per scrivere un semplice Expert Advisor di cui stai parlando, non hai bisogno di conoscere l'OOP.

Dimmi quanto è più difficile scrivere

OH, MIO DIO! Mi hai ucciso. Non ci capisco niente, anche se meccanicamente non è più difficile scrivere la seconda versione )).

 

Ciao, per quanto tempo ci sarà MT4? un anno o due?

Scusate la domanda, è un po' fuori tema (ma molto importante per me).