Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1852

 
Mihail Matkovskij #:

Ma aumenta il rischio. Così fa Martin, così fa la media e altre strategie simili. Anche se tutto può essere usato saggiamente da coloro che lo capiscono.

Al contrario, riduce il rischio. Qui dobbiamo scegliere il giusto asset di copertura e possiamo dormire bene. Ma con la media il sonno è spesso disturbato.

 
Mihail Matkovskij #:

Dipende da quale lotto con quale profitto... Penso che sia meglio ordinare le posizioni per profitto. E chiudete prima i più grassi!

Dipende da cosa :-) per disegnare una bella curva nei segnali e per tagliare il "fattore di recupero" allo stesso modo...

 
Vitaly Muzichenko #:

Al contrario, riduce il rischio. Qui è necessario scegliere l'attività di copertura giusta in modo approssimativo e si può dormire bene. Ma con la media, il sonno è spesso disturbato.

Oh... quindi hai bisogno di una risorsa aggiuntiva per questo? Interessante... Sembra una diversificazione del rischio/perdita...

Ho sempre pensato che l'hedging riguardasse posizioni opposte sullo stesso strumento.

 
Mihail Matkovskij #:

Ah... quindi hai bisogno di una risorsa aggiuntiva per questo? Interessante... Sembra una diversificazione del rischio/perdita...

Ho sempre pensato che l'hedging riguardasse posizioni opposte sullo stesso strumento.

Si dice locking, dalla parola lock.

 
Tretyakov Rostyslav #:
Controllare

Buongiorno Rostislav!!!

Potresti commentare i cambiamenti di ieri, non riesco a capire la loro logica

//-------------------------------------------------------------------+
   Spread       = MarketInfo(Symbol(),MODE_SPREAD)*Point;
   MinLot       = MarketInfo(Symbol(),MODE_MINLOT);
   Balance      = AccountInfoDouble(ACCOUNT_BALANCE);
   FreeMargin   = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
   avg_buy      = ObjectGetDouble(0,"AveragePriceLine0",OBJPROP_PRICE);
   avg_sell     = ObjectGetDouble(0,"AveragePriceLine1",OBJPROP_PRICE);
   Drawdown     = (Balance - FreeMargin)/Balance*100;
//-------------------------------------------------------------------+  Команда на удаление линий отображающую среднюю цену и текста
   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      if(ObjectFind(0,"signal4")==0&&CountTrade(0)<1)//для бай
        {
         ObjectDelete(0,"signal4");
        }
      if(ObjectFind(0,"signal3")==0&&CountTrade(1)<1)//для селл
        {
         ObjectDelete(0,"signal3");
        }
     }
 
EVGENII SHELIPOV #:

Buongiorno Rostislav!!!

Potresti commentare i cambiamenti di ieri, non riesco a capire la loro logica


Se non ci sono ordini aperti flag_close diventa "0".

   if(CountTrade() == 0)
     {
      flag_close=0;

Quando flag_close=0; la richiesta a ClosseAll() si ferma

 
Tretyakov Rostyslav #:

Se non ci sono ordini aperti, flag_close riceverà "0".

Quando flag_close=0; la richiesta di ClosseAll() si ferma

Sì, ho capito.

Ne hai bisogno quando cancelli gli oggetti.

La cosa interessante è che se la bandiera è bloccata in questo posto, l'Expert Advisor diventa strano

 
EVGENII SHELIPOV #:

Sì, lo capisco.

Perché è necessario quando si cancellano gli oggetti.

La cosa interessante è che se si blocca la bandiera in questo posto, l'Expert Advisor inizia a fare cose strane.

Questo non ha niente a che fare con la cancellazione di oggetti

È una determinazione dell'assenza di ordini

   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      if(ObjectFind(0,"signal4")==0&&CountTrade(0)<1)//для бай
        {
         ObjectDelete(0,"signal4");
        }
      if(ObjectFind(0,"signal3")==0&&CountTrade(1)<1)//для селл
        {
         ObjectDelete(0,"signal3");
        }
     }

È possibile eseguire tutte le operazioni interne che non richiedono l'assenza di ordini

Inoltre, ci sono molte cose inutili in questa parte del codice,

Questa variante farà la stessa cosa della precedente

   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      ObjectDelete(0,"signal4");
      ObjectDelete(0,"signal3");
     }
 
Tretyakov Rostyslav #:

Cosa c'entra la rimozione degli oggetti con

si tratta di determinare se non ci sono ordini

e all'interno si può eseguire qualsiasi operazione che non richiede ordini

Inoltre, c'è un sacco di roba inutile in questa parte del codice,

Questa variante farà la stessa cosa della precedente

Lo capisco, Rostislav.

Non capisco perché, se blocco il flag in questa funzione, l'EA inizia ad aprire e chiudere 100-200 ordini alla volta

 
Vitaly Muzichenko #:

Si dice locking, dalla parola lock.

Sì, ma una serratura si apre con lo stesso lotto. E due ordini diversamente diretti vengono aperti simultaneamente. Un hedging è quando un'operazione è andata in drawdown, e il trader apre una posizione con un lotto più grande nella stessa direzione (ho fatto confusione con direzioni diverse) implicando che il prezzo si invertirà per fare un profitto su un'operazione con un lotto più grande e coprire la perdita su un'operazione con un lotto più piccolo o la media a 0. Se ho sbagliato qualcosa, correggetemi.

Motivazione: