Discussione sull’articolo "Manuale MQL5: Come evitare errori durante l'impostazione/modifica dei livelli di trading" - pagina 2

 
tatankaska:
Salve, testando il vostro expert advisor in strategy tester su GOLD ho sempre ottenuto i prompt Failed to open position - Invalid stops - no positions were opened. Cosa c'è di sbagliato? E' stato scritto per evitare questo tipo di errore?
Temo che sia necessario un po' di codice per potervi aiutare. La cosa più probabile è che l'errore sia presente nel vostro codice. Verificate che i vostri stop siano più grandi della distanza minima consentita e che non abbiate per caso sbagliato gli stop di acquisto e di vendita. Assicuratevi anche che il vostro broker permetta di specificare gli stop all'apertura della posizione - alcuni di essi richiedono di aggiungere gli stop solo alle posizioni esistenti (la cosiddetta"market execution").
 
marketeer:
Purtroppo abbiamo bisogno di un po' di codice per potervi aiutare. La cosa più probabile è che l'errore sia presente nel codice. Verificate che i vostri stop siano più grandi della distanza minima consentita e che non abbiate per caso sbagliato gli stop di acquisto e di vendita. Assicurati anche che il tuo broker permetta di specificare gli stop all'apertura della posizione - alcuni di essi richiedono di aggiungere gli stop solo alle posizioni esistenti (la cosiddetta"market execution").

Salve, ho testato solo il consulente esperto allegato all'articolo Come evitare errori quando si imposta/modifica il livello di negoziazione, senza alcuna modifica (Positionpropertiesplus). Piattaforma Instatrader di Instaforex. Le funzioni di questo consulente sono scritte in modo tale che, se imposto parametri di stop errati, essi vengono impostati al minimo consentito. Quindi normalmente non dovrei ottenere alcun messaggio di errore - questo è vero per le coppie di forex. Ma con GOLD in questa piattaforma ottengo, ad ogni tentativo di positionpropertiesplus EA di aprire una posizione con gli stop, il prompt di errore stop non validi e nessuna posizione nel tester della strategia è stata aperta. E' questo il caso che hai menzionato - problema con la piattaforma instatrader e il broker? Nelle proprietà del simbolo GOLD è scritto esecuzione istantanea.

Ecco un esempio di funzione per il calcolo degli stoploss dall'EA menzionato - Ho usato l'EA allegato all'articolo menzionato senza alcuna modifica, ho solo usato l'ORO invece delle coppie forex:

//+------------------------------------------------------------------+

//| Calcolo del valore dello Stop Loss|

//+------------------------------------------------------------------+

double CalculateStopLoss(ENUM_ORDER_TYPE order_type)

  {

//--- Se è richiesto lo Stop Loss

   if(StopLoss>0)

     {

      //--- Per il valore calcolato dello Stop Loss

      double sl=0.0;

      //--- Se è necessario calcolare il valore per una posizione BUY

      if(order_type==ORDER_TYPE_BUY)

        {

         // Calcolo del livello

         sl=NormalizeDouble(sym_ask-CorrectValueBySymbolDigits(StopLoss*sym_point),sym_digits);

         //--- Restituisce il valore calcolato se è inferiore al limite inferiore del livello degli Stop

         // Se il valore è maggiore o uguale, restituisce il valore corretto

         return(sl<sym_down_level ? sl : sym_down_level-sym_offset);

        }

      //--- Se è necessario calcolare il valore per una posizione SELL

      if(order_type==ORDER_TYPE_SELL)

        {

         //--- Calcolare il livello

         sl=NormalizeDouble(sym_bid+CorrectValueBySymbolDigits(StopLoss*sym_point),sym_digits);

         //--- Restituisce il valore calcolato se è superiore al limite superiore del livello di Stop

         // Se il valore è inferiore o uguale, restituisce il valore modificato

         return(sl>sym_up_level ? sl : sym_up_level+sym_offset);

        }

     }

//---

   return(0.0);

  } 
 
tatankaska:
...

Forum sul trading, sui sistemi di trading automatico e sul test delle strategie di trading


Ciao,

Si prega di utilizzare il pulsante SRC quando si invia il codice. Grazie.


Questa volta l'ho modificato per te.


 
tatankaska:

Salve, ho testato solo il consulente esperto allegato all'articolo Come evitare errori quando si imposta/modifica il livello di negoziazione, senza alcuna modifica (Positionpropertiesplus). Piattaforma Instatrader di Instaforex. Le funzioni di questo consulente sono scritte in modo tale che, se imposto parametri di stop errati, essi vengono impostati al minimo consentito. Quindi normalmente non dovrei ottenere alcun messaggio di errore - questo è vero per le coppie di forex. Ma con GOLD in questa piattaforma ottengo, ad ogni tentativo di positionpropertiesplus EA di aprire una posizione con gli stop, il prompt di errore stop non validi e nessuna posizione nel tester della strategia è stata aperta. E' questo il caso che hai menzionato - problema con la piattaforma instatrader e il broker? Nelle proprietà del simbolo GOLD è scritto esecuzione istantanea.

Qui c'è un esempio di funzione per il calcolo dello stoploss dall'EA citato - Ho usato l'EA allegato all'articolo citato senza alcuna modifica, ho solo usato GOLD invece delle coppie forex:

Sì, questo è il caso. Con GOLD in Instatrader gli stop possono essere posizionati solo dopo l'apertura della posizione. Quando la posizione veniva aperta senza stop e dopo l'apertura modificata, tutto andava bene. Grazie ragazzi.
 

Ancora una volta per quanto riguarda il calcolo degli stop (SL/TP) nell'EA allegato - essi sono calcolati correttamente solo dagli strumenti in cui il punto simbolo = la dimensione del tick del simbolo. Questo non è il caso di GOLD.

Gli stop devono essere corretti in questo caso (da GOLD) in base alla dimensione del tick del simbolo, altrimenti si ottiene un messaggio di errore - stop non validi.

Quindi i messaggi di errore di GOLD non sono il risultato dell'esecuzione del mercato. L'EA ha bisogno di una piccola correzione nel calcolo di SL/TP, se si desidera utilizzarlo con GOLD.

 
E per quanto riguarda la chiusura di una posizione? Se esistono condizioni (segnali) per la chiusura di posizioni nell'Expert Advisor, come si fa, dove posso vedere questi esempi?
 
Nauris:
E per quanto riguarda la chiusura di una posizione? Se esistono condizioni (segnali) per la chiusura di posizioni nell'Expert Advisor, come si fa, dove si possono vedere questi esempi?
Nell'articolo viene utilizzata la classe CTrade della libreria standard. Essa dispone del metodo PositionClose. È possibile utilizzarlo.
 
Modifico questo al codice

//+------------------------------------------------------------------+
//| Impostazione del pannello informativo|
//|------------------------------------------------------------------+
void SetInfoPanel()
  {
//--- Modalità di visualizzazione o tempo reale
   if(ShowInfoPanel && (IsVisualMode() || IsRealtime()))
     {
     // Il codice rimanente della funzione SetInfoPanel()
     // ...
     }
  }