[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 263

 
Valdemar:


Grazie per il tuo feedback caro PapaYozh,ma ho anche inserito questa funzione in int start(), ancora non cambia il risultato del compilatore.

Alla fine il compilatore mi mostra questi errori, e penso che si riferisca alla definizione della variabile sbagliata?

Voldemar, la gente sta cercando di dirti quello che dicono tutti i documenti, i tutorial e gli esempi: il corpo di una funzione utente deve essere fuori da altre funzioni, per esempio, dopo l'ultima linea della funzione Start.
 
ilunga:

Di nuovo:

Documentazione:

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Il tuo decimo parametro nella stringa "Newest" non è un numero. Ecco perché c'è un errore

Quindi devi solo rimuoverlo?
 
Pyxlik2009:
Quindi deve solo essere rimosso?

Dovete passare correttamente i parametri alla funzione chiamata.
 

Ragazzi aiuto per favore

 
granit77:
Voldemar, la gente sta cercando di dirti quello che dicono tutti i documenti, i tutorial e gli esempi: il corpo di una funzione personalizzata deve essere messo PRIMA delle altre funzioni, per esempio dopo l'ultima riga della funzione Start.


Grazie agranit77 e a tutti quelli che mi hanno dato il loro tempo prezioso. Ci sono riuscito, perché credo che tutti si siano rallegrati all'apparire dei primi successi nel raggiungimento dell'obiettivo concepito.

Grazie!!!!

...spero di poter aiutare qualcuno qui nel prossimo futuro.



 
Pyxlik2009:

Ragazzi, per favore aiutatemi.

Vuoi che te lo tenga io? :))))

Sostituisci "Newest" con un numero.

 
Starting:


Non credo di aver capito bene il punto.

Asserzione 1. Ogni codice, dopo l'attivazione dell'ordine pendente, quando accede alla data di apertura di quell'ordine (che è diventato negoziabile al momento dell'attivazione) otterrà la data di apertura uguale alla data di impostazione dell'ordine pendente - è così che funziona la funzione OrderOpenTime().

Asserzione 2: Non si può ricordare l'ora esatta dell'attivazione dell'ordine pendente, senza un Expert Advisor che monitorizza costantemente lo stato degli ordini sul conto.


Possibile soluzione 1. Possiamo provare a correre dalla data di impostazione dell'ordine pendente alla data attuale e notare il tempo del primo incrocio del prezzo aperto e il livello di trigger.

Questo sarà più o meno il tempo esatto, ma c'è un grande meno: lo spread. Dal momento che non registriamo lo spread nella cronologia (non sto prendendo la cronologia dei tick con spread presa da Dukas, per esempio, poiché non faccio trading in Dukas e questo tipo di cronologia con spread dovrebbe essere raccolta e registrata), l'ordine potrebbe essere scattato molto prima, quando il prezzo ha quasi toccato il livello aperto ma non lo ha attraversato, e l'ordine è stato aperto a causa dell'espansione dello spread, non dopo, quando abbiamo effettivamente visto il prezzo attraversare la linea di impostazione dell'ordine pendente.


La soluzione più probabile è quella di creare un Expert Advisor, metterlo sul grafico e monitorare gli ordini nel conto. Non voglio farlo per alcune ragioni e ci sono anche svantaggi associati a possibili problemi durante le pause nell'operazione EA.


Le funzioni a cui avete fatto riferimento. Hai fornito un link alla funzione OrderOpenTime(). Per gli ordini ritardati sarà la data della loro creazione, e non della loro attivazione. Pertanto, le funzioni esistenti non sono adatte. E non c'è modo di combinarli, poiché fanno ancora riferimento a OrderOpenTime() per la data di apertura dell'ordine.


Qualcosa mi allarma nelle sue affermazioni. Dopo la conversione di un ordine pendente con il biglietto, per esempio, 12, non ci sarà nessun ordine pendente con il biglietto 12 nella storia. Ci sarà una posizione aperta con il ticket 12, e il suo tipo sarà OP_BUY o OP_SELL. Il momento della sua apertura è il momento della trasformazione dell'ordine pendente in un ordine a mercato.

Per favore correggetemi se è sbagliato.

In ogni caso, hai bisogno di un Expert Advisor che faccia la contabilità degli ordini per te. Ad ogni tick si controlla se c'è un ordine pendente, si memorizza il suo ticket (se l'ordine viene trovato) e poi si confrontano i tick delle posizioni aperte con quello pendente. Non appena trovate una corrispondenza - ricordate l'ora della sua apertura. Questo sarà il momento che state cercando...

 

Domanda - è possibile utilizzare script e EAs di terze parti (della serie "non si scambiano") su un gufo che si fa passare attraverso un tester?

 
artmedia70:

Vuoi che te lo tenga io? :))))

Sostituisci "Newest" con un numero.

L'ho già capito, grazie).
 
artmedia70:

C'è qualcosa nelle sue dichiarazioni che mi mette a disagio. Dopo la conversione di un ordine pendente con il ticket 12, per esempio, non ci sarà nessun ordine pendente con il ticket 12 nella storia. Ci sarà una posizione aperta con il ticket 12, e il suo tipo sarà OP_BUY o OP_SELL. Il momento della sua apertura è il momento della trasformazione dell'ordine pendente in un ordine a mercato.

Per favore correggetemi se è sbagliato.

In ogni caso, hai bisogno di un Expert Advisor che faccia la contabilità degli ordini per te. Ad ogni tick si controlla se c'è un ordine pendente, si memorizza il suo ticket (se l'ordine viene trovato) e poi si confrontano i tick delle posizioni aperte con quello pendente. Non appena trovate una corrispondenza - ricordate l'ora della sua apertura. Questo sarà quello desiderato.

Sì, il biglietto dell'ordine a mercato dopo l'attivazione dell'ordine pendente non è cambiato (almeno con il mio broker).

Iltempo di apertura di una posizione di mercato sarà il tempo di modifica dell'ordine pendente. Almeno secondo i log, l'ho confrontato ora usando uno degli ordini come esempio.

L'affermazione 1, su questa base, è ovviamente sbagliata. Lo ricontrollerò domani mentre sono fresco; ci ho lavorato per un paio di notti (non esattamente), il mio cervello è già annebbiato.

Se l'OrderOpenTime() di un ordine a mercato con un ordine pendente mostra ancora il tempo della sua apertura, non abbiamo nessun problema e l'EA non è necessario per tracciare gli ordini. Tutto ciò di cui abbiamo bisogno è solo il tempo di attivazione dell'ordine pendente per ordinare correttamente gli ordini dalla storia in base al loro tempo di apertura e la bandiera che sono chiusi. Non importa nemmeno se era solo un ordine a mercato che era in sospeso e non c'erano bandiere che mostravano che era un ordine in sospeso - questo non è necessario. L'importante è il fatto - è stato chiuso per ultimo e con l'ultima data aperta - il nostro cliente, portalo qui.

È solo che non c'è modo che il mio script possa dare l'ultimo ordine chiuso con l'ultimo tempo aperto, esattamente quando gli ordini pendenti sono stati attivati. Comunque, controllerò tutto. Grazie per la dritta, molto utile!