Compagni. Ho deciso per amore della pratica di fare un semplice display di assorbimento. Ma alla fine c'era un problema che se cambio il timeframe sul grafico e ritorno al timeframe con l'assorbimento, l'allarme scatta di nuovo. Ho trovato un'opzione per avvisare solo una volta per barra, ma di nuovo tutto si resetta quando cambio timeframes.
if (Bars != ThisBarTrade ) {
ThisBarTrade = Bars; // ensure only one trade opportunity per bar// Trade logic goes here
}
Ecco il codice stesso, senza disegni grafici, solo logica. Come correggerlo?
ticket-3 specialmente, il commercio TK è una sorta di prezzo medio su più ordini) ma come faccio a separare i Buy Tickets dai Sell Tickets? così posso prendere un ordine che è stato aperto 3 baie fa) Anche per vendere
Ho scritto un programma che apre un template (con gli indicatori e l'oggetto grafico di cui ho bisogno) all'avvio, poi analizza i dati e fa trading. quando lo eseguo solo su un grafico, tutto funziona bene. quando lo eseguo in un tester, funziona solo quando viene visualizzato. capisco che il template può essere caricato solo su un grafico aperto visivamente... quindi non funziona in modalità test normale, perché funziona solo sul grafico senza caricare il modello... E per quanto riguarda l'ottimizzazione? Ho un bel po' di parametri, e in qualche modo è molto irragionevole eseguire ogni opzione manualmente con la visualizzazione.
help plz)) come si può risolvere il problema con l'ottimizzazione e il template?
Ma non ho scritto in MQL, ma formalmente, questo è il problema (:
E come si può determinare?
Poiché il numero di valori è molto limitato, possiamo controllarlo con una forza bruta diretta:
#property strict/******************************************************************************/void fun1(intconst A) {
Print("fun1()");
if (A == 0 || A == 1) {
Print("fun1 do!");
}
}
/******************************************************************************/void fun2(intconst A) {
Print("fun2()");
if (A != 2) {
Print("fun2 do!");
}
}
/******************************************************************************/void Гарантия_0_1_2(intconst A) {
switch (A) {
case0:
case1:
case2:
fun1(A);
fun2(A);
break;
default:
Print("Не соблюдены условия (теоремы)");
}
}
/******************************************************************************/voidOnStart() {
for (int A = 0, limit = 4; A < limit; A++) {
Print("Проверяем для A = ", A);
Гарантия_0_1_2(A);
}
}
Qui otteniamo:
22:52:38 Script 3 EURUSDm,H1: loaded successfully
22:52:383 EURUSDm,H1: initialized
22:52:383 EURUSDm,H1: Проверяем для A = 022:52:383 EURUSDm,H1: fun1()
22:52:383 EURUSDm,H1: fun1 do!
22:52:383 EURUSDm,H1: fun2()
22:52:383 EURUSDm,H1: fun2 do!
22:52:383 EURUSDm,H1: Проверяем для A = 122:52:383 EURUSDm,H1: fun1()
22:52:383 EURUSDm,H1: fun1 do!
22:52:383 EURUSDm,H1: fun2()
22:52:383 EURUSDm,H1: fun2 do!
22:52:383 EURUSDm,H1: Проверяем для A = 222:52:383 EURUSDm,H1: fun1()
22:52:383 EURUSDm,H1: fun2()
22:52:383 EURUSDm,H1: Проверяем для A = 322:52:383 EURUSDm,H1: Не соблюдены условия (теоремы)
22:52:383 EURUSDm,H1: uninit reason 022:52:38 Script 3 EURUSDm,H1: removed
Si scopre che sono uguali. Se non ci fossero 3 ma, diciamo, 3 milioni di valori, si potrebbe ancora avere un controllo macchina - restituire i risultati delle funzioni e confrontarli. Se non si trova alcuna differenza per l'intero intervallo, allora sono uguali.
Se si usa un'espressione al posto di una variabile, per esempio una chiamata di funzione, allora l'equivalenza diventa "equivalenza con riserve" a causa del corto circuito del calcolo delle espressioni logiche.
Fatto un indicatore basato su un altro indicatore.
Il primo buffer conta come dovrebbe.
La seconda no: voglio che inizi a contare su ogni barra dopo "line1 > 0".
Questo è fondamentalmente quello che ho fatto nel mio Expert Advisor:
if (line1 > 0 && time ==0){time=Time[i+0];}//сработало предварительное условие входа, записываем времяif (time > 0)shift=iBarShift(Symbol(),Period(),i+time);//находим индекс бара
E dopo "shift >= shet", scatta la condizione di disegno.
Cambio i parametri esterni della variabile "shet", non c'è nessun cambiamento nell'indicatore.
Qualcuno ha già un RSI iMAOnArray pronto all'uso?
Capisco perché nessuno ti ha risposto con molto "aiuto"...
Qualcuno ha già un RSI iMAOnArray pronto all'uso?
ce n'è uno nel kodobase, devi solo cercarlo
Puoi dirmi come separare il biglietto per comprare e vendere separatamente?
ticket=OrderSend("EURUSD",OP_SELL,SellLot,Bid,3,0,0,",MAGICMA,0,Red);
else
{
OrderSelect(ticket-3,SELECT_BY_POS,MODE_TRADES);
OrderClose(ticket-3,SellLot,Ask,3,Red);
}
ticket-3 specialmente, il commercio TK è una sorta di prezzo medio su più ordini) ma come faccio a separare i Buy Tickets dai Sell Tickets? così posso prendere un ordine che è stato aperto 3 baie fa) Anche per vendere
Ciao amici!) Ho un problema:
Ho scritto un programma che apre un template (con gli indicatori e l'oggetto grafico di cui ho bisogno) all'avvio, poi analizza i dati e fa trading. quando lo eseguo solo su un grafico, tutto funziona bene. quando lo eseguo in un tester, funziona solo quando viene visualizzato. capisco che il template può essere caricato solo su un grafico aperto visivamente... quindi non funziona in modalità test normale, perché funziona solo sul grafico senza caricare il modello... E per quanto riguarda l'ottimizzazione? Ho un bel po' di parametri, e in qualche modo è molto irragionevole eseguire ogni opzione manualmente con la visualizzazione.
help plz)) come si può risolvere il problema con l'ottimizzazione e il template?
Punteggio ))))
Ma non ho scritto in MQL, ma formalmente, questo è il problema (:
E come si può determinare?
Poiché il numero di valori è molto limitato, possiamo controllarlo con una forza bruta diretta:
Qui otteniamo:
Si scopre che sono uguali. Se non ci fossero 3 ma, diciamo, 3 milioni di valori, si potrebbe ancora avere un controllo macchina - restituire i risultati delle funzioni e confrontarli. Se non si trova alcuna differenza per l'intero intervallo, allora sono uguali.
Se si usa un'espressione al posto di una variabile, per esempio una chiamata di funzione, allora l'equivalenza diventa "equivalenza con riserve" a causa del corto circuito del calcolo delle espressioni logiche.
Ciao a tutti!
Fatto un indicatore basato su un altro indicatore.
Il primo buffer conta come dovrebbe.
La seconda no: voglio che inizi a contare su ogni barra dopo "line1 > 0".
Questo è fondamentalmente quello che ho fatto nel mio Expert Advisor:
E dopo "shift >= shet", scatta la condizione di disegno.
Cambio i parametri esterni della variabile "shet", non c'è nessun cambiamento nell'indicatore.
Quale può essere il problema?
Codice indicatore:
Ciao a tutti!
Fatto un indicatore basato su un altro indicatore.
Il primo buffer conta come dovrebbe.
La seconda no: voglio che inizi a contare su ogni barra dopo "line1 > 0".
Questo è fondamentalmente quello che ho fatto nel mio Expert Advisor:
E dopo "shift >= shet", scatta la condizione di disegno.
Cambio i parametri esterni della variabile "shet", non c'è nessun cambiamento nell'indicatore.
Quale può essere il problema?
Codice indicatore:
C'è un po' di confusione sull'aggiunta di 0, ma provate in questo modo:
Buon pomeriggio.
Nel terminale, se faccio doppio clic sulla linea dell'ordine, si apre una finestra di modifica.
Ma se il prezzo di apertura di un ordine e il take profit di un altro ordine sono sulla linea, si apre l'ultimo ordine modificato.
Per favore, consigliatemi se mql4 ha una funzione per aprire la finestra di modifica dell'ordine cliccando sull'ordine necessario nell'indicatore?