Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 216

 
Come posso controllare programmaticamente se il pannello di trading one-click è in funzione o no?
 
Vladimir Tkach:
Come posso controllare programmaticamente se il pannello di trading one-click è in funzione o no?

Tirato fuori dalla classe:

   //--- Получение параметра "панель торговли OneClick" на чарте
   bool                 IsChartOneClick(void)            {return(ChartGetInteger(m_chart_id,CHART_SHOW_ONE_CLICK));}
 
Artyom Trishkin:

Un tale problema dovrebbe essere risolto controllando se c'è, o c'è stata, una posizione aperta e chiusa proprio su questa barra.

Altrimenti si accumulerà tutto. La funzione di segnale dovrebbe inviare segnali e la funzione di trading dovrebbe controllare la validità del segnale.


Questo è quello che volevo fare, ma non so come implementarlo. Come controllare la barra attuale.
 
AlGuru:

Questo è quello che volevo fare, solo che non so come implementarlo. Come scrivere un assegno sulla barra corrente.

Controlla se c'è una posizione aperta che è stata aperta sulla barra 0.

Se no, allora controllate anche se c'è una posizione chiusa, che è stata aperta sulla barra 0 e chiusa sulla stessa barra.

Di conseguenza, è necessario fare queste funzioni:

  1. Barra aperta dell'ultima posizione aperta
  2. ultima posizione chiusa barra aperta
  3. Barra di chiusura dell'ultima posizione chiusa
  4. Il fatto di aprire e chiudere l'ultima posizione chiusa sulla stessa barra (si usano le due precedenti funzioni 2 e 3)
Poi, usando queste funzioni, ottenete i dati che vi servono per prendere una decisione.
 
a196012a:

Buona giornata a tutti!

Per favore, consigliate come codificare la seguente azione nello strategy tester

Idea generale

1. ordine aperto N -X (volume = 0,1)

2.Se questo ordine è chiuso su SL, allora, per compensare la perdita, immediatamente al prezzo di chiusura su SL di un ordine N X, aprire l'ordine N - X1 (volume = 0,3)

DOBBIAMO FARE.

3 Se l'ordine (volume = 0,3) viene chiuso su SL, solo il valore dell'ora di apertura dell' ordine N - X sarà ricordato per compensare le perdite a cui è stato aperto.

So come aprire entrambi gli ordini, ma non riesco a trovare la mia strada fino alla fine, come memorizzare il valore dell'ora per un ordine con volume di 0,1 lotti che è stato chiuso sullo SL.

NOTA: Questo è legato alle chiusure degli ordini sullo stesso tick.

A volte più di un ordine con il volume di 0,1 e 0,3 sono chiusi in un tick.

Se 3 ordini di 0,1, per esempio, vengono chiusi in un solo tick su uno SL, invece di aprire 3 ordini di 0,3. - solo 1 ordine di 0,3 lotti è aperto

In questo caso se chiudo solo 1 ordine di 0,3 lotti sullo SL, non otterrò i valori dell'ora in cui vengono aperti due ordini di 0,1 lotti che compensano le loro perdite.

Cioè, ho bisogno di 3 ordini di 0,3 lotti da aprire in questo caso, non uno.


A volte 3 ordini di 0,3 lotti saranno chiusi da uno SL in un tick, nonostante il fatto che i loro corrispondenti ordini di 0,1 lotti siano stati aperti in tick diversi (ma solo a un prezzo).

In questo caso il programma salva il valore giusto solo per un ultimo ordine di 0,1 lotto.

Ho bisogno che il programma salvi il valore orario di ogni ordine (0,1 lotto) chiuso da SSL.


Ecco il mio codice, che dobbiamo modificare.

Grazie per il vostro aiuto.

Ecco un esempio di una situazione in cui diversi ordini sono chiusi in un tick


Buona giornata!

Perché bisogna considerare il tempo di ogni ordine chiuso? Potete farne a meno... O avete questi dati da qualche altra parte?

2) Ed esattamente 3 ultimi ordini che hanno chiuso in perdita? Oppure non importa quanti ordini ci sono, forse 5 o 8... E di conseguenza, per ogni

...un ordine che ha chiuso in perdita dovrebbe corrispondere a un ordine con un lotto più grande?

 
Valerius:


Buona giornata!

1. perché avete bisogno di cronometrare ogni barra che è chiusa? Puoi farne a meno... Conserva questi dati da qualche altra parte?

2) E gli ultimi 3 ordini che hanno chiuso in perdita? O non importa quanti ordini ci sono, possono essere 5 o 8... E di conseguenza, per ogni

...un ordine che ha chiuso in perdita dovrebbe corrispondere a un ordine con un lotto più grande?

Grazie per la vostra risposta.

Sì, tengo conto dell'ora di apertura nei passi successivi del programma.

Il numero può essere da 2 a 10.

Esattamente ogni ordine chiuso da uno stop loss dovrebbe corrispondere a un altro ordine aperto con un volume maggiore.

Per "match" intendo se entro 1 giorno 3 ordini aperti in qualsiasi momento sono stati chiusi dallo SL, immediatamente al loro prezzo di chiusura

3 ordini di un volume maggiore dovrebbero aprirsi. Subito dopo la chiusura di ogni singolo ordine. Per esempio, alle 12 un ordine chiuso al prezzo di 1,2000

Alle ore 12 al prezzo di 1.2000 viene aperto un ordine più grande. Questo è lo stesso per ogni ordine di un volume più piccolo che viene chiuso da un SL. Dopo che l'ordine di un volume maggiore è chiuso da uno SL, ricordate l'ora in cui l'ordine si apre in risposta alla chiusura di cui è stato aperto. Cioè, se l'ordine è stato aperto alle 12:00 al prezzo di 1,200 e chiuso attraverso uno stop, allora l'ordine ad alto volume si apre alle 12:00 al prezzo di 1,2000. Se l'ordine di volume maggiore è stato chiuso da uno SL , ricorda l'ora di apertura dell'ordine di volume minore, cioè le 12.

Dovremmo ricordare lo stesso dopo ogni ordine ad alto volume che è stato chiuso solo attraverso lo SL.

Trovo particolarmente difficile aprire gli ordini e salvare i valori orari quando diversi ordini (da 2 a 10) sono chiusi da un solo tick su un SL.

Vedi la descrizione dettagliata di questa situazione nel post iniziale.

 
a196012a:

Grazie per il vostro feedback.

Sì, l'ora di apertura la prendo in considerazione nelle azioni successive del programma.

Il numero può essere da 2 a 10.

Esattamente ogni ordine chiuso da uno stop dovrebbe corrispondere ad un altro ordine aperto da un volume maggiore.

Per "match" intendo se entro 1 giorno 3 ordini aperti in qualsiasi momento sono stati chiusi dallo SL, immediatamente al loro prezzo di chiusura

3 ordini di un volume maggiore dovrebbero aprirsi. Subito dopo la chiusura di ogni singolo ordine. Per esempio, alle 12 un ordine chiuso al prezzo di 1,2000

Alle ore 12 immediatamente al prezzo di 1,2000 viene aperto un ordine più grande. Questo è il modo in cui viene fatto in ogni ordine. E dopo che l'ordine di un volume più grande è chiuso da un SL, dovremmo memorizzare l'ora della sua apertura in risposta alla chiusura di cui è stato aperto. Cioè, se l'ordine è stato aperto alle 12:00 al prezzo di 1,200 e chiuso attraverso uno stop, allora l'ordine ad alto volume si apre alle 12:00 al prezzo di 1,2000. Se l'ordine di volume maggiore è stato chiuso da uno SL , ricordate l'ora di apertura dell'ordine di volume minore, cioè le 12.

E così dopo ogni ordine di volume maggiore che è stato chiuso solo su SL.


E un altro dettaglio.... Per esempio, il 1° ordine è stato chiuso con 0,1 lotti, il 2° ordine è stato aperto con 0,3 lotti. Abbiamo ricordato il tempo di apertura del primo ordine. Poi il 2° ordine è stato chiuso da uno stop e abbiamo memorizzato il tempo di apertura del 2° ordine e impostato un ordine con 0,9 lotti. E così via. Ho capito bene? Dobbiamo ricordare sempre e solo il momento del primo ordine?
 
Salve. Perché le coppie di valuteeuro vs usdmostrano149.16325 invece di 1.0616?


 
sidovi:
Salve. Perché la coppiaeuro vs usd è visualizzataa 149.16325 invece di 1.0616?



Cerca di aggiornare le citazioni. Servizio - Archivio quotazioni - Seleziona la tua coppia di valute - Carica.

Se questo non aiuta, reinstalla la metatrader.

 
Valerius:

Bene e un altro chiarimento.... Per esempio, il 1° ordine è stato chiuso con 0,1 lotti, il 2° ordine è stato aperto con 0,3 lotti. Abbiamo ricordato il tempo di apertura del primo ordine. Poi il 2° ordine è stato chiuso da uno stop e abbiamo memorizzato il tempo di apertura del 2° ordine e piazzato l'ordine con 0,9 lotti. E così via. Ho capito bene? Dobbiamo solo ricordare l'ora del primo ordine?

Tutti gli ordini più grandi si apriranno solo con un volume di 0,3 lotti. Tutti gli ordini di volume inferiore che vengono aperti in risposta a una chiusura sullo SL nel volume di 0,3 lotti si apriranno nel volume di 0,1 lotti. Solo 0,1 e 0,3. Non ci sono altri volumi.

Durante la chiusura di un ordine di 0,3 lotti attraverso lo SL, ricordate l'ora in cui l'ordine è stato aperto in risposta alla chiusura di cui è stato aperto (cioè l'ordine di 0,1 lotti).

Grazie per il vostro aiuto.

Puoi per favore dirmi dove è impostata l'opzione per inviare un messaggio alla mia email quando c'è una risposta al mio post.

Grazie mille ancora.

Motivazione: