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

 
Alexey Viktorov #:

Tutti gli indicatori funzionano nello stesso thread. Di conseguenza, ogni indicatore consuma alcune risorse della CPU. Metti 100500 indicatori con gli stessi parametri e cosa succederà al terminale? Se 300 grammi di patate sono sufficienti per rendervi felici nei prossimi 20 minuti, ma ne avrete un sacco pieno sulle spalle. Come ti piace?

Capisco. Grazie per la spiegazione.
 

Puoi dirmi se ho visto una sottofinestra dell'indicatore disegnata in questo stile da qualche parte in kodobase?

Non riesco a trovarlo


 
makssub #:

Buon pomeriggio. Ho letto di Vail. Non so aggiungere o sottrarre.
Non posso dire nulla sulla gestione del denaro, non l'ho provata.
Ho allegato l'ultima versione. Ma ho già incasinato tutto per me)
Order1(2) il profitto dell'ordine selezionato
Order1(3) il lotto dell'ordine selezionato

Non riuscivo a capire il codice.

Cercherò di spiegare. Spero che conosciate i biglietti degli ordini necessari, rende le cose molto facili. Le condizioni. C'è un ordine di profitto con un profitto maggiore di zero, c'è un ordine di perdita con un profitto minore di zero e maggiore del profitto, e c'è una condizione per la chiusura parziale di un ordine di perdita.

In generale, se gli ordini sono diretti in modo diverso, si può chiudere attraverso OrderCloseBy senza pensarci due volte. L'ordine di perdita più piccolo sarà chiuso uguale all'ordine di profitto più piccolo. Abbiamo bisogno solo di 2 biglietti.

Possiamo renderlo più complicato, ottenere OrderProfit() (questo è il denaro) e OrderLots() (questo è il volume in lotti) di entrambi gli ordini. Calcolare il rapporto tra profitto e perdita e chiudere l'ordine redditizio e questa parte in lotti dell'ordine perdente. Prima di ottenere i profitti e i lotti di un ordine, deve essere preselezionato un OrderLots().

// ticket1 тикет прибыльного ордера, ticket2 убыточного

bool sel1=OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES);
double profit1=OrderProfit();
double  Lts1=OrderLots();
double price1=0; if(OrderType()==0)price1=Bid; else price1=Ask;

bool sel2=OrderSelect(ticket2,SELECT_BY_TICKET,MODE_TRADES);
double profit2=OrderProfit();                     // profit1 < profit2 можно условием впереди поставить
double  Lts2=OrderLots();
double price2=0; if(OrderType()==0)price2=Bid; else price2=Ask;

double ratio=fabs(profit1/profit2); // или если ratio<1, и берем модуль, у нас один профит меньше нуля
double lotsl=Lts2*ratio;

 Alert("Попытка закрыть прибыльный ордер тикет1 ",ticket1,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
 bool    Ans1=OrderClose(ticket1,Lts1,price1,2);      // Закрытие прибыльного ордера
         if(Ans1==true) // Получилось :)
         Alert("Закрыт ордер тикет1 ",ticket1,". профит1 ",profit1); 
else Alert(" Ошибка при закрытии ордера  тикет1",ticket1," Код ошибки ",GetLastError());

Alert("Попытка закрыть часть ордера тикет2 ",ticket2,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
bool     Ans2=OrderClose(ticket2,lotsl,price2,2);      // Закрытие убыточного ордера частично
         if(Ans2==true) // Получилось :)
         Alert("Закрыт частично ордер тикет2 ",ticket2,". профит2 ",profit2); 
else Alert(" Ошибка при закрытии ордера  тикет2",ticket2," Код ошибки ",GetLastError());

 

  
 


Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
  • book.mql4.com
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
 
Vitaly Muzichenko #:

Puoi dirmi se ho visto una sottofinestra dell'indicatore disegnata in questo stile da qualche parte in kodobase?

Non riesco a trovarlo.


Vedere gli indicatori di Scriptor

Scriptor
Scriptor
  • 2019.02.10
  • www.mql5.com
Профиль трейдера
 
Artyom Trishkin #:

Vedere gli indicatori di Scriptor.

Grazie, l'ho trovato, ma è un po' diverso, solo su una riga

 
Vitaly Muzichenko #:

Grazie, l'ho trovato, ma è un po' diverso, è solo per una riga.

Credo che ci siano anche diverse file.

 
Artyom Trishkin #:

Credo che ci sia anche qualche fila.

Ci sono più di 1500 codici, devo averlo perso, purtroppo

 
Vitaly Muzichenko #:

Grazie, l'ho trovato, ma è un po' diverso, solo su una riga.

Vitaly, mi sorprendi. Tutti questi indicatori sono basati sulla costruzione di DRAW_ARROW con il codice appropriato. Nel tuo disegno i quadrati sono il codice 167

      ObjectSetInteger(0, up_arrow, OBJPROP_ARROWCODE, 167);    // установим код стрелки 

E il livello della serie è impostato come il gatto di Artyom o i desideri del gatto. Può essere in numeri interi o in decimi.

Iniziare e chiedere cosa non funziona.

 
Vitaly Muzichenko #:

Puoi dirmi se ho visto una sottofinestra dell'indicatore disegnata in questo stile da qualche parte in kodobase?

Non riesco a trovarlo


DRAW_ARROW non è buono?

8 buffer se si disegna con un colore, 16 se con due.

o DRAW_COLOR_LINE con linee più spesse.

Il senso è che le linee sono sempre allo stesso livello (primo 1 secondo 2 ecc.), cambia solo il colore.

 
Alexey Viktorov #:

Vitaly, mi sorprendi. Tutti questi indicatori sono basati sul disegno DRAW_ARROW con un codice corrispondente. Nella tua immagine i quadrati sono il codice 167

E il livello della fila è impostato come il gatto o il gatto di Artyom desidera. Può essere in numeri interi o in decimi.

Iniziare e chiedere cosa non funziona.

Non capisco il principio del rientro dal basso in modo che sia uguale in più righe

È qui che non posso iniziare