Errori, bug, domande - pagina 456

 
_____Life_Line:

Questo può essere implementato in diversi modi, a seconda del vostro compito.

Date un'occhiata alle sezioni della guida di MQL5 "Chart Periods", "Instrument Information" e fate attenzione alla funzione ChartSetSymbolPeriod().

Per l'implementazione, avrete molto probabilmente bisogno di prescrivere una lista di TFs e Symbols o di ottenerli dall'ambiente di mercato.

 
Urain:

Questo può essere implementato in diversi modi, a seconda del vostro compito.

Guarda le sezioni della guida di MQL5 "Chart Periods", "Instrument Information" e presta attenzione alla funzione ChartSetSymbolPeriod().

Per l'implementazione, avrete molto probabilmente bisogno di prescrivere una lista di TFs e Symbols o di ottenerli dall'ambiente di mercato.

Grazie, ho capito. Ha funzionato, ho messo tutte le enumerazioni necessarie su switch, l'errore è stato quello di scegliere un tipo di stringa corretto per la coppia e ENUM_TIMEFRAMES per il periodo.
 

Ciao a tutti, c'è una sfumatura molto spiacevole quando si chiudono le posizioni aperte,

Profitto ottenere per esempio +150$ e chiudere tutto: MA sul grafico ha visto una tale immagine:

ha deciso di fare una piccola aggiunta prima di chiudere tutte le posizioni sui diversi simboli nel codice è così:

    double bal = AccountInfoDouble(ACCOUNT_BALANCE);
    double eqv = AccountInfoDouble(ACCOUNT_EQUITY);
    if (bal < eqv && (tral == false && GetProfit()>= PP))
     {

cioè quando il profitto su tutte le coppie è più di quanto specificato nei parametri, e il patrimonio netto è più del saldo, allora chiudiamo

Ma dopo questi cambiamenti la situazione non è cambiata, ora abbiamo le stesse sfumature solo in un posto diverso.


Ho l'unica spiegazione per questo: abbiamo calcolato un profitto del testo che è superiore a quello che abbiamo impostato in +.

e quando abbiamo iniziato a chiudere i prezzi sono già cambiati, cioèUn paio di zecche in

di zecche nel tester passato ed eravamo già in rosso mentre tutto si chiudeva (2 coppie di strumenti

EURUSD .. GBPUSD)

Quindi?

 
Im_hungry:

Ciao a tutti, c'è una sfumatura molto spiacevole quando si chiudono le posizioni aperte,

.............

Quindi?

Ci sono delle fermate?
 
MetaDriver:
Hai dei piedi?
"Beh, dove prendono i piedi in Italia, ho visto la loro Italia su una mappa, stivale su stivale" (s)quasi blindato) :o)
 
MetaDriver:
Ci sono delle fermate?

No solo trawl (quello che c'è sotto su ogni tick), ora provato il seguente codice:

    double bal = AccountInfoDouble(ACCOUNT_BALANCE);
    double eqv = AccountInfoDouble(ACCOUNT_EQUITY);
    if (bal < eqv && (tral == false && AccountInfoDouble(ACCOUNT_PROFIT)>= PP))

PP - profitto nei parametri, e ancora le stesse mancanze, un paio di tick e siamo tutti in perdita o altro...?

Si apre per arbitraggio su 2 coppie (EURUSD ... GBPUSD) e quando si raggiunge il profitto desiderato

Chiudiamo.

 

Ho fatto in modo che le linee extra non interferiscano con la chiusura rapida delle pose,

Ci sono meno salti, ma sono sempre più propenso a pensare che sia dovuto alla lentezza del computer,

Ho abbastanza RAM, ma ho la CPU piena?

 

Per favore, consigli su come interpretare lo stato di SYMBOL_TRADE_MODE.

Posso inviare ordini per cambiare i livelli di stop nel modo SYMBOL_TRADE_MODE_CLOSEONLY?

 
Im_hungry:

No solo trawl (quello che c'è sotto su ogni tick), ora provato il seguente codice:

PP - profitto nei parametri, e ancora le stesse mancanze, un paio di tick e siamo tutti in perdita o altro...?

Apriamo l'arbitraggio su 2 coppie (EURUSD ... GBPUSD) e dopo aver raggiunto il profitto totale richiesto

Chiudiamo.

Il codice fornito non è sufficiente. C'è un errore al di fuori di esso.
 
MetaDriver:
Il codice fornito non è sufficiente. L'errore è al di fuori di esso.

dopo di che (

bal < eqv && (tral == false && AccountInfoDouble(ACCOUNT_PROFIT)>= PP && sum>=PP)

) le pose sono immediatamente chiuse con questo codice che è stato preso da questo sito

   MqlTradeRequest mrequest;                           
   MqlTradeResult mresult;                             
   if(PositionSelect(Symbol_1)==true)
     {
       mrequest.action = TRADE_ACTION_DEAL;              
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) mrequest.price = SymbolInfoDouble(Symbol_1,SYMBOL_BID);    
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) mrequest.price = SymbolInfoDouble(Symbol_1,SYMBOL_ASK);
       mrequest.symbol = Symbol_1;                         
       mrequest.volume = PositionGetDouble(POSITION_VOLUME);                          
       mrequest.magic = PositionGetInteger(POSITION_MAGIC); ;                           
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) mrequest.type= ORDER_TYPE_SELL;                    
       if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) mrequest.type= ORDER_TYPE_BUY;
       mrequest.type_filling = ORDER_FILLING_AON;         
       mrequest.deviation=Prosk;                          
       OrderSend(mrequest,mresult);

Non ho alcun errore in 2 coppie di valute. Cercherò di analizzare ciò che è sbagliato, ma il fatto è che ho ottenuto risultati diversi su diversi computer con diverse interfacce e quasi nessun salto alla chiusura