Domanda 1. Devo usare MyPips in candela, in queste funzioni? bool BULL4()
Sì. Tuttavia, l'istruzione if è corretta nella funzione BULL4()? Cioè, sta cercando la candela che sta calcolando?
Wodzuuu:
E ho scritto programma per me è buono :) come circa voi?
È tuo, quindi deve essere buono per te, non per me.
Alcuni commenti:
bool CheckForCloseBULL4()
{
int i;
for(i=OrdersTotal()-1;i>=0;i--)
if( ! OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ) continue;
if( OrderMagicNumber() == MAGICMA1 && OrderSymbol() == Symbol() && OrderType() == OP_BUY )
if(OrderOpenPrice()+8*MyPips < Ask) return(true);
elsereturn(false); // <-- the else here is wrong. Use {} if you are unsure what is processed where
}
int OpenOrders_BULL4(string symbol)
{
int buys=0;
for(int i=0;i<OrdersTotal();i++) // <-- do it like you do it in the other loops!
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; // <-- break? Why not using always the same code for the same thing?
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA1) // Look at the for loop you used in CheckForCloseBULL4().
{
if(OrderType()==OP_BUY) buys++; // <-- why this additional if? Simplify it to:
} // if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA1 && OrderType()==OP_BUY) buys++;
}
return(buys);
}
Non ho detto che l'altro è sbagliato nella funzione CheckForCloseBULL41(), perché non era formulato bene. Non hai cambiato nulla. Se più di uno degli ordini aperti corrisponde al sottostante, avrai problemi perché il ciclo non passa attraverso tutti gli ordini.
Non hai bisogno delle bandiere di segnalazione finché apri nuovi ordini solo su un numero specifico di ordini già aperti. Questo impedisce anche al codice di aprire altri ordini.
void start()
{
bool SignalBULL41Executed; //<-- if defined inside the start function, the flags get reset with every tick.bool SignalBULL42Executed; // define it outside in global scope.if(Fun_New_Bar()==true)
{
SignalBULL41Executed=false;
SignalBULL42Executed=false;
}
if(BULL4() && BULL41send() && !SignalBULL41Executed && OpenOrders_BULL4(Symbol())==0)
{
OpenBULL41();//do open buy position //<-- As far as I remember, you defined this as bool. Do only set the flag, if the function returns true.
SignalBULL41Executed=true; // change to: if(OpenBULL41())SignalBULL41Executed=true;
}
Le correzioni di cui sopra sono per le bandiere. Ma la domanda aperta è: ne hai bisogno? Se aprite solo un nuovo ordine, se un numero specifico di ordini è già aperto, probabilmente non ne avete bisogno. Questo è ciò che intendevo con l'espressione contrassegnata in giallo:
Penso chela bandieranon sia necessaria,ma può essereutileun giorno.
Comeavere due EAin un unicoEA? Ho fattocopie delBULL4EAe cambiatoilBULL6idexela spaziatura pips. Copiare EA Bull4+EABull6 troppo nuovo EA (tutto dopolacifra()) Fare le modificheall'interno della funzionestart () e magicma2...
Ilmio EA funziona molto bene, gli scenarinon interferiscono tra loro. Sono felice.
Volevoringraziarviper il vostro aiuto,senza il vostro aiutoe soprattutto il vostro supportoKroninnon avrei scritto.
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.
Domanda 1. Devo usare MyPips in candela, in queste funzioni? bool BULL4()
Sì. Tuttavia, l'istruzione if è corretta nella funzione BULL4()? Cioè, sta cercando la candela che sta calcolando?
E ho scritto programma per me è buono :) come circa voi?
È tuo, quindi deve essere buono per te, non per me.
Alcuni commenti:
Correggo gli ultimi errori
Aggiungo il secondo acquisto
all'apertura:
Open e CheckForClose e Close lo stesso codice come per BULL41 (solo pip diversi)
La funzione di avvio è così:
E ora ho bisogno di flag, resettare i segnali e cambiare la funzione di inizio
La mia immaginazione dice:
Nuova barra:
e l'inizio è così
Il codice funziona ma forse ho qualche errore
Mi manca ResetSignals() quindi non funziona bene
Correggo gli ultimi errori
...
...
...
Il codice funziona ma forse ho qualche errore
Non ho detto che l'altro è sbagliato nella funzione CheckForCloseBULL41(), perché non era formulato bene. Non hai cambiato nulla. Se più di uno degli ordini aperti corrisponde al sottostante, avrai problemi perché il ciclo non passa attraverso tutti gli ordini.
Non hai bisogno delle bandiere di segnalazione finché apri nuovi ordini solo su un numero specifico di ordini già aperti. Questo impedisce anche al codice di aprire altri ordini.
La tua funzione Fun_New_Bar() non è corretta.
1. altro problema
se questo non è corretto cercherò di nuovo.
2. Nuovo problema della barra
3. problema del segnale di reset
se ho scritto male i punti 2 e 3, non avrò idee per risolverli, chiederò indicazioni più grandi se posso.
1. Altrimenti il problema
è risolto
2. Problema della nuova barra
Corretto
3. problema del segnale di reset
Le correzioni di cui sopra sono per le bandiere. Ma la domanda aperta è: ne hai bisogno? Se aprite solo un nuovo ordine, se un numero specifico di ordini è già aperto, probabilmente non ne avete bisogno. Questo è ciò che intendevo con l'espressione contrassegnata in giallo:Ma non preoccupatevi, funziona anche con le bandiere e potete eliminarle dopo, quando si scopre che sono obsolete.
Penso che la bandiera non sia necessaria, ma può essere utile un giorno.
Come avere due EAin un unico EA?
Ho fatto copie del BULL4 EA e cambiato il BULL6 idex e la spaziatura pips.
Copiare EA Bull4 + EA Bull6 troppo nuovo EA (tutto dopo la cifra ()) Fare le modifiche all'interno della funzione start () e magicma2...
Ilmio EA funziona molto bene, gli scenari non interferiscono tra loro. Sono felice.
Volevo ringraziarvi per il vostro aiuto, senza il vostro aiuto e soprattutto il vostro supporto Kronin non avrei scritto .
Il soggetto è la fine, secondo me.
Saluti
Ilmio EA funziona molto bene, gli scenari non interferiscono tra loro. Sono felice.
Volevo ringraziarti per il tuo aiuto, senza il tuo aiuto e soprattutto il tuo supporto Kronin non lo scriverei.
Non c'è di che. Grazie per il bel feedback.