Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 221

 
ax00071: Il log mostra un tentativo di chiudere buy2, ticket sconosciuto per la funzione orderclose. Codice a memoria perché sono al lavoro

Ah. Scrivo a memoria perché sono anche al lavoro. Prova: e Ticket confronta con quello del rapporto orderclose. Nel tester sembra essere 0, 1, 2, 3, ....

RefreshRates(); // Это обязательно ДО OrderSelect() и лучше в таком виде: while (! RefreshRates()) ;
for(int i=OrdersTotal()-1; i>=0; i--)
  if (! OrderSelect(i,SELECT_BY_POS)) continue;
  Ticket=OrderTicket(); 
  Lot   =OrderLots();

  // Сообщение о попытке следует выдавать ДО ее осуществления, т.к. попытка может что-то изменить
  Alert ("Попытка закрыть Buy Ticket=",Ticket, "  Lot=",Lot);  // Кажется Alert в тестере бестолкова, попробуйте Print
  Ans=OrderClose(Ticket,Lot,OrderClosePrice() ... );
}

 
novikov433:

Voglio imparare a fare un EA. Forse il mercato cambierà e dovrò pagare di più, per esempio, per cambiare un po' l'algoritmo?

Non so se posso davvero fare un TS in un qualsiasi costruttore di gufi, ma preferirei capire le funzioni di base come fare uno stop in un certo posto o ordinare un ordine per commerciare in certi giorni.

Non ho idea di cosa fare con 1,2,3 ecc. anche nel costruttore, e perché è importante collegare tutto in quest'ordine con le frecce. Chi offre una formazione mql 4 dalla A alla Z e non come i guerrieri di Internet che creano corsi che non spiegano nulla in dettaglio perché succede così, in parole, non farai nulla di nuovo da solo, dovrai solo copiare il loro codice .... Voglio dire, sanno quale ordine è responsabile di cosa, e non hanno puntato a caso ..... Bene, lasciate che i professionisti facciano piramidi, lotto dinamico, smart stop; il mio compito è diverso - scaricare i filtri necessari e capire l'essenza della formazione del trend. Grazie per il vostro aiuto!

Avete solo bisogno di documentazione, che è disponibile, e dovete essere in grado di leggere e capire ciò che avete letto. Se non siete riusciti a capirlo dalla prima volta, leggete più volte e preferibilmente a un ritmo più lento, in modo che il vostro cervello abbia il tempo di riconoscere il significato di ciò che avete letto.

E dopo, l'immaginazione ha mano libera.

Voglio aprire un ordine a condizione che Apri la sezione "Trade Functions" della documentazione e trova la funzione che apre l'ordine e scrivila secondo la sintassi...

Oh, sì... devi soddisfare la condizione... ...aprite la sezione "Operators", leggete"Conditional if-else statement" e scrivete la condizione necessaria.

Quando questo è fatto, si legge la documentazione dall'inizio alla fine per capire cosa c'è nel linguaggio, cosa si può ottenere.

Торговые функции - Справочник MQL4
Торговые функции - Справочник MQL4
  • docs.mql4.com
Торговые функции - Справочник MQL4
 
di nuovo io :)
Ha scritto una funzione che permette l'apertura di non più di n ordini in 1 giorno.
Ora la funzione sta prosciugando il deposito - cioè gli ordini aperti su ogni tick.

Dove ho sbagliato di nuovo?).

int OrderMax = 3; // numero massimo di ordini che possono essere aperti durante 1 giorno.
void OpenOrders()
{
per (int i = 1; i <= 5; i++)
{
se (DayOfWeek() == i)
{
int count_max = 0;
se (count_max <= OrderMax)
{
for(int cn = OrdersTotal()-1; cn>=0; cn--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
count_max++;
}
}
}
}
}
 
Ragazzi, è possibile aprire ordini su altre coppie con un EA? Per esempio, un EA sta solo su EURAUD e a condizione di aprire un trade sulle coppie EURAUD e GBPUSD. Quale dovrebbe essere la condizione, se possibile?
 
ivan-baaton:
Ancora io:)
Ho scritto una funzione che permette di aprire non più di n ordini in 1 giorno.
Ora questa funzione sta perdendo il deposito, cioè gli ordini vengono aperti su ogni tick.

Dove ho sbagliato di nuovo?).

int OrderMax = 3; // numero massimo di ordini che possono essere aperti durante 1 giorno.
void OpenOrders()
{
per (int i = 1; i <= 5; i++)
{
se (DayOfWeek() == i)
{
int count_max = 0;
se (count_max <= OrderMax)
{
for(int cn = OrdersTotal()-1; cn>=0; cn--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
count_max++;
}
}
}
}
}

Secondo me, l'approccio non è affatto logico. Perché definire il giorno della settimana? Che differenza fa che giorno è, se la condizione dovrebbe dire "non aprire più di xxx ordini oggi"?

Mi sembra più ragionevole contare gli ordini aperti oggi e mettere una condizione appropriata nella condizione.

                     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
                     count_max++; 
manca la definizione della data di apertura dell'ordine.
 

Rustam Bikbulatov:
Ребята, можно ли с помощью одного советника открывать ордера на других парах? Например Советник только стоит на паре EURAUD и при условии открытии открывается сделка на парах EURAUD и GBPUSD. Какое должно быть условие если будет возможность?

Può.

Solo nel tester non funziona.

int  OrderSend(
   string   symbol,              // символ
   int      cmd,                 // торговая операция
   double   volume,              // количество лотов
   double   price,               // цена
   int      slippage,            // проскальзывание
   double   stoploss,            // stop loss
   double   takeprofit,          // take profit
   string   comment=NULL,        // комментарий
   int      magic=0,             // идентификатор
   datetime expiration=0,        // срок истечения ордера
   color    arrow_color=clrNONE  // цвет
   );
 
Alexey Viktorov:
Lo fa.

Solo nel tester non funziona.


Come li elencate, virgola o &&?
 
Rustam Bikbulatov:

Come li elencate? virgola o &&?

Illoro è un cosa? un elenco di personaggi? o cosa?

Ogni OrderSend ha il suo singolo carattere. Niente virgole o altre cose...

 
Alexey Viktorov:

Cos'è illoro? È per elencare i personaggi o cosa?

Ogni OrderSend ha il suo singolo carattere. Niente virgole o altre cose...


elenco coppie
 
LRA:

Ah. Scrivo a memoria perché sono anche al lavoro. Prova: e Ticket confronta con quello che l'ordine ha nel rapporto. Nel tester sembra essere 0, 1, 2, 3, ....

Grazie per l'avvertimento )) Sono un babbeo ... ... alla chiusura ho avuto la condizione di chiudere l'affare alle 22:00 di venerdì, senza alcuna condizione aggiuntiva per controllare il tipo di affare. L'affare stesso si è chiuso un paio d'ore prima. Così, quando sono arrivate le 22:00, l'Expert Advisor ha iniziato a inviare ordini per chiudere un ordine che era già chiuso ...