Ho fatto una di queste cose una volta ... - pagina 14

 

Privaval è bannato e in qualche modo silenzioso, quindi inizierò con un messaggio per lui: Sergey, se stai leggendo questo, fammi sapere qualche volta se hai ricevuto la mia risposta alla tua email.


Nel frattempo, ho fatto uno script, segnando i livelli secondo un'altra idea - e questi livelli sembrano fantastici. Purtroppo è un po' pesante per raccogliere buone statistiche. Ma ho il sospetto che quasi tutti i sistemi di livello possono essere belli su un grafico di prezzo :)


Inoltre, mi sono preso il tempo di scrivere uno Strategy Tester Expert Advisor usando l'algoritmo descritto sopra. Tuttavia, non l'ho ancora testato perché l'ho appena finito e non mi piacciono gli Expert Advisors. Tuttavia, sembra funzionare. Ecco il codice completo in allegato per la dimostrazione.

int start() {
  if (Start) {
    Start = false;
    HalfPoint = 0.5*Point;
    DLvl = 1000*Point;
    RecDLvl = 1.0/DLvl;
    dStopLevel = StopLevel*Point;
  }

// Блок сопровождения ордеров
  double Price;
  bool IsBuyStop = false;
  bool IsSellStop = false;
  for(int ord=OrdersTotal();ord>=0;ord--) {
    if(OrderSelect(ord,SELECT_BY_POS,MODE_TRADES)==false) continue;
    switch(OrderType()) {
      case OP_BUY: 
        if (TimeCurrent()-OrderOpenTime() > LT) OrderClose(OrderTicket(),OrderLots(),Bid,5,Blue);
        break;
      case OP_SELL: 
        if (TimeCurrent()-OrderOpenTime() > LT) OrderClose(OrderTicket(),OrderLots(),Ask,5,Yellow);
        break;
      case OP_BUYSTOP: 
        IsBuyStop = true;
        Price = GetBuyStopLevel(dStopLevel);
        if (OrderOpenPrice()-Price > HalfPoint) OrderModify(OrderTicket(),NormalizeDouble(Price,Digits),0,0,0,Blue);
        break;
      case OP_SELLSTOP: 
        IsSellStop = true;
        Price = GetSellStopLevel(dStopLevel);
        if (Price-OrderOpenPrice() > HalfPoint) OrderModify(OrderTicket(),NormalizeDouble(Price,Digits),0,0,0,Yellow);
        break;
    }  //  switch(OrderType())
  }  //  for(int ord=OrdersTotal();ord>=0;ord--)
  
//  Блок установки орлеров  
  static int Mnt;
  static int PreMnt;
  Mnt = TimeMinute(TimeCurrent());
  if (Mnt != PreMnt) {
    PreMnt = Mnt;
    if (!IsBuyStop) OrderSend(Symbol(),OP_BUYSTOP,Lots(),NormalizeDouble(GetBuyStopLevel(dStopLevel),Digits),5,0,0,NULL,0,0,Blue);
    if (!IsSellStop) OrderSend(Symbol(),OP_SELLSTOP,Lots(),NormalizeDouble(GetSellStopLevel(dStopLevel),Digits),5,0,0,NULL,0,0,Yellow);
  }
  return(0);
}

Non posso andare avanti senza Prival, dovrà dire se il test è suo o no.


P.S. Expert Advisor solo per cinque cifre.

File:
 

Cambiato l'Expert Advisor, se siamo concentrati sull'inversione al livello, allora al primo approccio al livello un ordine stop non dovrebbe essere piazzato. Approssimativamente, l'EA precedente dovrebbe dare la stessa quantità di bais e sell ad ogni livello, mentre questo EA dovrebbe dare un buy in più quando si avvicina dall'alto e un sell in più quando si avvicina dall'alto e viceversa.

La pendenza della prugna per il livello 00 e il 20 ppt (cinque cifre) stopwave ha uno spread leggermente inferiore per scambio, è eurodollaro dall'estate del 2004

La dipendenza dell'equilibrio dal livello (cioè l'ottimizzazione dal parametro Delta in incrementi di 50 punti (cinque cifre)) è abbastanza coerente con i dati precedentemente ottenuti sulle intersezioni di barre di un minuto


Logicamente è ora il momento di parlare di molte cose; di scivoli, di navi, di foche , di cavoli e re, e di altri contesti e filtri. :)

 

cercare di introdurre degli stop e separare le strategie di breakout e di rimbalzo in base al tempo/volatilità.

 

Il numero di varianti possibili è molto grande, ed è per questo che ha senso indagare collettivamente. È chiaro che è necessario variare il codice, cioè, senza alcune competenze iniziali in mql sarà difficile da fare. L'importante è che i risultati e il modo in cui sono ottenuti siano utili solo se vengono pubblicati. Beh, ok, il graal può essere proibito :), ma certamente la gente dovrebbe conoscere i risultati negativi.


Si ferma per entrare - è un inserimento abbastanza standard nel codice. Ma secondo me, se non è una lontana "assicurazione" si ferma allora non darà nulla se non un altro modo di adattarsi.


È molto facile fare una strategia di breakout come se lo fosse - basta disabilitare gli ordini di impostazione se c'è qualche ordine della stessa direzione (non solo in sospeso) e impostare uno stop sufficientemente grande (paragonabile alla distanza tra i livelli). Ma fare un rimbalzo corretto solo da quello schema semplice e bello non era così facile per me. Nell'idea, dovremmo cronometrare il fatto del passaggio di livello e piazzare un ordine solo dopo che è avvenuto. La sottigliezza è che questo fatto non può essere registrato per il livello più vicino in modo standard - dopo tutto, il livello più vicino rimbalza nel momento in cui viene attraversato. Può durare fino a tre tick se il livello medio è esattamente sul livello. Ecco perché i risultati del post precedente sono stati ottenuti utilizzando l'Expert Advisor notevolmente modificato. Non l'ho postato qui perché è stato suggerito per Codobase (come capire altrimenti il livello di interesse reale in questo argomento :)).


I filtri temporali sono considerati uno dei più efficaci e di solito abbastanza semplici da implementare, sarebbe interessante vedere i risultati. Sei il benvenuto a mandarmi un messaggio :)


Naturalmente i filtri di volatilità sono anche di grande interesse, ma ci sono ancora più varianti di costruzione, abbiamo bisogno di varianti e risultati specifici per loro.

 
Qui potete trovare un esperto.
 

È stata trovata un'imprecisione in LevelsTrade_1.mq4 che porta all'asimmetria di una compravendita. Qui abbiamo bisogno di sostituire una linea in questa funzione:

double GetSellStopLevel(double StopLvl) {
  int ILvl = (Bid+HalfPoint)*RecDLvl;
  double DownLvl = DLvl*ILvl;
//  if (DownLvl > Bid-StopLvl-HalfPoint) DownLvl -= DLvl ;
  if (Bid-StopLvl < DownLvl-HalfPoint) DownLvl -= DLvl ;
  return (DownLvl);
}

La linea sbagliata è commentata qui. La versione corretta è allegata al post.

File:
 
Balbesik06:



Candido!

Ti ho visto e mi rivolgo a te.

Domanda fuori tema.

Vuoi tornare a Zig-Zag?

Ti ho scritto in "privato", non c'è stata risposta.

E sull'EA (discutere o meno), ho statistiche (sul mio) 7(+) - 1(-), ma l'EA di un altro autore.

E ci sono molte domande.

Se lo controlli (in privato) e le statistiche sono confermate, allora correggi Zig-Zag per me secondo il tuo schema.

E l'algoritmo (per Expert Advisor) ha il diritto di postare più tardi.

Ti piace?

Sinceramente.

 
Balbesik06:

...

Ti ho scritto nella linea "privata" e non c'è stata risposta.

Non ho sentito nulla in privato, prova di nuovo. Come ultima risorsa puoi mandarmi un'email, il mio profilo ha l'indirizzo della mia pagina, è facile trovare la mia email lì.
 
Balbesik06:

"... Come minimo, puoi mandare un'e-mail"...

Sì prova - oltre il soggetto.

Il punto è semplice - dimostrato su ONIX tutti "volano via" tranne il tuo.

Non vedo il senso di nessun sevetnik se "non tiene" le virgolette.

Saluti.


P.S. Prova (se non è troppo difficile) a scrivere - Ciao.
 

Hmm, ho controllato la casella di posta Onyx (e ci guardo raramente), è vuota. E i problemi con la posta sono abbastanza misteriosi.

Eugene, mettiamola così: controlla il tuo account personale su questo forum, ci dovrebbe essere un messaggio da parte mia dall'altro ieri. Basta rispondere, descrivere il problema o dare un link alla sua descrizione, scrivere ciò di cui avete bisogno esattamente.

Per quanto ho capito, c'è un problema con i vertici appesi di diversi Zigzag. Il mio non ha questo problema. Mi ricordo, quando ho scritto che lo zigzag (molto probabilmente era CZZ) il problema dei vertici appesi era quasi universale. Ho cercato di capirne la causa e credo di esserci riuscito. Ma è passata molta acqua da allora, e credo che ora anche molti zigzag non si congelino più.

In ogni caso, non è chiaro di cosa hai bisogno esattamente? Per me rifare tutti gli zigzag inclusi nello ZUP?