Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Sistemi Esperti

Strategia di trading Testa o Croce (Heads or Tails) - sistema esperto per MetaTrader 4

Visualizzazioni:
20
Valutazioni:
(1)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

La strategia di trading "Testa o Croce" appartiene alla categoria degli approcci di trading a breve termine ad alto rischio, utilizzati principalmente nel mercato azionario e nel mercato Forex. Il suo nome deriva dalla casualità delle decisioni, simile al lancio di una moneta ("testa" - comprare l'attività, "croce" - vendere). Questa strategia si basa esclusivamente su decisioni intuitive o segnali casuali e ignora i fattori fondamentali dell'analisi di mercato.

Come funziona la strategia?

La strategia è costruita come segue:

  1. Scelta dello strumento: il trader seleziona uno strumento finanziario (azione, valuta, merce).
  2. Presa della decisione: la decisione di comprare o vendere è presa casualmente, ad esempio lanciando una moneta o con un altro metodo che sceglie tra due opzioni di azione.
  3. Chiusura dell'operazione: l'operazione è chiusa automaticamente dopo un tempo prestabilito o al raggiungimento di un certo livello di profitto o perdita.

Questa strategia non richiede una profonda comprensione dei meccanismi di mercato e dell'analisi, ma allo stesso tempo non presuppone un approccio serio alla gestione del rischio.

Svantaggi della strategia:

  1. Alto livello di rischio:
    • Affidandosi solo alla fortuna, la probabilità di perdite aumenta significativamente. La strategia ignora qualsiasi indicatore oggettivo e raccomandazione, aumentando le possibilità di perdita di capitale.
  2. Mancanza di controllo sul rischio:
    • Poiché l'acquisto o la vendita avvengono in modo assolutamente casuale, non c'è possibilità di una gestione razionale del capitale, di una valutazione dei rischi e di un'allocazione delle attività.
  3. Impossibilità di successo a lungo termine:
    • Anche se singole operazioni risultano redditizie grazie alla fortuna, sul lungo periodo una tale strategia probabilmente porterà a perdite significative.
  4. Risultati non duraturi:
    • Risultati positivi sono possibili solo in condizioni di congiuntura di mercato favorevole e con un gran numero di piccole operazioni di successo, cosa estremamente rara nella pratica.

Applicazione della strategia:

La strategia è più adatta ai trader principianti che vogliono familiarizzare con i principi di funzionamento delle piattaforme di trading e provare il trading senza una profonda conoscenza dell'analisi tecnica. Tuttavia, i professionisti utilizzano questa strategia molto raramente, preferendo approcci scientificamente fondati che tengano conto del comportamento del prezzo, del volume degli scambi e degli indicatori fondamentali delle aziende.

Per gli investitori esperti, questa strategia rappresenta più un metodo sperimentale per testare ipotesi, piuttosto che un modo stabile di guadagnare.

Pertanto, sebbene la strategia sia semplice e accessibile a ogni principiante, comporta rischi significativi e praticamente non ha possibilità di generare reddito sostenibile nel lungo periodo.


Consideriamo il blocco principale del segnale di apertura casuale delle posizioni:

if((b + s) == 0) // Se non ci sono posizioni aperte

Qui viene verificata la condizione di assenza di posizioni aperte. La variabile b indica il numero di posizioni lunghe ("buy"), la variabile s indica quelle corte ("sell"). Se la somma di entrambe è zero (b + s = 0), significa che non c'è nessuna posizione aperta.

if(::MathRand() % 2 == 0) // Scelta casuale della direzione di apertura della posizione

All'interno della condizione di attivazione del blocco precedente, viene verificato un numero casuale. La funzione ::MathRand() genera un numero pseudo-casuale da 0 a 32767 incluso. Poi questo numero viene diviso per modulo per 2 (% 2) — se il resto è uguale a 0, viene eseguito il blocco successivo.

 // Inviare un ordine di acquisto con i parametri specificati
         ticket = OrderSend(Symbol(),OP_BUY,iStartLots,Ask,iSlippage,
                  Ask - iStopLoss * _Point,       // Prezzo dello stop loss (valore corrente Ask meno la distanza SL)
                  Ask + iTakeProfit * _Point,     // Prezzo del take profit (valore corrente Ask più la distanza fino a TP)
                  "VR Heads or Tails",            // Commento all'ordine
                  iMagicNumber,0,clrBlue);        // MagicNumber, scadenza, colore blu della freccia
                  
         // Controllare se l'ordine è stato piazzato con successo
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Messaggio di errore
         else
            Print("The OrderSend function has been completed successfully");  // Messaggio di successo
return;

Se il numero casuale è pari (il resto della divisione per 2 è uguale a 0), l'expert advisor apre una posizione lunga (acquisto) con un volume di iLots. Dopo l'apertura con successo della posizione, l'esecuzione della funzione viene interrotta dall'operatore return.

 // Inviare un ordine di vendita con i parametri specificati
         ticket = OrderSend(Symbol(),OP_SELL,iStartLots,Bid,iSlippage,
                  Bid + iStopLoss * _Point,       // Prezzo dello stop loss (valore corrente Bid più la distanza SL)
                  Bid - iTakeProfit * _Point,     // Prezzo del take profit (valore corrente Bid meno la distanza fino a TP)
                  "VR Heads or Tails",            // Commento all'ordine
                  iMagicNumber,0,clrRed);         // MagicNumber, scadenza, colore rosso della freccia
                  
         // Controllare se l'ordine è stato piazzato con successo
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Messaggio di errore
         else
            Print("The OrderSend function has been completed successfully");  // Messaggio di successo
return;

Se il numero casuale era dispari (il resto della divisione per 2 era diverso da zero), viene aperta una posizione corta (vendita) con un volume di iLots, e anche in questo caso l'esecuzione successiva della funzione viene interrotta.

Logica finale del funzionamento del frammento:

  • Viene verificata la presenza di posizioni aperte del trader.
  • Se non ci sono posizioni aperte, viene scelta una direzione casuale dell'operazione: o acquisto (long), o vendita (short).
  • L'operazione aperta interrompe automaticamente l'ulteriore lavoro della funzione.

Pertanto, questo codice rappresenta l'esempio più semplice di un algoritmo che prende la decisione di aprire una posizione sul mercato in modo casuale.

Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/68251

RatioZigZag RatioZigZag

A modification of the ZigZag indicator, where the reversal moment is determined by a specified coefficient.

MT4 Telegram Trade Notifier (Bot API) — Deal Alerts MT4 Telegram Trade Notifier (Bot API) — Deal Alerts

Utility MT4 EA that sends BUY/SELL deal notifications to Telegram via Bot API (WebRequest)

VR Locker Lite - Strategia di trading basata su un blocco positivo VR Locker Lite - Strategia di trading basata su un blocco positivo

Funziona utilizzando un blocco positivo; il robot di trading crea un blocco positivo e il trader decide autonomamente cosa farne.

Period Converter Optimized Period Converter Optimized

Improved period converter support real-time refreshing, low CPU cost and other features.