Sistemi Esperti: VR Breakdown level - Strategia di trading basata sulla rottura del massimo o minimo precedente

 

VR Breakdown level - Strategia di trading basata sulla rottura del massimo o minimo precedente:

Strategia di trading basata sulla semplice rottura dei precedenti livelli di massimo o minimo

VR Breakdown level - Strategia di trading basata sulla rottura del massimo o minimo precedente

Autore: Vladimir Pastushak

 

C'è molto rumore e il codice è strano in alcuni punti.

Ad esempio, la parte di verifica dei lotti.

// Ottenere il passo di lotto minimo per il simbolo
  double stepvol = ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
  if(stepvol > 0)
    // Calcolo della dimensione del lotto, arrotondata al passo valido più vicino.
    lt = stepvol * (int)(iLots / stepvol);
// Verifica se il lotto calcolato è inferiore al lotto minimo consentito
  if(lt < ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN))
    lt = 0.0;  // Impostare a 0 se inferiore al minimo (non valido)
// Restituzione di un'inizializzazione riuscita
  return(INIT_SUCCEEDED);
}

Abbiamo il lotto 0.0

Poi andiamo su OnTick() e apriamo una posizione con il lotto "0.0".

if(trade.Buy(lt))

Si tratta di un approccio interessante, credo che il trading sarà redditizio.

--

Non c'è un semplice controllo dei fondi sufficienti, senza questo controllo l'EA fa paura anche nel tester, per non parlare della modalità demo.

--

Non capisco l'intento, perché un tale approccio, per renderlo diverso "come tutti gli altri e dappertutto" --

  if(new_time != old_time)
    // Aggiornare old_time e restituire true (nuova barra rilevata)
    if((old_time = new_time) != NULL)
      return(true);

--

Il controllo dell'ordine di TP e SL è implementato in modo errato - se fallisce, la posizione viene lasciata a caso con valori pari a zero.



 
Vitaly Muzichenko #:

Molto rumore e il codice è un po' strano in alcuni punti.

Per esempio, la parte di verifica del lotto

Abbiamo il lotto 0.0

Quindi passiamo a OnTick() e apriamo una posizione con il lotto "0.0".

Un approccio interessante, probabilmente redditizio per il trading.

--

Manca un semplice controllo dei fondi sufficienti, senza il quale l'EA non può essere eseguito nemmeno nel tester, per non parlare della modalità demo.

--

Non capisco l'intento, perché un tale approccio, per renderlo diverso "come tutti gli altri e ovunque".

--

Il controllo dell'ordine di TP e SL è implementato in modo errato: se fallisce, la posizione viene lasciata a caso con valori pari a zero.

Una parte del codice è stata realizzata utilizzando gli aiuti, cioè non ho scritto i miei codici, ma li ho presi da fonti esterne, in modo che i programmatori principianti possano vedere il codice familiare.

Così il codice è più corto di una riga, è più comodo e familiare per me, e in più i principianti vedranno le possibilità aggiuntive del linguaggio.

if(new_time != old_time)
    // Aggiornare old_time e restituire true (nuova barra rilevata)
    if((old_time = new_time) != NULL)
      return(true);

и

if(new_time != old_time)
    // Aggiornare old_time e restituire true (nuova barra rilevata)
      {
       old_time = new_time;
       return(true);
      }
 
Vitaly Muzichenko #:

Il controllo per l'impostazione degli ordini TP e SL è implementato in modo errato: in caso di fallimento la posizione viene lasciata a caso con valori pari a zero.

Cosa si dovrebbe fare in questo caso?

La mia visione è quella di impostare TP e SL in ogni caso, se riceviamo un errore che la distanza è inferiore al minimo consentito = impostare il minimo consentito.

Nella forma attuale, l 'ordine non viene impostato e la posizione rimane abbandonata a caso.

 
Salve, ho visto un post in cui si dice che nella versione MT4 dell'EA il codice è stato corretto, ma nella versione MT5 il codice è stato corretto?