Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 223
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Pomeriggio. Per favore, aiutate un trader principiante a trovare un consulente adatto per il trading automatico, che sia in grado di aprire ordini bloccati in coppie di valute con la possibilità di impostare arbitrariamente il take profit. Grazie.
In alternativa: dichiarare il metodo Type in tutti loro, in cui restituire l'identificatore del tipo.
Heh, se si potesse modificare il codice sorgente... Non è necessario semplificare così tanto le cose. E ancora - c'è un nome di classe in mql5?
Heh, se si potesse modificare il codice sorgente... Non è necessario semplificare così tanto le cose. Ancora - c'è un modo per mql5 di conoscere il nome di una classe?
Guarda nella direzione dei modelli. Questo codice restituirà il nome della classe o un tipo primitivo.
#include<Trade\Trade.mqh>
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
voidOnStart()
{
//---
Commercio CTrade;
doppio d_valore=M_PI;
int i_value=INT_MAX;
Print("d_value: type=",GetTypeName(d_value),", value=", d_value);
Print("i_value: type=",GetTypeName(i_value),", value=", i_value);
Print("trade: type=",GetTypeName(trade);
//---
}
//+------------------------------------------------------------------+
//| Restituisce il tipo in forma di stringa|
//+------------------------------------------------------------------+
template<typename T>
stringa GetTypeName(const T&t)
{
//---restituire il tipo come stringa
return(typename(T))
//---
}
Guarda verso i modelli. Questo codice restituirà il nome di una classe o di un tipo primitivo.
#include<Trade\Trade.mqh>
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
voidOnStart()
{
//---
Commercio CTrade;
doppio d_valore=M_PI;
int i_value=INT_MAX;
Print("d_value: type=",GetTypeName(d_value),", value=", d_value);
Print("i_value: type=",GetTypeName(i_value),", value=", i_value);
Print("trade: type=",GetTypeName(trade);
//---
}
//+------------------------------------------------------------------+
//| Restituisce il tipo in forma di stringa|
//+------------------------------------------------------------------+
template<typename T>
stringa GetTypeName(const T&t)
{
//---restituire il tipo come stringa
return(typename(T))
//---
}
Ho qualcosa! Ma non funziona con il nuovo - nel codice c'è un esempio di ciò di cui ho bisogno - forse qualcuno può suggerire come?
Ho qualcosa! Ma non funziona con il nuovo - c'è un esempio nel codice di ciò di cui ho bisogno - qualcuno può suggerire qualche modo?
Qualcuno può spiegarmi perché questo codice non funziona nel tester, mentre in tempo reale funziona!!!? In particolare mi interessa sapere perché nel tester, dopo HistorySelect(0, TimeCurrent()) la HistoryOrderGetInteger...
Schermata nel tester di strategia:
Schermata in tempo reale nella demo:
p.s. La cosa interessante è che il primo ordine nel tester viene elaborato correttamente ma gli altri no. Inoltre, se commentiamo HistroryOrderSelect(ticketOrder), otteniamo un messaggio nello Strategy Tester che l'ordine non è stato selezionato e nello Strategy Tester, tutto inizia a funzionare, tranne il primo ordine.
E ho qualche problema con HistorySelect(). Apro una posizione con lo script inviando un ordine a mercato, e se si è aperta un'operazione, controllo immediatamente il numero di operazioni nella storia dal lancio dello script, e lo controllo 10 volte ad un intervallo di un secondo. Ovviamente, ci dovrebbe essere un solo scambio, ecco lo script:
Ed ecco il risultato in Alfa-Forex:
Uno scambio è effettivamente fatto, ma non è nella storia nemmeno dopo 10 secondi. Che cos'è? Un bug di MT? Problema tecnico dell'alfa? Una specie di chip che non conosco? Alpari ha lo stesso script che funziona normalmente, solo occasionalmente lo zero viene rilevato al primo (zero) passo (beh, è comprensibile - la storia non ha ancora avuto il tempo di aggiornarsi), tutti gli altri passi sono uno. Ma dopo dieci secondi, perché non c'è nessun accordo nella storia?
E ho qualche problema con HistorySelect(). Apro una posizione con lo script inviando un ordine a mercato, e se si è aperta un'operazione, controllo immediatamente il numero di operazioni nella storia dal lancio dello script, e lo controllo 10 volte ad un intervallo di un secondo. Ovviamente, ci dovrebbe essere un solo scambio, ecco lo script:
Ed ecco il risultato del broker Alpha:
Uno scambio è effettivamente fatto, ma non è nella storia nemmeno dopo 10 secondi. Che cos'è questo? Un bug di MT? Problema tecnico dell'alfa? Una specie di chip che non conosco? Alpari ha lo stesso script che funziona normalmente, solo occasionalmente lo zero viene rilevato al primo (zero) passo (beh, è comprensibile - la storia non ha ancora avuto il tempo di aggiornarsi), tutti gli altri passi sono uno. Ma perché non c'è nessun accordo nella storia in dieci secondi?
Quello che mi preoccupa è la seguente linea
datetime dtStartTime = TimeCurrent();
Siete sicuri che dtStartTime e TimeCurrent() non siano lo stesso numero per il momento? Forse l'arrotondamento a un secondo mette la transazione completata fuori da dtStartTime.
La linea
datetime dtStartTime = TimeCurrent();
Siete sicuri che dtStartTime e TimeCurrent() non siano lo stesso numero per il tempo? Forse l'arrotondamento a un secondo mette la transazione completata fuori da dtStartTime.
E anche se è uno, MT non dovrebbe emettere la storia per quel secondo? Cioè non emette la storia entro i limiti specificati, COMPRESO i limiti stessi?
Ma comunque, ho provato a scrivere sia dtStartTime = TimeCurrent() - 1, sia dtStartTime = TimeCurrent() - 10. Non funziona.