Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1431

 

Buon pomeriggio!

Come eseguire il ridisegno forzato dei grafici (analogo alla funzione - tasto destro del mouse sul grafico - "Aggiorna").

Il codice sottostante non funziona, l'aggiornamento non avviene.


void OnStart()
  {
   long currChart, prevChart = ChartFirst();
   int z = 0, limit = 100;
   while(z < limit && !IsStopped())
     {
      currChart = ChartNext(prevChart);
         ChartRedraw(currChart);
      if(currChart == 0)
         break;
      prevChart = currChart;
      z++;
     };
   ChartRedraw(0);
  }
 

Voglio scaricare gli Expert Advisor gratuiti in MQL5. Vado su Expert Advisors, poi su Free Expert Advisors. Domanda: posso utilizzare tutti gli Expert Advisor della sezione "free" sul mio conto reale o ci sono delle restrizioni? Se un Expert Advisor dice "già acquistato" può essere inserito in un conto reale o no?

"già acquistato" può essere inserito in un conto reale o no?

 
mikhail2929 Кравченко conto reale o ci sono delle restrizioni? Se un Expert Advisor riporta la dicitura

"già acquistato" può essere inserito in un conto reale o no?

Se avete scaricato un Expert Advisor gratuito e c'è scritto che è già stato acquistato, potete utilizzarlo. La domanda è un'altra: quanto è affidabile? A tal fine, prima di utilizzarlo su un conto reale, è meglio testare l'Expert Advisor!

Saluti, Vladimir.

 
MrBrooklin #:

Se un Expert Advisor gratuito è stato scaricato e si sa che è già stato acquistato, è possibile utilizzarlo. La domanda è un'altra: quanto è affidabile? A tal fine, prima di utilizzarlo su un conto reale, è meglio testare l'Expert Advisor!

Saluti, Vladimir.

Grazie Vladimir. Capisco che i test e l'ottimizzazione sono necessari. Cioè tutti gli Expert Advisor inseriti nella sezione "free" possono essere scaricati e installati per lavorare su un conto reale senza restrizioni. Ho capito bene?

 
Buon pomeriggio, sto cercando aiuto, quando scrivo un Expert Advisor MT5, uso la classe CTrade per modificare TP e SL. Il problema è che la posizione è inizialmente impostato TP e SL dopo TP è cambiato, ma SL dovrebbe rimanere al suo posto, quando l'attuazione si è rivelato in questo modo :
 for(int i = 0; i <= PositionsTotal(); i++)
      if(a_position.SelectByIndex(i))
         if(a_position.Magic() == MagicNumber && a_position.Symbol() == a_symbol.Name())
            if(PositionGetString(POSITION_COMMENT) == Comment_2)
              {
                  if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY && PositionGetDouble(POSITION_TP) != TP_Buy)
                  a_trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_SL),TP_Buy);

                  if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL && PositionGetDouble(POSITION_TP) != TP_Sell)
                  a_trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_SL),TP_Sell);
              }

TP_Buy e TP_Sell vengono conteggiati correttamente. Nel tester dà l'errore 4756. CTrade::OrderSend: modify position #4 GBPUSD (sl: 1.35950, tp: 1.34860) [invalid stops] failed modify #4 sell 0.05 GBPUSD sl: 1.35950, tp: 1.34860 -> sl: 1.35950, tp: 1.34860 [Invalid stops]. A quanto ho capito si tratta di un errore di impostazione dello SL, molto probabilmente l'errore è dovuto al fatto che lo SL si trova nello stesso punto. Ma questo è ciò di cui ho bisogno. Nel manuale di CTrade è scritto che "se la modifica non è necessaria, il valore precedente". Come superare l'errore, per favore ditemi.

 
mikhail2929 Кравченко #:

Grazie Vladimir. Capisco che i test e l'ottimizzazione sono necessari. Cioè tutti gli Expert Advisor inseriti nella sezione "free" possono essere scaricati e installati per lavorare su un conto reale senza restrizioni. Ho capito bene?

Credo di aver già risposto alla sua domanda in precedenza. Sì, ha capito bene.

Saluti, Vladimir.

 
rexMetaL scrivo un Expert Advisor MT5, uso la classe CTrade per modificare TP e SL. Il problema è che la posizione è inizialmente impostato TP e SL dopo TP è modificato, ma SL dovrebbe rimanere al suo posto, quando l'attuazione si è rivelato che :

TP_Buy e TP_Sell vengono conteggiati correttamente. Nel tester dà l'errore 4756. CTrade::OrderSend: modify position #4 GBPUSD (sl: 1.35950, tp: 1.34860) [invalid stops] failed modify #4 sell 0.05 GBPUSD sl: 1.35950, tp: 1.34860 -> sl: 1.35950, tp: 1.34860 [Invalid stops]. A quanto ho capito si tratta di un errore di impostazione dello SL, molto probabilmente l'errore è dovuto al fatto che lo SL si trova nello stesso punto. Ma questo è ciò di cui ho bisogno. Nel manuale di CTrade è scritto che "se la modifica non è necessaria, il valore precedente". Come superare l'errore, per favore ditemi.

Ciao!

Prima di tutto, rimuovi il segno di uguale nel ciclo in modo che sia così:

for(int i = 0; i < PositionsTotal(); i++)

Non ho esaminato ulteriormente il tuo codice.

Saluti, Vladimir.

 
MrBrooklin #:

Ciao!

Prima di tutto, rimuovi il segno di uguale nel ciclo:

Non ho esaminato ulteriormente il tuo codice.

Saluti, Vladimir.

Non è cambiato nulla, il problema è specificamente in SL/TP
 for(int i = 0; i < PositionsTotal(); i++)
      if(a_position.SelectByIndex(i))
         if(a_position.Magic() == MagicNumber && a_position.Symbol() == a_symbol.Name())
            if(PositionGetString(POSITION_COMMENT) == Comment_2)
              {
                  if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY && PositionGetDouble(POSITION_TP) != TP_Buy)
                  a_trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_SL),TP_Buy);

                  if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL && PositionGetDouble(POSITION_TP) != TP_Sell)
                  a_trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_SL),TP_Sell);
              }
 
MrBrooklin #:

Ciao!

Prima di tutto, rimuovi il segno di uguale nel ciclo, in modo che sia così:

Non ho guardato ulteriormente il tuo codice.

Saluti, Vladimir.

Grazie per il suo tempo, il problema è stato risolto con un semplice arrotondamento di SL/TP per strumento. L'errore era dovuto al fatto che SL/TP erano stati presi dall'indicatore.

Grazie.

 
mikhail2929 Kravchenko #:

Grazie Vladimir. Capisco che i test e l'ottimizzazione sono necessari. Cioè tutti gli Expert Advisor inseriti nella sezione "free" possono essere scaricati e installati per lavorare su un conto reale senza restrizioni. Ho capito bene?

È meglio non farlo :)