[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 193
Diubakin: Se fate questo, tutte le stranezze dovrebbero scomparire.
Per rimuovere la condizione "extra", potete fare così:
int i, ot = OrdersTotal();
double min = 1000.0;
int min_ticket=0;
for (i=ot - 1; i>= 0; i--)
{
if (!OrderSelect (i, SELECT_BY_POS)) continue;
if (OrderType()!=OP_BUY) if (OrderType()!=OP_SELL) continue;
if (min <= OrderLots()) continue;
min = OrderLots();
min_ticket=OrderTicket();
}
Come mai... Sulla base di Igor Kim ha fatto qualcosa... Solo una delle tue caratteristiche... il resto è lo stesso...
qualcosa del genere, credo:
E noi lo chiamiamo:
per contare Buy e contare Sell sul simbolo corrente, con Magic
Artyom, naturalmente comincio da Kim, rimuovendo i controlli inutili per me e aggiungendo i compiti necessari per me. Non per reinventare la ruota! Grazie per la correzione, sarò più coraggioso per rimuovere inutili! E non ho bisogno di controllare il mago e il simbolo, perché a volte intervengo "con le mani" e non prima che il multicurrency per me ancora!
borilunad: Artyom, naturalmente vengo da Kim, rimuovendo i controlli inutili e aggiungendo i compiti di cui ho bisogno. Non per reinventare una bicicletta! Grazie per la correzione, sarò più audace per rimuovere inutili! E non ho bisogno di controllare il mago e il simbolo, come a volte intervengo "manualmente" e non prima che il multicurrency per me ancora!
Poi devo controllare se (OrderMagicNumber()==0) ... Questo è un controllo "manuale".
Se vogliamo interferire con altri EA che lavorano con un altro simbolo, possiamo rimuovere il controllo per OrderSymbol().
Ho lasciato i controlli minimi necessari per lavorare su un singolo personaggio, con le proprie posizioni/ordini. Se volete anche toccare ciò che "gestisce", allora dovete aggiungere un controllo per magic==0.
Allora dovreste fare un controllo se (OrderMagicNumber()==0) ... è un controllo per "manuale".
Se vogliamo interferire con altri EA che lavorano con un altro simbolo, possiamo rimuovere il controllo su OrderSymbol().
Ho lasciato i controlli minimi richiesti per lavorare su un simbolo, con le sue posizioni/ordini. Se volete toccare anche quello "a mano", allora dovete aggiungere un controllo per magik==0.
Mi è permesso farlo così com'è! Ma prendo nota, soprattutto con != e il continuum non rallenta affatto! Grazie!
Grazie mille per il vostro aiuto, è tutto a posto. Ma......
1. In alcuni dei cinque minuti, si apre più di 1 ordine.
2. Alcuni ordini sono chiusi da ordini stop il cui prezzo è diverso da quello prescritto nel codice.
Beh, andiamo, allora tutto è semplice - fare lo stesso controllo negli ordini chiusi) E circa il prezzo di chiusura- mi dispiace, è impostato correttamente, e poi il server a che prezzo davvero chiudere.
int start()
{
double Price=iOpen (Symbol (),PERIOD_M5,0)+300*Point;
double SL=NormalizeDouble (Price-300*Point, Digits);
double TP=NormalizeDouble (Price+150*Point, Digits);
int last_order_bar = 0;
int ot = OrdersTotal();
if (ot>0) //если есть ордера в рынке
{
if (OrderSelect (ot-1,SELECT_BY_POS)) //выбрали последний ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний ордер (если он есть)
}
int last_hist_order_bar = 0;
int oht = OrdersHistoryTotal();
if (oht>0) //если есть ордера в рынке
{
if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY)) //выбрали последний закрытый ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний закрытый ордер (если он есть)
}
if (ot==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем бареif (oht==0 || last_hist_order_bar>0) //если закрытых ордеров нет либо последний из закрытых был открыт не на текущем бареif (Bid>=Price) //если текущая цена доползла до цены открытияint Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
}
alsu: Beh, è facile fare lo stesso controllo negli ordini chiusi) E riguardo al prezzo di chiusura - mi dispiace, è impostato correttamente, e poi sta al server a quale prezzo può essere chiuso.
Correggere il mio errore di battitura - la seconda volta
if (oht>0) //если есть ордера в рынке
{
if (OrderSelect (oht-1,SELECT_BY_POS, MODE_HISTORY)) //выбрали последний закрытый ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний закрытый ордер (если он есть)
}
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.
Se fate questo, tutte le stranezze dovrebbero scomparire.
Per rimuovere la condizione "extra", potete fare così:
Come mai... Sulla base di Igor Kim ha fatto qualcosa... Solo una delle tue caratteristiche... il resto è lo stesso...
qualcosa del genere, credo:
E noi lo chiamiamo:
per contare Buy e contare Sell sul simbolo corrente, con Magic
Per rimuovere la condizione "extra", potete fare quanto segue
Igor, hai ragione. È più leggibile in questo modo...
Artyom, naturalmente vengo da Kim, rimuovendo i controlli inutili e aggiungendo i compiti di cui ho bisogno. Non per reinventare una bicicletta! Grazie per la correzione, sarò più audace per rimuovere inutili! E non ho bisogno di controllare il mago e il simbolo, come a volte intervengo "manualmente" e non prima che il multicurrency per me ancora!
Poi devo controllare se (OrderMagicNumber()==0) ... Questo è un controllo "manuale".
Se vogliamo interferire con altri EA che lavorano con un altro simbolo, possiamo rimuovere il controllo per OrderSymbol().
Ho lasciato i controlli minimi necessari per lavorare su un singolo personaggio, con le proprie posizioni/ordini. Se volete anche toccare ciò che "gestisce", allora dovete aggiungere un controllo per magic==0.
Allora dovreste fare un controllo se (OrderMagicNumber()==0) ... è un controllo per "manuale".
Se vogliamo interferire con altri EA che lavorano con un altro simbolo, possiamo rimuovere il controllo su OrderSymbol().
Ho lasciato i controlli minimi richiesti per lavorare su un simbolo, con le sue posizioni/ordini. Se volete toccare anche quello "a mano", allora dovete aggiungere un controllo per magik==0.
Grazie mille per il vostro aiuto, è tutto a posto. Ma......
1. In alcuni dei cinque minuti, si apre più di 1 ordine.
2. Alcuni ordini sono chiusi da ordini stop il cui prezzo è diverso da quello prescritto nel codice.
Beh, è facile fare lo stesso controllo negli ordini chiusi) E riguardo al prezzo di chiusura - mi dispiace, è impostato correttamente, e poi sta al server a quale prezzo può essere chiuso.
E che dire del prezzo di chiusura - scusate, è impostato correttamente, e poi sta al server a quale prezzo si chiuderà davvero.
Molte grazie ancora per tutto il vostro aiuto. Ma.....
Ho aperto solo un ordine in un periodo di un anno, cioè il primo ordine in cui mi sono imbattuto.
E ci sono molte altre candele con parametri per aprire un ordine in questo periodo.
Non sarò in grado di chiuderlo, grazie.
Molte grazie ancora per tutto il vostro aiuto. Ma.....
Ho aperto un solo ordine durante il periodo di un anno, cioè il primo ordine in cui mi sono imbattuto.
E ci sono molte altre candele con parametri per aprire un ordine in questo periodo.
Grazie.
Correggere il mio errore di battitura - la seconda volta
Ho bisogno di
Correggere il mio errore di battitura - la seconda volta
Si suppone che sia così.