Domande da un "manichino" - pagina 141

 
Yedelkin:

Il problema sembra essere qualcos'altro.

Il valore "3" non ritorna in nessun modo :) Dopo tutto, le enumerazioni sono numerate da zero.

Usare la funzione EnumToString per mostrare i valori dell'enumerazione
 
In MQL5 i valori dei periodi di tipo PERIOD_M1 ... PERIOD_MN1 sono valori di tipo intero? Voglio confrontarli usando l'operatore di commutazione. Ad esempio, se l'espressione è corretta:
input ENUM_TIMEFRAMES Period_code=PERIOD_H4;
int result; string big;

switch (Period_code)
{
case PERIOD_H4: { result=1; big="data 1"; break; }
case PERIOD_D1: { result=2; big="data 2"; break; }
}
 

Rosh:

Yedelkin:

Il problema sembra essere altrove.

Il valore "3" non ritorna in nessun modo :) Perché le enumerazioni sono numerate da zero.

Usare la funzione EnumToString per emettere valori di enumerazione

La cosa strana è che questo suggerimento non è venuto fuori prima, quando l'autore del topic locale dichiarava i suoi risultati come"Returns 3". Ok, proseguiamo sulla strada dell'imbattibilità.

T-G:

Restituisce 3 - cioè SYMBOL_TRADE_EXECUTION_MARKET.

Seguendo il consiglio di Roche scriviamo un semplice controllo (usando EnumToString):

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

E cosa vediamo? - Quello che vediamo è che il numero "3" non corrisponde a SYMBOL_TRADE_EXECUTION_MARKET. Così torniamo a https://www.mql5.com/ru/forum/3775/page143#comment_192116

 
Paladin80:
In MQL5, i valori dei periodi di tipo PERIOD_M1 ... PERIOD_MN1 sono valori di tipo intero? Voglio confrontarli usando l'operatore di commutazione. Per esempio, è l'espressione:
ENUM_TIMEFRAMES è un enum(MQL5 Reference / Status Check / Period). Enumerazioni è un tipo di dati interi(MQL5 Reference / Language Basics / Data Types / Integer Types / Enumerations).
 
Ciao, potresti dirmi come controllare se Buy e Sell per un certo strumento sono stati chiusi oggi?
 
T-G:
Salve, potete dirmi come controllare se Buy e Sell per un certo strumento sono stati chiusi oggi?

Se nessuno pubblicherà il codice pronto, allora provate a scriverlo voi stessi. Probabilmente l'approccio più semplice è il seguente: seleziona la storia delle transazioni per un giorno particolare(HistorySelect) e prova a cercare nella storia le transazioni che si riferiscono al simbolo selezionato

DEAL_SYMBOL

Nome del simbolo per il quale è stato fatto l'accordo

stringa

poi controllare

ORA_TEMPO

Tempo dell'affare

datetime

и

DEAL_ENTRY_OUT

Uscita dal mercato

Se ci sono state diverse posizioni di chiusura per un simbolo durante il giorno, si può anche ottenere il tempo di ogni affare ed elaborarlo secondo l'algoritmo dell'autore.

 
Yedelkin:

La cosa strana è che questo suggerimento non è stato fatto prima, quando l'autore del topic locale dichiarava i suoi risultati come"Returns 3". Ok, proseguiamo sulla strada dell'imbattibilità.

Seguendo il consiglio di Roche, scriviamo un semplice controllo (usando EnumToString):

//+------------------------------------------------------------------+
//|                                                       class5.mq5 |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(3)));
  }
//+------------------------------------------------------------------+

E cosa vediamo? - Quello che vediamo è che il numero "3" non corrisponde in alcun modo a SYMBOL_TRADE_EXECUTION_MARKET. Quindi torniamo a https://www.mql5.com/ru/forum/3775/page143#comment_192116.

Che ne dite di questo? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));
T-G:

Restituisce 3 - cioè SYMBOL_TRADE_EXECUTION_MARKET

3 è SYMBOL_TRADE_EXECUTION_EXCHANGE logicamente.

Faresti meglio a dirci cosa e dove stiamo cercando di commerciare... :)

 
Interesting:

Che ne dite di questo? :)

Print("SYMBOL_TRADE_EXECUTION_MARKET=",SYMBOL_TRADE_EXECUTION_MARKET);
Print("EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2))=",EnumToString(ENUM_SYMBOL_TRADE_EXECUTION(2)));

Beh, è la stessa cosa. Solo da un'altra angolazione. Il numero "3" e il valore dell'enumerazione"SYMBOL_TRADE_EXECUTION_MARKET" non sono affattocorrelati. L'unica differenza è nella relazione di precedenza.

Interessante:

3 è SYMBOL_TRADE_EXECUTION_EXCHANGE logicamente.

Non è così "logicamente", ma è così al momento.

 
Yedelkin:

Beh, è la stessa cosa. Solo da un'angolazione diversa. Il numero "3" e il valore dell'enumerazione"SYMBOL_TRADE_EXECUTION_MARKET" non sono correlati in alcun modo.L'unica differenza è nella relazione di precedenza.

Non è così "logicamente", ma è così al momento.

Bene, ha senso che abbiamo l'esecuzione di scambio(SYMBOL_TRADE_EXECUTION_EXCHANGE) e di conseguenza nessun TP/SL
 
Interesting:
Quindi ha senso, abbiamo l'esecuzione di scambio(SYMBOL_TRADE_EXECUTION_EXCHANGE) e quindi nessun TP/SL
Non riesco a trovare la mia strada. Dove nel Manuale di Riferimento c'è scritto che quando c'è un'esecuzione di scambio, la richiesta non deve contenere TP/SL?