Se ci sono molti personaggi, allora ci sono molte "aperture".
Grazie, amico. Come posso fare in modo che una transazione al giorno per staccare sullo strumento corrente e ignorare gli altri strumenti (EA sta su più strumenti)
sibiriyak73: Grazie amico. Come si fa un'operazione al giorno strappare al simbolo corrente e ignorare gli altri strumenti (EA sta su diversi simboli)
- cercare nella storia dell'ordine per il suo numero magico e simbolo, se il tempo di apertura (o chiusura?) dell'ordine corrisponde alla data corrente, allora uscire da OnTick()
- controllare la "nuova barra" su TF D1
il primo modo - più scrittura, ma nel tester, MT4 funzionerà molto velocemente; il secondo modo - 3 linee di codice, ma nel tester "masticherà" il disco rigido e il tempo di test sarà più lungo
Questo codice controlla cosa c'è già nel mercato e cosa c'è nella storia nel caso in cui sia già chiuso oggi.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает флаг торгов сегодня. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+bool isTradeToDay(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersHistoryTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (TimeDay (OrderOpenTime())==Day()
&& TimeMonth(OrderOpenTime())==Month()
&& TimeYear (OrderOpenTime())==Year()) return(True);
}
}
}
}
}
}
k=OrdersTotal();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (TimeDay (OrderOpenTime())==Day()
&& TimeMonth(OrderOpenTime())==Month()
&& TimeYear (OrderOpenTime())==Year()) return(True);
}
}
}
}
}
}
return(False);
}
Mettete un controllo, non più di una volta al giorno.
Saluti. Il problema è che se l'EA vede un trade aperto nel conto, non apre altri trade. È come "hai dei trade aperti sul tuo conto, perché vuoi che faccia questo". Devo spiegargli che non si deve aprire più di un trade su questo strumento(EUR USD per esempio) perché questo EA è aperto su pochi simboli. Penso che sarebbe sbagliato mostrare tutto il codice (è un grande codice con variabili dichiarate, ecc.).
Dov'è l'errore?
Se ci sono molti personaggi, allora ci sono molte "aperture".
Se ci sono molti personaggi, allora ci sono molte "aperture".
Grazie amico. Come si fa un'operazione al giorno strappare al simbolo corrente e ignorare gli altri strumenti (EA sta su diversi simboli)
- cercare nella storia dell'ordine per il suo numero magico e simbolo, se il tempo di apertura (o chiusura?) dell'ordine corrisponde alla data corrente, allora uscire da OnTick()
- controllare la "nuova barra" su TF D1
il primo modo - più scrittura, ma nel tester, MT4 funzionerà molto velocemente; il secondo modo - 3 linee di codice, ma nel tester "masticherà" il disco rigido e il tempo di test sarà più lungo
(EA sta su diversi strumenti)
Ah, penso di aver capito, se hai un EA che sta su più strumenti, allora devi solo aggiungere un controllo che l'ordine appartiene all'EA.
Ah, penso di aver capito, se hai un EA su più strumenti, allora devi solo aggiungere un controllo che l'ordine appartiene all'EA.
Questo codice apre un numero enorme di offerte. L'idea è corretta, ma come implementarla correttamente.
Questo codice apre un numero enorme di scambi. L'idea è corretta, ma come implementarla correttamente.
Hai bisogno di questo
Funzione isTradeToDay().
Questa funzione restituisce la bandiera commerciale per oggi
Cosa si può indovinare da un pezzo di codice qui?
Mettete un controllo, non più di una volta al giorno.
I ragazzi aiutano l'advisor ad aprire un trade al giorno sullo strumento.
Potresti provare questo
Potresti provare questo.
Tutto scritto molto tempo fa ... molto tempo fa.
Questo codice controlla cosa c'è già nel mercato e cosa c'è nella storia nel caso in cui sia già chiuso oggi.
Cosa si può indovinare da un pezzo di codice qui?
Mettete un controllo, non più di una volta al giorno.