))) Due oggetti, uno più vecchio e uno più giovane, ho bisogno del prezzo del punto dell'oggetto più giovane (più vicino) e ottengo il prezzo del punto dell'oggetto più vecchio (più lontano) nel commento. Perché? Se il ciclo precedente, commentato, ha restituito l'oggetto più lontano, il ciclo attuale deve restituire il più vicino - ultimo ma restituisce il penultimo. Mi manca qualcosa qui.
PolarSeaman: ))) Due oggetti, uno più vecchio e uno più giovane, ho bisogno del prezzo del punto dell'oggetto più giovane (più vicino) e ottengo il prezzo del punto dell'oggetto più vecchio (più lontano) nel commento. Perché? Se il ciclo precedente, commentato, ha restituito l'oggetto più lontano, il ciclo attuale deve restituire il più vicino - ultimo ma restituisce il penultimo. Mi manca qualcosa qui.
Uno, e due - per selezionare gli oggetti nel ciclo in base al tempo, è necessario confrontare due tempi - l'oggetto precedente e quello attuale. Se il tempo corrente è più lungo, allora memorizzatelo in una variabile da controllare alla prossima iterazione del ciclo. Alla fine del ciclo, la variabile conterrà l'oggetto più recente creato.
Provato, non funziona, devo aver fatto qualcosa di sbagliato(
L'errore più grossolano qui è specificare il valore 100 invece di ticket nell'argomento della funzione OrderDelete().
Il prossimo errore non è così grossolano, ma è legato al fatto che viene controllato il valore calcolato dello Stop Loss invece del suo valore reale.
Anche il tipo di ordine non viene controllato. Cosa succede se abbiamo scelto un ordine a mercato? Come cancellarlo? Il simbolo dell'ordine non è stato controllato.
for (int i = OrdersTotal() - 1; i >= 0; --i)
{
if (!OrderSelect(i, SELECT_BY_POS))
continue;
if (OrderSymbol() != Symbol())
continue;
if (OrderMagicNumber() != 100)
continue;
if (((OrderType == OP_BUYSTOP || OrderType() == OP_BUYLIMIT) && Bid <= OrderStopLoss()) ||
((OrderType == OP_SELLSTOP || OrderType() == OP_SELLLIMIT) && Ask >= OrderStopLoss() && OrderStopLoss() > 0.0))
{
if (OrderDelete(OrderTicket()))
RefreshRates();
}
}
Inoltre nel tuo codice controlla che lo Stop Loss sia raggiunto immediatamente dopo l'apertura di un ordine. Sembra che dopo aver aperto un ordine pendente, questo codice non venga più eseguito. Cioè, è necessario separare i rami di esecuzione. Uno è responsabile dell'impostazione dell'ordine e il secondo è responsabile del suo accompagnamento.
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
E poi continuate a usare le stesse parole.
))) Due oggetti, uno più vecchio e uno più giovane, ho bisogno del prezzo del punto dell'oggetto più giovane (più vicino) e ottengo il prezzo del punto dell'oggetto più vecchio (più lontano) nel commento. Perché? Se il ciclo precedente, commentato, ha restituito l'oggetto più lontano, il ciclo attuale deve restituire il più vicino - ultimo ma restituisce il penultimo. Mi manca qualcosa qui.
Uno, e due - per selezionare gli oggetti nel ciclo in base al tempo, è necessario confrontare due tempi - l'oggetto precedente e quello attuale. Se il tempo corrente è più lungo, allora memorizzatelo in una variabile da controllare alla prossima iterazione del ciclo. Alla fine del ciclo, la variabile conterrà l'oggetto più recente creato.
Provato, non funziona, devo aver fatto qualcosa di sbagliato(
L'errore più grossolano qui è specificare il valore 100 invece di ticket nell'argomento della funzione OrderDelete().
Il prossimo errore non è così grossolano, ma è legato al fatto che viene controllato il valore calcolato dello Stop Loss invece del suo valore reale.
Anche il tipo di ordine non viene controllato. Cosa succede se abbiamo scelto un ordine a mercato? Come cancellarlo? Il simbolo dell'ordine non è stato controllato.
Prendendo in considerazione questi errori, otteniamo il codice di cancellazione dell'ordine pendente quando il prezzo raggiunge il suo Stop Loss:
Inoltre nel tuo codice controlla che lo Stop Loss sia raggiunto immediatamente dopo l'apertura di un ordine. Sembra che dopo aver aperto un ordine pendente, questo codice non venga più eseguito. Cioè, è necessario separare i rami di esecuzione. Uno è responsabile dell'impostazione dell'ordine e il secondo è responsabile del suo accompagnamento.Salve signore e signori!
Per favore, ditemi come prendere la combinazione di tasti, per esempio Ctrl+1. So come prendere un tasto della tastiera.
Ma ho bisogno di una combinazione in mt4 - come farlo!
Salve signore e signori!
Potete dirmi come catturare la combinazione di tasti come Ctrl+1. So come prendere un tasto della tastiera.
Ho bisogno di una combinazione di Mt4 - come farlo!
L'evento OnChartEvent, analizza i parametri lparam e sparam, perché premere Ctrl+1 è due eventi.
L'evento OnChartEvent, analizza i parametri lparam e sparam, poiché la pressione di Ctrl+1 è due eventi.
No, non funziona, l'ho provato!
Visualizza solo il tasto ctrl e tutti gli altri più 1 e le lettere non funzionano!!!
No, non funziona, l'ho provato!
Visualizza solo kntrl press e tutti gli altri più 1 e le lettere non funzionano!!!
Ho scritto:
premere Ctrl+1 è due eventi
Cattura due eventi e analizzali:
Questa è una pressione di Ctrl+1.
Ho scritto:
Cattura due eventi e analizzali:
Questa è una pressione di Ctrl+1.
Qui ho solo countercl o 1 e nessun evento sull'altro o mostra il tuo codice!
Dopo aver premuto ctrl nessun altro evento fino a quando non si rilascia ctrl !
Ho trovato l'errore, grazie!
Con un profilo? =)
:)