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?
 

Salve, questo Expert Advisor opera bene sui timeframe inferiori (0-3 minuti nelle impostazioni) quando il prezzo si muove e non c'è flat, sui timeframe superiori non apre la griglia in modo tempestivo e va in drawdown.

L'ho provato in demo, in essa è necessario inserire trawl-stop, è possibile utilizzare trawl esterno e distanza di apertura di una griglia di ordini da correggere da aggiungere nelle impostazioni, in quanto con trawl esterno opera in plus senza stop sulla distanza (senza trawl nelle impostazioni di owl si prende profitto senza stop all'ordine all'apertura non è collegato), e con piccola distanza di apertura di ordini in flat va in drawdown.

Sembra che ci sia un errore a causa dell'apertura non uniforme del numero di ordini opposti per formare un blocco e ridurre il drawdown (l'apertura degli ordini quando si rompe il livello della candela precedente e dopo una certa distanza sono cose diverse, in quanto una candela a minuti lunghi può sparare fuori e nessun ordine sarà aperto per un profitto o per un blocco), se il numero di tali ordini è appositamente non uniforme, un ingresso più preciso e l'apertura del primo ordine in base all'indicatore di tendenza con la fissazione del profitto totale e la chiusura dell'intera griglia positiva. Sarebbe auspicabile che non andasse in drawdown senza stop a causa di un'apertura più accurata degli ordini e di un'accurata verniciatura, magari aggiungendo un coefficiente di aumento e diminuzione automatica dei lotti per raggiungere rapidamente un profitto e chiudere l'intera griglia.

 
Con un profitto senza uno stop nelle impostazioni, non imposta affatto un profitto sugli ordini, cioè gli ordini non vengono chiusi la griglia cresce e alla fine va in drawdown.