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

 
ANDREY:

È possibile chiudere lo spread, cioè aggiungere un certo valore al prezzo di offerta. Ma come si può fissare la dimensione di questo spread? In tick reali lo spread è fluttuante, cioè il valore dello spread è sconosciuto. E quindi non può essere chiuso su zecche reali ..... secondo la mia opinione professionale, ma in modo puramente logico. Probabilmente è possibile cucire solo ciò che è ESATTAMENTE noto PER SEMPRE.

Metatrader vi sorprende? Non sono... non più... Per favore....

<DATA> <ORA> <APERTURA> <ALTO> <BASSO><CLOSE> <TICKVOL> <VOL> <SPREAD>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

 
Александр:

Metatrader vi sorprende? Non sono... non più... Per favore....

<DATA> <ORA> <APERTURA> <ALTO> <BASSO><CLOSE> <TICKVOL> <VOL> <SPREAD>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Cioè, lo spread è O , o semplicemente il valore dello spread non viene visualizzato. E questi dati da MT4, o da MT5. E da quale voce di menu provengono questi dati?

Se c'è un valore di spread ma per qualche motivo non viene visualizzato, allora questo problema di MT è molto simile al mio problema di MT5. Alpari dice che la profondità della storia non ha alcun effetto sulla qualità delle quotazioni dei tick e pensa che il mio problema sia nascosto nel terminale stesso e consiglia di contattare gli sviluppatori. Quindi, come nel tuo esempio, ho lo stesso valore di storia della qualità per il 2010, ma per qualche motivo non viene visualizzato in MT5 . Se non ci fossero zecche, o il loro numero fosse troppo piccolo (diciamo 1000), allora la qualità della storia non verrebbe visualizzata.
 

Salve.
Si prega di prestare attenzione a un principiante.
Nessun errore o avvertimento durante la compilazione, ma l'EA non apre gli ordini nel tester... E non ci sono errori nel registro...

Quale può essere la ragione? Già provato diverse cose...

extern double Lot=0.1;            
extern int Slippage = 30;
extern int TakeProfit = 30;
extern int StopLoss   = 30;
extern int MA_Smoth_S = 60;
extern int MA_Smoth_B = 12;
extern int MA_Simpl_S = 3;
extern int MA_Simpl_B = 1;

int start()
         {
          int MA_Simpl_S_Op,      
              MA_Simpl_B_Op;      
                 
          MA_Smoth_S = iMA(NULL,0,MA_Smoth_S,0,MODE_SMMA,PRICE_CLOSE,1);
          MA_Smoth_B = iMA(NULL,0,MA_Smoth_B,0,MODE_SMMA,PRICE_CLOSE,1);
          MA_Simpl_S = iMA(NULL,0,MA_Simpl_S,0,MODE_SMA,PRICE_CLOSE,1);
          MA_Simpl_B = iMA(NULL,0,MA_Simpl_B,0,MODE_SMA,PRICE_CLOSE,1);
          MA_Simpl_S_Op = iMA(NULL,0,MA_Simpl_S,0,MODE_SMA,PRICE_CLOSE,2);
          MA_Simpl_B_Op = iMA(NULL,0,MA_Simpl_B,0,MODE_SMA,PRICE_CLOSE,2);
          
          //Условие для Buy______________________
          while(MA_Smoth_B > MA_Smoth_S)
               {
                if(MA_Simpl_B_Op < MA_Simpl_S_Op && MA_Simpl_B > MA_Simpl_S)
                  {
                   bool check = OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask, Digits),Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Buy",0,0,clrGreen);
                   return(0);
                  }
               }
               
          //Условия для Sell_____________________
          while(MA_Smoth_S > MA_Smoth_B)
               {
                if(MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
                  {
                   check = OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid, Digits),Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,"Sell",0,0,clrRed);
                   return(0);
                  }   
               }     
          return(0);
         }
 
IndependentMK:

Salve.
Si prega di prestare attenzione a un principiante.
Nessun errore o avvertimento durante la compilazione, ma l'EA non apre gli ordini nel tester... E non ci sono errori nel registro...

Quale può essere la ragione? Ho già provato diverse cose...

int X = 5;
if(X > 10 && X < 3)  int ticket = OrderSend(Symbol(), OP_SELL, Доп_Лот, NormalizeDouble(Bid, Digits), 3,  NormalizeDouble(Ask + StopLoss_S * Point, Digits),  NormalizeDouble(Bid - TakeProfit_S * Point, Digits), "", MAGIC_S, 0, CLR_NONE);
 

Cosa ne pensate? Il tester aprirà la posizione? No. Perché X non è nella gamma di test. Ecco perché. Inserite le stampe nel codice e analizzate il log del tester.

int start()
  {
   int MA_Simpl_S_Op,
       MA_Simpl_B_Op;
   MA_Smoth_S = iMA(NULL, 0, MA_Smoth_S, 0, MODE_SMMA, PRICE_CLOSE, 1);
   MA_Smoth_B = iMA(NULL, 0, MA_Smoth_B, 0, MODE_SMMA, PRICE_CLOSE, 1);
   MA_Simpl_S = iMA(NULL, 0, MA_Simpl_S, 0, MODE_SMA, PRICE_CLOSE, 1);
   MA_Simpl_B = iMA(NULL, 0, MA_Simpl_B, 0, MODE_SMA, PRICE_CLOSE, 1);
   MA_Simpl_S_Op = iMA(NULL, 0, MA_Simpl_S, 0, MODE_SMA, PRICE_CLOSE, 2);
   MA_Simpl_B_Op = iMA(NULL, 0, MA_Simpl_B, 0, MODE_SMA, PRICE_CLOSE, 2);
//Условие для Buy______________________
   Print(" MA_Smoth_B = ", MA_Smoth_B, " MA_Smoth_B = ", MA_Smoth_B);
   while(MA_Smoth_B > MA_Smoth_S)
     {
      Print(" MA_Simpl_B_Op = ", MA_Simpl_B_Op, " MA_Simpl_S_Op = ", MA_Simpl_S_Op);
      if(MA_Simpl_B_Op < MA_Simpl_S_Op)
        {
         Print(" MA_Simpl_B = ", MA_Simpl_B, " MA_Simpl_S = ", MA_Simpl_S);
         if(MA_Simpl_B > MA_Simpl_S)
           {
            bool check = OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), Slippage, Bid - StopLoss * Point, Ask + TakeProfit * Point, "Buy", 0, 0, clrGreen);
            return(0);
           }
        }
     }
//Условия для Sell_____________________
   while(MA_Smoth_S > MA_Smoth_B)
     {
      if(MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
        {
         bool check = OrderSend(Symbol(), OP_SELL, Lot, NormalizeDouble(Bid, Digits), Slippage, Ask + StopLoss * Point, Bid - TakeProfit * Point, "Sell", 0, 0, clrRed);
         return(0);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
ANDREY:

Cioè, lo spread è O , o semplicemente il valore dello spread non viene visualizzato. Questi dati provengono da MT4 o MT5? E da quale voce di menu provengono questi dati?

Se il valore di spread è lì, ma non viene visualizzato per qualche motivo, allora questo glitch di MT è molto simile al mio glitch di MT5. Alpari dice che la profondità della storia non ha alcun effetto sulla qualità delle quotazioni dei tick e crede che il mio problema sia nascosto nel terminale stesso, e consiglia di contattare gli sviluppatori. Quindi, come nel tuo esempio, ho lo stesso valore di qualità della storia per il 2010, ma per qualche motivo non viene visualizzato in MT5 . Se non ci fossero zecche, o il loro numero fosse troppo piccolo (diciamo 1000), allora la qualità della storia non verrebbe visualizzata.

Ecco la quotazione di MT4

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

Ecco MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Senti la differenza... Ho smesso di lavorare con le zecche molto tempo fa. E così com'è, non ho abbastanza energia per lottare contro i vari "handy/funzionari".

Metti lo stesso Expert Advisor in un'altra società di brokeraggio. Che problema con le zecche lì. Anche su Open, anche aprendo e chiudendo allo stesso tempo. La differenza è ENTRAMBI. Forse qualcuno ha risolto questo problema (zecche, ecc.), e io non so come affrontarlo. E in MT5 c'è anche uno spread...

 
Александр:

Ecco le quotazioni di MT4

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

Ecco MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

Senti la differenza... Ho smesso di lavorare con le zecche molto tempo fa. E così com'è, non ho abbastanza energia per lottare contro i vari "handy/funzionari".

Metti lo stesso Expert Advisor in un'altra società di brokeraggio. Che problema con le zecche lì. Anche su Open, anche aprendo e chiudendo allo stesso tempo. La differenza è ENTRAMBI. Forse qualcuno ha risolto questo problema (zecche, ecc.), e io non so come affrontarlo. E in MT5 c'è anche uno spread...

Naturalmente tu sei più avanzato di me in tutte queste questioni ...... ecco perché non capisco il tuo processo di pensiero in alcuni punti...
Quando ho provato ad usare Mt4 per esempio i miei codici mostravano ottimi risultati con i codici Tiki ... Poi ho imparato che il mio ottimo risultato non è completamente accurato, perché MT4 non tiene conto dello spread reale e che lo spread reale di MT4 in Alpari non può essere preso in considerazione perché galleggia (soprattutto di notte). E il mio Expert Advisor ha mostrato i migliori risultati proprio da 22 a 1.

Su questo forum mi è stato detto che durante i test lo spread reale (che è esattamente fluttuante) è preso in considerazione solo su MT5. Questo mi ha portato a studiare MT5 e ad eseguire il mio codice su di esso sul modello - ogni tick basato su tick REALI. Dopo questo mi è passata la sbornia, perché il mio codice non ha mostrato risultati così buoni come su MT4. D'altra parte alcuni punti positivi del codice, che erano su MT4, sono stati confermati anche su MT5. E sono stato contento di poter migliorare il mio codice, essendo sicuro che i risultati dei test erano vicini al commercio reale.

Per questo motivo, non capisco bene (forse per mancanza di conoscenza ed esperienza) il vostro atteggiamento negativo nei confronti dei test sulla storia delle zecche. Dopotutto, se si aprono le transazioni non da Сlose (come hai fatto tu), ma a qualsiasi prezzo che è specificato nella richiesta di aprire un ordine (come faccio io), qual è allora lo svantaggio di testare sui tick?
Il possibile svantaggio può essere, come mi sembra, solo un insieme incompleto di tick e la loro omissione nelle quotazioni caricate. Ma il numero di tick, rispetto al numero di candele di un minuto, è enorme. E non ho ancora studiato se i tick mancanti (come le candele) possono essere rilevati e aggiunti al file dei tick. Ecco perché devo fidarmi della promessa di Alpari finora, che hanno una storia di tick COMPLETA dal 2001.
E ancora non capisco la differenza, che dovrei sentire guardando i candelabri che hai portato per dimostrare qualche idea tua
.

Non voglio testare il mio EA con un altro broker, perché se mai oserò fare trading dal vivo, sarà con Alpari. Inoltre, tu stesso hai detto che questo broker ha i dati di tick più completi e affidabili.

Sono sicuro che hai delle informazioni preziose per me, che, purtroppo, non sono in grado di prendere dalle tue parole.

Тестирование торговых стратегий на реальных тиках
Тестирование торговых стратегий на реальных тиках
  • www.mql5.com
В данной статье мы покажем результаты тестирования простой торговой стратегии в 3-х режимах: " OHLC на M1 " с использованием только цен Open,High, Low и Close минутных баров; затем детальное моделирование в режиме " Все тики ", и самое достоверное тестирование в режиме " Каждый тик на основе реальных тиков " с использованием записанных тиков из...
 
ANDREY:


Il tuo atteggiamento negativo nei confronti dei test sulla storia delle zecche. Dopotutto, se si aprono operazioni non in base a Сlose (come hai fatto tu) ma a qualsiasi prezzo che viene specificato nella richiesta di aprire un ordine (come ho fatto io), allora qual è lo svantaggio di testare sui tick?

E ancora non capisco quale sia la differenza, che dovrei sentire guardando i parametri dei candelieri, che avete portato per dimostrare la vostra idea.

Non voglio testare il mio EA con un altro broker, perché se mai oserò fare trading dal vivo, sarà con Alpari. Inoltre, tu stesso hai detto che questo broker ha i dati di tick più completi e affidabili.

Sono sicuro che lei ha delle informazioni preziose per me, che finora, purtroppo, non sono riuscito a cogliere dalle sue parole.

1. Atteggiamento negativo... No, non è negativo. È solo che si prova ad aspettare per settimane che i test siano completati e poi si scopre che le quotazioni non sono abbastanza buone e questo influenza fortemente i risultati. Tutte le società di intermediazione FILTRANO le quotazioni. I filtri li distorcono. Ho seguito la strada di scrivere un EA che non è critico sulla qualità delle citazioni.

2. La differenza di quotazioni tra MT4 e MT5 è che ho iniziato con che MT5 ha uno spread PER OGNI TASSO. Perché? Non lo so. Offline questo spread è al massimo. Offline sta andando in giro. Cioè dovremmo fare un sistema che non sia critico. Vedi punto 1 G).

Non c'è altro da dire. Nessun sottotesto.

 
Александр:

1. Un atteggiamento negativo... No, non è negativo. È solo che si spinge, si aspetta per settimane che i test finiscano, e poi si scopre che i preventivi non sono abbastanza buoni e questo ha un impatto ENORME sui risultati. Tutti i DC FILTRANO i preventivi. I filtri li distorcono. Ho seguito la strada di scrivere un EA che non è critico sulla qualità delle citazioni.

2. La differenza di quotazioni tra MT4 e MT5 è che ho iniziato con che MT5 ha uno spread per ogni tasso. Perché? Non lo so. Offline questo spread è al massimo. Offline sta andando in giro. Cioè dovremmo fare un sistema che non sia critico. Vedi punto 1 G).

Non c'è altro da dire. Nessun sottotesto.

"....... e poi si scopre che le citazioni non sono abbastanza buone e questo influenza fortemente i risultati. I filtri li distorcono. ...."


Supponiamo che ci sia un tick di quotazioni reali dal 2008 per una coppia scaricata automaticamente dal server Alpari a MT5 per il test. Come si fa a sapere se queste citazioni non sono abbastanza buone? In generale, con quali criteri valutate la qualità delle citazioni? Quali sono i parametri che dovrebbero avere le quotazioni di tick di qualità ottimale?
Come dice Alpari, le quotazioni dei tick non sono modellate o generate, ma sono prese dalla storia registrata. Da quanto ho capito .... ha portato un altro tick qualsiasi citazione - Alpari tick con questa citazione registrato e registrato. E così via ad ogni spunta. Come risultato, hanno un enorme database di tick con prezzi, che scaricano su MT5 per i test. E solo se una citazione necessaria o la sua sequenza manca per qualche motivo, solo allora Alpari, invece di perdere i tick reali con i prezzi, questi tick sono simulati secondo un algoritmo vicino all'aspetto dei tick reali.

Per questo non capisco bene quali lamentele si possano fare sulla qualità delle citazioni. In alternativa, posso immaginare che un tick sia arrivato e abbia portato il prezzo, per esempio, a 1,00061. Ma Alpari ha assegnato un prezzo diverso a questo tick, per esempio, 1,00077. Oppure possono attaccare a questa zecca uno spread diverso da quello che c'era nella realtà. Ma se è davvero così, una persona non autorizzata non può rilevare questa alterazione, soprattutto su una storia profonda. Quindi è ovviamente possibile affermare che Alpari ha filtrato questa spunta con la citazione. Ma mi sembra praticamente impossibile provarlo. Perché nessuno, tranne lo specialista Alpari interessato, sa quale fosse il prezzo primario o lo spread del tick filtrato. L'unica variante possibile è che questo specialista riveli questo segreto a qualcuno, e magari confermi il fatto per iscritto. Ma, come mi sembra, queste informazioni con prove documentali apparirebbero immediatamente su questo forum.


"... Tutti i DC sono citazioni FILTRANTI. I filtri li distorcono....."


Ho letto molte volte di questo. Ma questo filtraggio riguardava il trading reale. E mi sembra che tale filtraggio sia ragionevole per le società di intermediazione. Con il suo aiuto possono evitare grandi perdite, se una grande quantità di posizioni con un volume molto grande può chiudere al Take Profit, se la società di intermediazione non è entrata nel mercato. E a cosa serve il filtraggio quando una società di intermediazione fornisce quotazioni per i test?

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
 

Potete dirmi come ottenere un rapporto di x2 quando si chiude una posizione in perdita?

Ora ottengo 1,4,9,16 - e ho bisogno di 2,4,8,16.

Cosa sistemare nel codice?

 int cn=0,c=0;
  datetime dt=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
    if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && OrderType()<=1) {
     if((OrderSymbol()==mSymbol)&&(OrderMagicNumber()==Magic)) {
       double Profit=OrderProfit()+OrderCommission()+OrderSwap();
        if(Profit<0) {  
        c++;   
        cn=(int)MathPow(c,2); // что здесь исправить?
        } else break;     
 }}}
   Comment(cn);
 
Denis Pershin:

Potete dirmi come ottenere un rapporto di x2 quando si chiude una posizione in perdita?

Ora ottengo 1,4,9,16 - e ho bisogno di 2,4,8,16.

Cosa sistemare nel codice?

Tutto deve essere aggiustato.

Il tuo codice cerca il primo ordine dalla cronologia degli ordini con il simbolo e il numero magico specificati

Poi il numero di ordini non redditizi viene calcolato e moltiplicato per 2.

cercate nel forum"funzioni utili da CMM" e fate qualcosa del genere

- trovare il biglietto dell'ultimo ordine per il nostro simbolo e la nostra magia

- ottenere OrderProfit( e OrderLots() dal biglietto trovato e moltiplicare per il proprio coefficiente di martingala, se necessario

ZS: ci può essere una soluzione pronta

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
Motivazione: