Molanis Mistake qualcuno? - pagina 3

 

RJo:

Detto questo, devo ancora vedere un ex4 funzionale con un mq4 difettoso da SB.

Hai postato codice mql4 difettoso . . sembra che Molanis non sia meglio di EA Builder.
 
RJo:


Ah, quindi... i computer sono i migliori nel trading e quindi l'umano dovrebbe essere eliminato.


No.... computer sono i migliori nel trading automatico;)
 
RaptorUK:
Hai postato il codice difettoso di mql4 . . sembra che Molanis non sia meglio di EA Builder.


"Difettoso" rispetto al file ex4, come se l'ex4 fosse più funzionale dell'mq4. Come detto nel mio primo post, non sono un codificatore. Già. Grazie per la tua diagnosi specifica. Ah già... non ne avevi una.

 
RJo:


"Difettoso" rispetto al file ex4, come se l'ex4 fosse più funzionale dell'mq4. Come detto nel mio primo post, non sono un codificatore. Già. Grazie per la tua diagnosi specifica. Ah già... non ne avevi una.

Non ho bisogno di duplicare ciò che WHRoeder ha già dato.
 
JDeel:

Perché non cominciamo a programmare in assembler? Possiamo controllare tutto nel livello più basso disponibile (dopo il codice macchina). Sì, ci vuole più sforzo per impararlo, ma sicuramente otterremo un codice così piccolo e super ottimizzato! Questo è cosìooooo incredibile, non pensate, gente?

deVries, Molanis non è il mio strumento e non ho mai fatto EA con esso. Ma vedo che non sei un fan degli EA Builders e posso consigliarti di non provare mai a lavorare con loro. Usa solo MQL4/MQL5, questo non è vietato. Ci sono persone a cui piace di più il colore rosa, e persone a cui piace di più il colore blu. È sempre stato così e continuerà ad esserlo.


Non cambiare le mie parole.... Dimostraci che puoi codificare correttamente un Expert Advisor usando il tuo strumento che ho scritto. Voglio ancora dire che...

Non ho mai scritto che Molanis è il vostro strumento. Se cerchi su Google EABuilders ne troverai altri. Forse sei un utente del NoProgra Builder...

e pensi che sia uno strumento che può codificare correttamente i tuoi EA per MetaTrader4 allora prova con quel costruttore.

Ma ci sono persone che consigliano di utilizzare EABuilders o promuovere l'uso di loro...

Se vuoi promuovere qualsiasi prodotto allora assicurati che il prodotto sia buono provandolo

E ancora non ho visto qualcuno riuscire a farlo....

Il grande svantaggio di questi strumenti è che ci saranno persone che pensano che non sia necessario conoscere le basi di mq4, quando uno strumento può fare il tuo prodotto

Ma non sanno che qualità ottengono.... da quello strumento. Oppure non riconoscono gli errori nei programmi che possono ottenere (gratis o non gratis) usando internet

 
RJo:

Grazie per la tua diagnosi specifica. Ah sì... non ne avevi una.

Ti faccio un esempio specifico . . .

int CLOSELONG(string symbol_c) {
 CloseAllPositions(symbol_c,OP_BUY,MagicNumberLong);
 CloseAllPositions(symbol_c,OP_BUY,MagicNumberLong);
 return(0);
}

//CLOSESHORT closes short positions
/*
*** Generated with Molanis Strategy Builder 3.1 ***
*** www.molanis.com ***
*** Released 2010-02-20 ***
*/
int CLOSESHORT(string symbol_c) {
 CloseAllPositions(symbol_c,OP_SELL,MagicNumberShort);
 CloseAllPositions(symbol_c,OP_SELL,MagicNumberShort);
 return(0);
}

Queste 2 funzioni chiamano due volte la stessa funzione . . CloseAllPositions, la prima per i Longs, la seconda per i Shorts . . . perché lo fa? lo fa per pulire gli Ordini che non è riuscito a chiudere la prima volta che CloseAllPositions viene eseguito, perché non riesce a chiudere le posizioni? perché il ciclo utilizzato per chiudere queste posizioni conta su e ora giù . . . e tu sai già perché questo fallisce dato che hai letto il thread che ho creato proprio su questo argomento.

Quindi, invece di capire perché alcune posizioni vengono lasciate aperte, i bravi ragazzi di Molanis hanno trovato una soluzione... chiamando la stessa funzione una seconda volta per riordinare dopo la prima.

 

Grazie per aver postato il codice di Molanis, RJo, lo rivedrò più tardi - il calcolo dei lotti di Molanis è davvero terribile. Penso che gli utenti di Molanis / EA SB siano utenti felici, fino a quando non imparano mql, e da allora vedranno Molanis / EA SB da un punto di vista totalmente diverso.

Penso che sia meglio difendere prima i nostri soldi che difendere Molanis/EA SB - o la nostra decisione di usarne uno. ;).

 
RJo:
Indi:


Grazie per aver pubblicato i codici ....

Per quanto WHRoeder sia bravo a segnalare gli errori così rapidamente io non lo sono e non ha senso ripeterlo

Ma se non sai come codificare puoi fare qualcos'altro che vedi qui....

.

Ho fatto un test per vedere il comportamento dell'indicatore e che dà anche una sorta di avvertimento fatto due immagini

Test su 1 Minuto (fa sì che l'EA non faccia trading) a partire dal 1 gennaio 2012

Vedete il comportamento prima del test dell'indicatore in questa immagine

E il comportamento quando inizia il test

Questo comportamento lo vedrete anche se mettete nel test un EA che non usa l'indicatore

.

Sembra un comportamento completamente diverso Questo è anche un avvertimento per dare un'occhiata più da vicino al codice o il comportamento dell'indicatore prima di usarlo

.

Sembra che questo codice dell'indicatore non sia fatto da Molanis perché inizia con.....

// This is Not Tested , Use At Your Own Risk !

//+--------------------------------------------------------------------------+
//| 3 MA Cross w_Alert v2.mq4                                                |
//| Copyright © 2005, Jason Robinson (jnrtrading)                            |
//| http://www.jnrtading.co.uk                                               |
//| 3 ma conversion and Alert , David Honeywell , transport.david@gmail.com  |
//| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
//+--------------------------------------------------------------------------+

/*
  +-------------------------------------------------------------------------------+
  | Allows you to enter 3 ma periods and it will then show you and alert you at   |
  | which point the 2 faster ma's "OPEN" are both above or below the Slowest ma . |
  +-------------------------------------------------------------------------------+
*/   

Penso che l'errore di questo indicatore è che calcola il futuro

   for(i = 0; i <= limit; i++)
    {
      
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
       {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
       }
      Range=AvgRange/10;
       
      fasterMAnow      = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+1);
      fasterMAprevious = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+2);
      fasterMAafter    = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i-1);
      
      mediumMAnow      = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+1);
      mediumMAprevious = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+2);
      mediumMAafter    = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i-1);
      
      slowerMAnow      = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+1);
      slowerMAprevious = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+2);
      slowerMAafter    = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i-1);
Quando " i = 0 " allora " i-1 " è futuro.....
 
WHRoeder:

Ichi_Cloud_EA.mql4 in nessun ordine particolare

  1. Is_micro_account esterno invece di calcolarlo tramite Market_info
  2. Usando micro_account e NormalizeDouble si presuppone che lotStep sia 0.1 o 0.01. Non sono ammessi altri valori definiti dal broker.
  3. esterno FiveDigits invece di calcolarlo. Test solo per 3 o 5 permette coppie standard, coppie tipo jpy. Trading metalli FAIL. Perché il test per le impostazioni non valide.
  4. Il PipMultiplier globale non viene mai resettato al cambio di grafico.
  5. molti bools esterni non possono essere testati con la strategia.
  6. Non c'è motivo di usare due numeri magici
  7. Farà trading solo quando l'ora è compresa tra TradingStartTime e TradingEndTime. Nessuna possibilità di impostare il tempo oltre la mezzanotte (ad esempio inizio 2000, fine 0600, cioè solo per la sessione di Sydney)
  8. Utilizza PreviousBarCount==Bars. Barre inaffidabili (barre massime nel grafico) Volume inaffidabile (si possono perdere tick) usa sempre il tempo.
  9. usa iClose(Symbol(),0,1) invece del più semplice e veloce Close[1]
  10. in Init Slippage = Slippage*PipMultiplier; significa OGNI VOLTA che si cambia grafico (coppia o time frame) lo Slippage aumenta di 3 , 30, 300, 3000!
  11. magiccond e altri bool usano if (condition) boolVar= true; else boolVar = false; quando potrebbe usare il semplificatore boolVar = condition;
  12. Non memorizza mai i valori se (iClose() <> iCustom()) le stesse chiamate iClose e iCustom sono chiamate 4+ volte.
  13. Conta in alto durante la chiusura. chiama la funzione due volte. Contare in alto significa che mancherà ogni altro ordine. Chiamare la funzione due volte significa che fallisce su 4 o più ordini aperti. Conta sempre verso il basso.
  14. "M-ERROR: La scadenza deve essere di almeno 1 minuto." ho appena ricevuto un messaggio su questo periodo di scadenza che dovrebbe essere più di 10 minuti!
  15. Per l'ordine pendente, chiama Normaliszedouble(price, Digits) che non funziona quando ticksize != Point

Essendo più preoccupato per #10, ho indagato prima. Stavo scrivendo una gigantesca richiesta di supporto a Molanis quando ho trovato questo:

Lo slippage utilizzato nel codice dell'EA è una variabile intera esterna (extern int).

"Prima dell'esecuzione di init() le variabili esterne avranno valori impostati dall'utente nella barra degli strumenti delle impostazioni e all'esecuzione di init() le variabili esterne avranno nuovi valori impostati dall'utente. Così i nuovi valori delle variabili esterne diventano validi dal momento di una nuova sessione (init - start - deinit) di un Expert Advisor che inizia dall'esecuzione di init()"(https://book.mql4.com/variables/types).

Quindi sembra che... mentre le variabili globali sono generalmente ignorate a favore dei vecchi valori all'esecuzione di init(), le variabili esterne sono aggiornate all'esecuzione di init(). Lo slippage rimane impostato a 3 (o qualunque sia il valore che ho impostato) non importa quante volte cambio grafico. Credo che questo sia il modo in cui l'EA è progettato per funzionare.

 
RJo:
Così sembra che... mentre le variabili globali sono generalmente ignorate in favore dei vecchi valori all'esecuzione di init(), le variabili esterne sono aggiornate all'esecuzione di init().

Lo slippage rimane impostato a 3 (o a qualsiasi cosa io abbia impostato) non importa quante volte cambio grafico. Credo che questo sia il modo in cui l'EA è progettato per funzionare.

SBAGLIATO Ti sei almeno preso la briga di LEGGERE il link che hai postato(https://book.mql4.com/variables/types) dice "Le variabili globali sono inizializzate solo una volta prima di dichiarare l'esecuzione di funzioni speciali".

Le variabili globali e statiche vengono impostate quando l'EA viene CARICATO non durante il ciclo di deinit/init.

Aggiungi una dichiarazione di stampa subito dopo lo Slippage = Slippage * 10 ed eseguilo e cambia grafico o time frame e guarda nel log se non vuoi credere alla documentazione di noi.