Per saperne di più su altre "Strategie di trading" - pagina 3

 
luenbo:

Questo tipo di strategia si chiama martingala, è meglio usarla con unostop loss, altrimenti il tuo conto sarà rotto prima o poi.

E di solito si adatta ad un mercato di fluttuazione. Se potete combinare questastrategia con lastrategia trend following, vi darà una performance migliore.

Ma è sempre una cosa difficile da stimare se il mercato è piatto o trend~

Puoi allegare un EA che dimostri che questo è il caso?
 
Ubzen:

Descrizione: UbzenA_20130725 è un sistema che piazza trade casuali. Aggiunge ai trade negativi quando il numero di -pips supera i pips delle bollinger_bands. Lo considererei uno scalper. Include uno stoploss che usa la valuta reale di deposito $. Il take profit è anch'esso in valuta reale $. Il volume_size usa un time_passage per aumentare il volume (se il sistema è ancora negativo). Mi piace questo volume_sizing perché puoi aumentare o diminuire l'aggressività a seconda del tuo appetito.

  • -Pro: Capacità di sopravvivere a più anni di test e condizioni di mercato.
  • -Contro: Non ci si arricchisce in fretta. Richiede un capitale di investimento relativamente grande.

Non c'è nessuna ottimizzazione fatta a questo sistema. Qualsiasi suggerimento di miglioramento, positivo o negativo (basta non essere scortesi).

  • Il tuo sistema è interessante, lo guarderò più da vicino. Ovviamente il 30% di profitto in 5 anni non è molto ma è l'unico modo per controllare il drawdown.
  • Perché lo consideri uno scalper? Non è uno scalper secondo me.
  • Perché stai impostando SL=0.00001 e TP=999999999.00000 su tutti i tuoi ordini?
 
angevoyageur:
  • Il tuo sistema è interessante, lo guarderò più da vicino. Ovviamente il 30% di profitto in 5 anni non è molto, ma è l'unico modo per controllare il drawdown.
  • Perché lo consideri uno scalper? Non è uno scalper secondo me.
  • Perché stai impostando SL=0.00001 e TP=999999999.00000 su tutti i tuoi ordini?

1) Tendo a concentrarmi sui draw-down. La gente tende a riferirsi a me come un grinder. Preferisco le curve lente e costanti rispetto alle curve erratiche che oscillano in modo selvaggio. Se il draw-down è di 1500 dollari su lotti base 0,01. È più facile per me immaginare cosa accadrebbe su lotti base di 0,02.

2) Il SysTkePftVal di 5 è stato Pips con alcune versioni. Credo che in questo caso sia 5 dollari, quindi non sembra molto da scalper. Tuttavia, con il progredire dei lotti si comporterà come scalper per dimensioni maggiori.

3) Programmazione mancanza di conoscenza (credo). Quando ho iniziato mql5, continuava a darmi errori quando cercavo di inviare ordini con sl e tp di zero. Questo era il mio modo di aggirare il problema.

 
Ubzen:

1) Tendo a concentrarmi sui draw-down. La gente tende a riferirsi a me come a un grinder. Preferisco le curve lente e costanti rispetto alle curve erratiche che oscillano in modo selvaggio. Se il draw-down è di 1500 dollari su lotti base 0,01. È più facile per me immaginare cosa accadrebbe su lotti base di 0,02.

2) Il SysTkePftVal di 5 è stato Pips con alcune versioni. Immagino che in questo caso sia 5$ quindi non sembra molto da scalper. Tuttavia, con il progredire dei lotti si comporterà come scalper per dimensioni maggiori.

3) Programmazione mancanza di conoscenza (credo). Quando ho iniziato mql5, continuava a darmi errori quando cercavo di inviare ordini con sl e tp di zero. Questo era il mio modo di aggirare il problema.

So che lo stile di codifica è una preferenza personale, ma quando si pubblica il codice pubblicamente credo che sia per gli altri di leggerlo, quindi mi permetto alcuni suggerimenti/osservazioni:

  • Fare commenti
  • Principalmente se state usando nomi di funzioni criptiche (per altri) (ClsSymSetPos, YesLstTrdWin, YesLstTrdWin...)
  • Usa lo styler (CTRL+,) per organizzare il tuo codice.
  • Gli spazi tra le linee di codice sono permessi.

Cosa è più leggibile?

void SetTradePrices(ENUM_ORDER_TYPE Type,MqlTradeRequest& Trade){
    if(Type!=ORDER_TYPE_BUY && Type!=ORDER_TYPE_SELL){return;} double Price=0;
    if(Type==ORDER_TYPE_BUY){Price=SymbolInfoDouble(CurSetSymbol,SYMBOL_ASK);}
    if(Type==ORDER_TYPE_SELL){Price=SymbolInfoDouble(CurSetSymbol,SYMBOL_BID);}
    Trade.price=Price;//////////////////////////////////////////
    double  SymPoint=SymbolInfoDouble(CurSetSymbol,SYMBOL_POINT);
    if(Type==ORDER_TYPE_BUY){Trade.sl=SymPoint;  Trade.tp=999999999;}
    if(Type==ORDER_TYPE_SELL){Trade.tp=SymPoint; Trade.sl=999999999;}
}

o

void SetTradePrices(ENUM_ORDER_TYPE Type,MqlTradeRequest &Trade)
  {
   if(Type!=ORDER_TYPE_BUY && Type!=ORDER_TYPE_SELL)
      return;

   double Price=0;

   if(Type==ORDER_TYPE_BUY)
      Price=SymbolInfoDouble(CurSetSymbol,SYMBOL_ASK);

   if(Type==ORDER_TYPE_SELL)
      Price=SymbolInfoDouble(CurSetSymbol,SYMBOL_BID);

   Trade.price=Price;

   double  SymPoint=SymbolInfoDouble(CurSetSymbol,SYMBOL_POINT);

   if(Type==ORDER_TYPE_BUY)
     {
      Trade.sl=SymPoint;  Trade.tp=999999999;
     }
   if(Type==ORDER_TYPE_SELL)
     {
      Trade.tp=SymPoint; Trade.sl=999999999;
     }
  }
 

Dato che nella funzione precedente trattate solo gli ordini BUY e SELL, potete usare questa sintassi in mql5:

void SetTradePrices(ENUM_ORDER_TYPE Type,MqlTradeRequest &Trade)
  {
   if(Type!=ORDER_TYPE_BUY && Type!=ORDER_TYPE_SELL)
      return;

   double SymPoint=SymbolInfoDouble(CurSetSymbol,SYMBOL_POINT);

   Trade.price    =SymbolInfoDouble(CurSetSymbol,Type==ORDER_TYPE_SELL ? SYMBOL_BID : SYMBOL_ASK);
   Trade.sl       =Type==ORDER_TYPE_BUY  ? SymPoint : 999999999;
   Trade.tp       =Type==ORDER_TYPE_BUY  ? 999999999 : SymPoint;
  }
 
angevoyageur:

So che lo stile di codifica è una preferenza personale, ma quando pubblichi del codice pubblicamente immagino che sia per gli altri che lo leggono, quindi mi permetto alcuni suggerimenti/osservazioni:

  • Fare commenti
  • Principalmente se state usando nomi di funzioni criptiche (per altri) (ClsSymSetPos, YesLstTrdWin, YesLstTrdWin...)
  • Usa lo styler (CTRL+,) per organizzare il tuo codice.
  • Gli spazi tra le linee di codice sono permessi.

Cosa è più leggibile?

o

Grazie per i suggerimenti. Preferisco spiegare per coloro che cercano di capire il codice. Ovviamente, il mio stile è più facile da capire. Nel tuo post sopra hai usato due diversi tipi di stili di parentesi. Mi sto solo chiedendo perché?

   if(Type==ORDER_TYPE_BUY)
     {
      Trade.sl=SymPoint;  Trade.tp=999999999;
     }

vs

   if(Type==ORDER_TYPE_BUY)
      Price=SymbolInfoDouble(CurSetSymbol,SYMBOL_ASK);

Questo è il tipo di domande che dovrò affrontare. Ad alcune persone piacciono le parentesi ... alcune le odiano. Ad alcune persone piacciono i commenti riga per riga ... Io per primo lo odio. Preferisco di gran lunga vedere una descrizione nell'intestazione di ogni funzione. Nella mia mente crea molto più lavoro per qualcosa che la maggior parte delle persone non modificherebbe. Di nuovo, per chi è interessato, sono più che disposto a spiegare.

 
angevoyageur: Dato che nella funzione precedente si elaborano solo ordini BUY e SELL, è possibile utilizzare questa sintassi in mql5:
Forte, grazie.
 
Ubzen:

Grazie per i suggerimenti. Preferisco molto di più spiegare per coloro che cercano di capire il codice. Ovviamente, il mio stile è più facile da capire. Nel tuo post sopra hai usato due diversi tipi di stili di parentesi. Mi sto solo chiedendo perché?

vs

Questo è il tipo di domande che dovrò affrontare. Ad alcune persone piacciono le parentesi ... alcune le odiano. Ad alcune persone piacciono i commenti riga per riga ... Io per primo lo odio. Preferisco di gran lunga vedere una descrizione nell'intestazione di ogni funzione. Nella mia mente crea molto più lavoro per qualcosa che la maggior parte delle persone non modificherebbe. Di nuovo, per chi è interessato, sono più che disposto a spiegare.

Per il primo le parentesi sono obbligatorie perché 2 istruzioni devono essere eseguite quando la condizione è vera. Per il secondo non sono obbligatorie (1 istruzione), ma non c'è nessun problema ad aggiungere anche le parentesi ovviamente.
 
angevoyageur: Per il primo le parentesi sono obbligatorie perché 2 istruzioni devono essere eseguite quando la condizione è vera. Per il secondo non sono obbligatorie (1 istruzione), ma non c'è nessun problema ad aggiungere anche le parentesi ovviamente.

Sì, è vero. Inizio sempre con if(){;} e non devo preoccuparmene :P ... grazie ancora.

ps> gli spazi bianchi nel tuo codice mi fanno impazzire.

 

media in è sempre ok, quando si dispone di dimensione enorme lotto e vuole uscire, non ci potrebbe essere il volume per voi di uscire al prezzo u vuole.

quando le notizie rilasciano, mi chiedo se questo sistema può sopravvivere come aud in questi giorni

Documentation on MQL5: Standard Constants, Enumerations and Structures / Chart Constants / Chart Representation
Documentation on MQL5: Standard Constants, Enumerations and Structures / Chart Constants / Chart Representation
  • www.mql5.com
Standard Constants, Enumerations and Structures / Chart Constants / Chart Representation - Documentation on MQL5