Aiuto per la codifica - pagina 781

 
Per favore, sarai disposto ad aiutare?

Ho questo indicatore che dovrebbe aggiornare alcuni valori alla chiusura della candela, ma non risponde abbastanza presto, di solito 20-40 secondi dopo la chiusura della candela Molte volte devo ricaricare il grafico

Puoi aiutare a risolvere questo problema?
File:
 
Savior: Si suppone che l'aggiornamento di alcuni valori avvenga alla chiusura della candela,

Non esiste una cosa del genere. Una candela è considerata chiusa, quando un nuovo tick arriva dopo l'ultimo secondo della candela corrente iniziando una nuova candela.

Ci possono essere minuti tra i tick durante la sessione asiatica, pensate al grafico M1. Grafici più grandi, pensate al fine settimana, alle vacanze di mercato (specifiche del paese e del broker) richiedono la conoscenza di quando il vostro broker si ferma e inizia (non necessariamente lo stesso del mercato).
Grafici "Free-of-Holes" - Articoli MQL420 giugno 2006
Nessuna candela se open = close ? -Forum di programmazione MQL42010.06.06

Il codice viene eseguito una volta al secondo su un timer e si aggiorna quando un simbolo inizia una nuova barra. Niente di sbagliato.

 

Ciao a tutti.

Ho impostato alcuni EA decenti usando EA Builder, ma sto lottando per impostarne uno usando i frattali.

Dato che i frattali appaiono come punto medio in serie di 5 candele, mi aspetto di ottenere lo 'shift' e l'indice non corretti.

Sto cercando di creare un semplice long (una volta che ho capito lo shift/index sarei in grado di aumentare i parametri)

Aperto, Frattale, Time Frame (corrente), Indicatore (superiore) Shift (3) 'è sopra' Candela, Indice (3), Valore (basso)

L'idea è che il frattale è al di sotto di una candela bassa, pronto a iniziare la tendenza verso l'alto... rendendosi conto che le due candele più attuali avrebbero alti più alti, vorrei usare questo come limite di acquisto su pullback non sotto frattale

Apprezzo molto l'assistenza! grazie, david

 
  1. David-Toronto: Apprezzo molto l'assistenza! grazie, david
    Aiutarti con cosa? Non hai indicato un problema, non hai nemmeno indicato un desiderio?

  2. David-Toronto : Impostare alcuni EA decenti usando EA Builder
    EA builder, EATree, Etasoft forex generator, Forex Strategy Builder, FOREXEADVISOR STRATEGY BUILDER, FX EABuilder, fxDreema, FxPro, Molanis, Online Forex Expert Advisor Generator, Strategy Builder FX, Strategy Quant, Visual Trader Studio, MQL5 Wizard, etc., sono tutti uguali. Otterrete qualcosa di veloce, ma poi passerete molto più tempo a cercare di farlo bene, che se aveste imparato il linguaggio in anticipo, e poi semplicemente scritto.
    1. Dato che non hai imparato MQL4/5, non c'è un linguaggio comune per comunicare.
      Se vi diciamo cosa vi serve, non potete codificarlo.
      Se vi diamo il codice, non sapete come integrarlo nel vostro.
      Siamo disposti ad AIUTARVI quando postate il vostro tentativo (usando SRC) e la natura del vostro problema, ma non abbiamo intenzione di fare il debug del vostro centinaia di righe di codice. Sarete essenzialmente da soli.

    2. EA builder fa un cattivo codice che conta mentre chiude ordini multipli.
      Il costruttore di EA fa un cattivo codice Le barre sono inaffidabili (barre massime nel grafico), il volume è inaffidabile (mancano i tick.) Usa sempre il tempo.
      Il costruttore di EA fa un cattivo codice, non regolando per broker a 4/5 cifre, TP/SL e slippage.
      Il costruttore di EA fa un cattivo codice, non regolando i broker ECN. pre-Build 500)
      Il costruttore di EA fa un cattivo codice, non
      controllando i codici di ritorno.

    3. EATree usa oggetti sul grafico per salvare i valori - non la memorizzazione persistente(file o GV+Flush.) Nessun recupero (crash/interruzione di corrente).

    4. FX EA Builder fa del cattivo codice, non controllando i codici di ritorno.
      FX EA Builder fa un cattivo codice, perdendo i ticket aperti al riavvio del terminale. Nessun recupero (crash/interruzione di corrente).
      FX EA Builder fa un cattivo codice, non regolando gli stop per lo spread.
      FX EA Builder fa del cattivo codice, usando OrdersTotal direttamente.

    5. FOREXEADVISOR STRATEGY BUILDER fa un cattivo codice, non aggiornando le variabili globali.
      FOREXEADVISOR STRATEGY BUILDER fa del cattivo codice, errori di compilazione.
      FOREXEADVISOR STRATEGY BUILDER fa del cattivo codice, non controllando i codici di ritorno.

    Imparateacodificarlo, o pagate qualcuno (Freelance) che lo codifichi.
    Assumere per scrivere script - Generale - Forum di programmazione MQL5

 
William Roeder:
  1. Aiutarti in cosa? Non hai espresso un problema, non hai nemmeno espresso un desiderio?

  2. Costruttore di EA, EATree, Etasoft forex generator, Forex Strategy Builder, FOREXEADVISOR STRATEGY BUILDER, FX EABuilder, fxDreema, FxPro, Molanis, Online Forex Expert Advisor Generator, Strategy Builder FX, Strategy Quant, Visual Trader Studio, MQL5 Wizard, ecc., sono tutti uguali. Otterrete qualcosa di veloce, ma poi passerete molto più tempo a cercare di farlo bene, che se aveste imparato il linguaggio in anticipo, e poi semplicemente scritto.
    1. Dato che non hai imparato MQL4/5, non c'è un linguaggio comune per comunicare.
      Se ti diciamo quello che ti serve, non puoi codificarlo.
      Se vi diamo il codice, non sapete come integrarlo nel vostro.
      Siamo disposti ad AIUTARVI quando postate il vostro tentativo (usando SRC) e la natura del vostro problema, ma non abbiamo intenzione di fare il debug del vostro centinaia di righe di codice. Sarete essenzialmente da soli.

    2. EA builder fa un cattivo codice che conta mentre chiude ordini multipli.
      Il costruttore di EA fa un cattivo codice Le barre sono inaffidabili (barre massime nel grafico), il volume è inaffidabile (mancano i tick.) Usa sempre il tempo.
      Il costruttore di EA fa un cattivo codice, non regolando per broker a 4/5 cifre, TP/SL e slippage.
      Il costruttore di EA fa un cattivo codice, non regolando i broker ECN. pre-Build 500)
      Il costruttore di EA fa un cattivo codice, non
      controllando i codici di ritorno.

    3. EATree usa oggetti sul grafico per salvare i valori - non la memorizzazione persistente(file o GV+Flush).

    4. FX EA Builder fa del cattivo codice, non controllando i codici di ritorno.
      FX EA Builder fa un cattivo codice, perdendo i ticket aperti al riavvio del terminale. Nessun recupero (crash/interruzione di corrente).
      FX EA Builder fa un cattivo codice, non regolando gli stop per lo spread.
      FX EA Builder fa cattivo codice, usando OrdersTotal direttamente.

    5. FOREXEADVISOR STRATEGY BUILDER fa un cattivo codice, non aggiornando le variabili globali.
      FOREXEADVISOR STRATEGY BUILDER fa del cattivo codice, errori di compilazione.
      FOREXEADVISOR STRATEGY BUILDER fa del cattivo codice, non controllando i codici di ritorno.

    Imparateacodificarlo, o pagate qualcuno (Freelance) che lo codifichi.
    Assumere per scrivere script - Generale - Forum di programmazione MQL5

Grazie William, ma non sono ancora pronto a codificare e non ho bisogno di un mattone in testa.

A qualcuno che ha iniziato o usato EA Builder, si prega di rispondere solo se si può assistere. grazie


La domanda è come aprire un trade lungo (usando EA Builder) per il frattale che si verifica sopra la candela.

Il mio tentativo sta dando ordini di acquisto che si verificano dopo qualsiasi evento frattale (sopra o sotto la candela).

usando: Frattale, Time Frame (corrente), Indicatore (superiore) Shift (3) 'è sopra' Candela, Indice (3), Valore (basso)

 

Buon pomeriggio

Sono abbastanza nuovo nella codifica e vorrei un po' di assistenza su un indicatore che sto cercando di codificare. In pratica sto creando il mio MA una banda dei valori di apertura e chiusura delle barre a seconda di dove si trova, cioè se l'apertura è superiore alla chiusura, viene salvata nell'array superiore, altrimenti viene salvata nell'array inferiore. Ho fatto un discreto lavoro di risoluzione dei problemi su un EA che ho scritto, ma non riesco ad ottenere lo stesso risultato sull'indicatore, purtroppo.

File:
MA_Band.mq4  5 kb
 
  1. PLZFrosty: ma non posso ottenere lo stesso risultato sull'indicatore,

    "Non funziona" non ha senso - proprio come dire che la macchina non funziona. Non parte, non va in marcia, niente elettricità, manca la chiave, gomme sgonfie - senza senso. Ti aspetti davvero una risposta? Qui non ci sono lettori del pensiero e le nostre sfere di cristallo sono incrinate. Non hai indicato un problema.

  2.       SetIndexBuffer(0, MA_top);
          ⋮
          SetIndexBuffer(1, MA_bot);
    
    Quanti buffer hai dichiarato che il tuo indicatore ha? Se avessi controllato i tuoi codici di ritorno, avresti saputo perché.
    Proprietà del programma (#property) - Preprocessore - Basi del linguaggio - Riferimento MQL4
 
William Roeder:
  1. "Non funziona" non ha senso - proprio come dire che la macchina non funziona. Non parte, non va in marcia, niente elettricità, manca la chiave, gomme sgonfie - senza senso. Ti aspetti davvero una risposta? Qui non ci sono lettori del pensiero e le nostre sfere di cristallo sono incrinate. Non hai dichiarato un problema.

  2. Quanti buffer hai dichiarato che il tuo indicatore ha? Se aveste controllato i vostri codici di ritorno, avreste saputo il perché.
    Proprietà del programma (#property) - Preprocessore - Fondamenti del linguaggio - MQL4 Reference

So cosa dovrebbe fare, ma non so come scoprire perché non funziona. Ho usato la funzione Comment per capire dove smette di funzionare e ho scoperto che si ferma nel punto in cui dovrebbe mettere i valori negli array menzionati. Sto chiedendo una guida per la risoluzione dei problemi, non qualcuno che li sistemi per me. Dirmi cosa mi è sfuggito o cosa ho fatto di sbagliato e dove leggere per la soluzione mi aiuterà molto. Grazie per il link. Almeno uno dei miei problemi è risolto. C'è un modo più efficiente che usare Comment() per risolvere i problemi dove il codice ha bombardato?

Documentation on MQL5: Common Functions / Comment
Documentation on MQL5: Common Functions / Comment
  • www.mql5.com
[in]   Any values, separated by commas. To delimit output information into several lines, a line break symbol "\n" or "\r\n" is used. Number of parameters cannot exceed 64. Total length of the input comment (including invisible symbols) cannot exceed 2045 characters (excess symbols will be cut out during output). Data of double type are output...
 
PLZFrosty:

So cosa dovrebbe fare, ma non so come scoprire perché non funziona. Ho usato la funzione Comment per capire dove smette di funzionare e ho scoperto che si ferma nel punto in cui dovrebbe mettere i valori negli array menzionati. Sto chiedendo una guida per la risoluzione dei problemi, non qualcuno che li sistemi per me. Dirmi cosa mi è sfuggito o cosa ho fatto di sbagliato e dove leggere per la soluzione mi aiuterà molto. Grazie per il link. Almeno uno dei miei problemi è risolto. C'è un modo più efficiente che usare Comment() per risolvere i problemi dove il codice ha bombardato?

In qualche modo sono riuscito a farlo funzionare, ma non ho idea del perché funzioni e non il contrario. Ho visto un piccolo errore nel mio ragionamento e ho riscritto la mia funzione. Non mi mostra ancora i valori del mio array quando uso Comment(DoubleToString(array[1], 3); ma almeno disegna la linea MA. C'è un modo in cui posso vedere i valori del mio array oltre ad usare Comment()?
 
input int SmallEMA = 50;
input int BigEMA = 100;
void OnTick()
  {
   string signal = "";
   double SmallMovingAvarage1 = iMA(Symbol(),PERIOD_CURRENT,SmallEMA,0,MODE_EMA,PRICE_CLOSE,0);
   double BigMovingAvarage1   = iMA(Symbol(),PERIOD_CURRENT,BigEMA,0,MODE_EMA,PRICE_CLOSE,0);
   
   if (BigMovingAvarage1 > SmallMovingAvarage1)
   
   {
   
      signal = "sell";
   }
   
   if (BigMovingAvarage1 < SmallMovingAvarage1)
    
   {
      signal = "buy";
   }
   
   
 
   if (signal == "sell" &&   OrdersTotal() == 0 )
   
   OrderSend(Symbol(),OP_SELL,0.02,Bid,10,0,0,NULL,0,0);
   
    
   
   if ( signal == "buy" && OrdersTotal() == 1)
   
   CloseSellPositions();
  
   
   
   if (signal == "buy" &&  OrdersTotal() == 0  )
   
    OrderSend(Symbol(),OP_BUY,0.02,Ask,10,0,0,NULL,0,0);
   
   //if (signal == "sell" && 0 <= OrdersTotal() <= 1)
   
   if (signal == "sell" && OrdersTotal() == 0)
   
   CloseBuyPositions();
    
   
   Comment ("The current signal is: ",signal);
   
   
  }


void CloseBuyPositions()
   {
   
   for(int i = OrdersTotal() -1 ; i >= 1; i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
      string CurrencyPair = OrderSymbol();
      
      if(Symbol() == CurrencyPair)
      
      if (OrderType () == OP_BUY)
      {
         
         OrderClose(OrderTicket(),0.02,Bid,10);
      }
   }
   
   
   }
void CloseSellPositions()
   {
   
   for(int i = OrdersTotal()- 1; i >= 1; i--)
   {
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
      string CurrencyPair = OrderSymbol();
      
      if(Symbol() == CurrencyPair)
      
      if (OrderType () == OP_SELL)
      {
         OrderClose(OrderTicket(),0.02,Ask,10);
      }
    }
   } 

Ciao,


EMA (1) = 50

EMA (2) = 100


se (50 <100)

Chiudi l'eventuale posizione di acquisto aperta e apri una posizione di vendita


se (50>100)


Chiudere l'eventuale posizione di vendita aperta e aprire posizioni di acquisto.


Voglio sviluppare un consulente specializzato che soddisfi queste condizioni, ho condiviso il codice che ho scritto. Ma non funziona come voglio.


Potete aiutarmi a completare le parti mancanti nel mio codice?