Domande da un "manichino" - pagina 146

 
alph:

Ciao!

Qui, l'ho scolpito e regolato per GBPUSD M30.

Vorrei anche un'opinione, un commento e un consiglio.

Grazie in anticipo.

Forse:

Slipage=20; // Slippage

Includere in:

if(_Digits==4 || _Digits==2)
{
STP = STP/10;
TKP = TKP/10;

}

È troppo grande per 4 cifre.

Ho provato su 2 società di intermediazione e non sono riuscito a ottenere un risultato positivo.

Forse l'orario del server è diverso dal mio.

Quale società di intermediazione sta usando?

 
pusheax:


Hai ragione, non ci avevo nemmeno pensato.

RFC DC

Tempo del server MSC-3

 
alph:

Ciao!

Qui, l'ho scolpito e regolato per GBPUSD M30.

Vorrei anche un'opinione, un commento e un consiglio.

Grazie in anticipo.

Ha dato un'occhiata veloce. Ecco uno sguardo.

1.

bool timeOntrade(int TradeHour)
   {
   MqlDateTime timeOntrade;
   TimeTradeServer(timeOntrade);
   if(timeOntrade.hour!=TradeHour) return(false);
   timeOntrade.hour= 0;
   timeOntrade.min = 0;
   timeOntrade.sec = 1;
   if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true);
   return(true);
   }

L'ultima e la penultima riga sono confuse. Qualunque sia il risultato dell'operatore if(), esso restituisce true. Qual è allora il senso di questa condizione? È lo stesso in timeOntrade2().

2. Quando si usa la funzione OrderSend(), il programmatore non controlla né il suo successo né il codice di ritorno result.retcode. Finora sembra così: se viene inviata una richiesta di scambio, la questione è la stessa :) A nessuno importa se ha funzionato o no.

 

 alph:

3. Se OnInit() non riesce a ottenere almeno un handle di indicatore, perché non scaricare semplicemente il programma?

 
Yedelkin:

Ho dato un'occhiata in giro. Ecco uno sguardo.

1.

L'ultima e la penultima riga sono confuse. Qualunque sia il risultato dell'operatore if(), esso restituisce true. Qual è allora il senso di questa condizione? È lo stesso in timeOntrade2().

2. Quando si usa la funzione OrderSend(), il programmatore non controlla né il suo successo né il codice di ritorno result.retcode. Finora sembra così: se viene inviata una richiesta di scambio, la questione è la stessa :) A nessuno importa se ha funzionato o no.

Per questo chiedo un'opinione e un consiglio. Non capisco bene i processi in mql, ma i trade vengono aperti in quel modo e al momento giusto. Quando ho provato con un timeframe, non ha funzionato.
 
Yedelkin:

3. Se OnInit() non riesce a ottenere almeno un handle di indicatore, perché non scaricare semplicemente il programma?

Il modo è affidabile, ma non sempre efficace. A mio parere, è corretto correggere tutti gli errori e i difetti di inizializzazione, se possibile.
 
Yedelkin:

3. Se OnInit() non riesce a ottenere almeno un handle di indicatore, perché non scaricare semplicemente il programma?

Può dirmi come?
 
alph:
Per questo chiedo un'opinione e un consiglio. Non capisco bene i processi mql, ma in questo modo i trade vengono aperti, e al momento giusto. Quando ho provato con un timeframe, ho fallito.

Sì, è "opinione e consiglio"! :) Non sto dicendo che il codice è una rottura, sto dicendo che ci sono dei dubbi. Sentitevi liberi di scrivere ciò che volete codificare - qui vi aiuteranno.

A proposito della funzione OrderSend(): guardate la sua descrizione. La variabile result contiene la risposta del server. Deve essere analizzato. Ognuno lo analizza a modo suo. Chiedete pure, se qualcosa non è chiaro.

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 

alph:

Yedelkin : 3. Se OnInit() non riesce a ottenere almeno un handle di indicatore, perché non scaricare semplicemente il programma?

Per favore, ditemi come fare.

Guardate la descrizione di OnInit(). Dice che se la funzione int OnInit() restituisce un codice di ritorno diverso da zero, significa inizializzazione non riuscita, alla quale viene generato l'eventoDeinit con codice REASON_INITFAILED del motivo della deinizializzazione. In parole povere, se OnInit() non riesce a ricevere un manico indicatore, scrive return(-100) e l'esperto finisce il suo lavoro. (Il valore "-100" è condizionale; qualsiasi valore diverso da zero è sufficiente).

 
Yedelkin:

Sì, è "opinione e consiglio"! :) Non sto dicendo che il codice è una rottura, sto dicendo che ci sono dei dubbi. Sentitevi liberi di scrivere ciò che volete codificare - qui vi aiuteranno.

A proposito della funzione OrderSend(): guardate la sua descrizione. La variabile result contiene la risposta del server. Deve essere analizzato. Ognuno lo analizza a modo suo. Per favore, chiedete se qualcosa non è chiaro.

Se il prezzo chiude sotto la media mobile, e il Momentum è sotto la media - apriamo l'affare per vendere. Per comprare al contrario.

"Non ho idea di cosa fare con questo tipo di codice. Grazie per i suggerimenti.