Buy stop Sell stop Grid advisor come classe - pagina 3

 
Vladimir Karputov:

Versione 1.003:

  • ora chiude TUTTE le posizioni opposte quando viene aperta una posizione.
  • l'acquisizione del prezzo corrente è stata spostata all'interno delle funzioni PlacesBuy e PlacesSell per proteggersi da gap e slittamenti.
  • InOnTradeTransaction gli ordini pendenti sono piazzati in un ciclo while - per dire, stiamo battendo il server sul tempo :) - Non è la soluzione migliore, ma rimarrà per ora.

In realtà, ora possiamo pensare:

  1. Qual è il modo migliore per aumentare le posizioni (calcolo del volume dei lotti)?
  2. Cosa fare con le posizioni opposte


  1. Come aumentare al meglio la posizione (calcolo del volume del lotto) - in nessun modo, aggiungendo lotti, questa è una piramide, questo è diverso, il lotto dovrebbe rimanere costante.
  2. Cosa fare con le posizioni opposte - Chiudere così com'è.
 

Raccomando di aggiungere questo indicatore al template "tester.tpl":LifeHack Balance Equity, poi il tester mostrerà immediatamente i cambiamenti nel saldo e nei fondi. All'incirca così:

LifeHack Equity Balance nel tester


 
Vladimir Karputov:

Feito. Conecte o Vault, atualize os arquivos do projeto do Vault.



Ciao Vladimir, puoi aggiungermi per favore? Grazie mille.

 
Cid Ougaske:


Ciao Vladimir, puoi aggiungermi per favore? Grazie mille.


Fatto, aggiunto.

Il piano è di fare statistiche come questa: quante posizioni di una direzione sono aperte in una fila prima del flip.

Per esempio: #1 Buy, #2 Buy, #3Buy e #1Sell -> chiudere tutte le posizioni Buy. Quindi le statistiche saranno: tre posizioni.

 
Vladimir Karputov:

... collegare il modello e passare i parametri di input alla classe EA



Fatto, collegato.

A volte ci sono troppi parametri. Ultimamente sono diventato pigro, lo faccio in questo modo perché non ho bisogno di preoccuparmi di passare parametri all'EA. Quali sono gli svantaggi?

input double LotSize = 0.1;
input int    SL      = 500;
input int    TP      = 300;
//другие входные переменные

#include <AvLib\ClassEA.mqh> // тут лежит класс советника

CClassEA MyEA;
 

Vladimir, puoi collegarmi, per favore?

 

Mentre l'Expert Advisor lavora, i dati vengono scritti nell'array in OnTradeTransaction. Il formato di registrazione è il seguente: se viene aperta una posizione Buy, registriamo "+1"; se viene aperta una posizione Sell, registriamo "-1".

Per esempio:

  • Compra - registriamo "+1".
  • Compra - registriamo "+1".
  • Compra - registriamo "+1".
  • Vendere - registriamo "-1".

Quando il test è completato, i dati dell'array vengono elaborati in OnTester e scritti nel file csv. Il file viene creato inuna cartella condivisa da tutti i terminali client \Terminal\common\Files. Il nome del file è formato in questo modo:

   string file_name="Direction_of_trades"+"_"+m_symbol.Name()+"_"+IntegerToString(StepGrid());

allora l'estensione "csv" viene aggiunta al nome del file:

   int filehandle=FileOpen(file_name+".csv",FILE_WRITE|FILE_CSV|FILE_COMMON);

Algoritmo di elaborazione delle matrici: se il record attuale è la stessa direzione di quello precedente (corrisponde all'apertura di più posizioni di una direzione in una fila) - allora aumentiamo il contatore di uno, se il record attuale è opposto a quello precedente (corrisponde all'inversione della direzione della posizione) - allora gli assegniamo il valore "1" del contatore.

Il file csv risultante è facile da elaborare in Excel:

passo uno: cliccate con il tasto sinistro del mouse sulla colonna con i dati

cliccare con il tasto sinistro del mouse su

passo due: inserire il grafico raccomandato

inserire tabella raccomandata


Queste sono le statistiche (per il passo "35" e il passo "65"):

direzione_dei_trade_EURUSD_35_65

 
Alexey Volchanskiy:

Vladimir, puoi collegarmi, per favore?


Fatto. Aggiunto (non ho visto subito il post, l'ho perso).

 

L'elenco attuale degli utenti collegati al progetto:

Utenti collegati al progetto

 

Per il passo 35, totali estesi:

Direzione_dei_trade_EURUSD_35

Qui possiamo vedere che

  • praticamente il 50% di tutti i casi sono quando la lunghezza degli scambi ininterrotti è uguale a "1". Così abbiamo situazioni del seguente tipo: abbiamo aperto Buy e poi invertito la posizione (cioè chiuso Buy con una perdita e aperto Sell) o questa situazione: abbiamo aperto Sell e poi invertito la posizione (cioè chiuso Sell con una perdita e aperto Buy). Così le situazioni con scambi ininterrotti di lunghezza "1" sono una perdita garantita.
  • Circa il 25% di tutti i casi con la lunghezza dei trade ininterrotti pari a "2", con il seguente esempio: abbiamo aperto Buy, poi aperto un altro Buy e invertito la posizione (cioè chiuso due Buy e aperto Sell - con conseguente perdita pari a zero).

Penso che queste categorie più numerose (lunghezza delle transazioni ininterrotte pari a "1" e "2") debbano essere considerate più in dettaglio per correggere la strategia di collocamento degli ordini pendenti Stop.