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

 
Quanti cicli di test può sopportare un hard disk? Nel senso di quanto velocemente morirà? Ci sono stati casi simili?
 
macleta:

Ciao, voglio chiudere le posizioni diversamente dirette quando il profitto =0 Diverso numero di posizioni di acquisto e vendita, diverse dimensioni del lotto.

Cosa c'è di sbagliato nella funzione di ricerca del prezzo medio, cioè il punto di profitto zero?

double AveroProf(string sy="", int op=-1, int mn1=-1) 
   {
 

   double Buylots=0;
   double Buysum=0;
   double Selllots=0;
   double Sellsum=0;
 
   double zeroprice=0;
 
   for (int i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=mn1) continue;
      if (OrderType()==OP_BUY)
      {
       Buylots+=OrderLots();
       Buysum+=OrderLots()*OrderOpenPrice();
      }
      if (OrderType()==OP_SELL)
      {
       Selllots+=OrderLots();
       Sellsum+=OrderLots()*OrderOpenPrice();
      }
   
   }
   if ((Buylots-Selllots)>0)
   zeroprice=NormalizeDouble((Buysum - Sellsum)/(Buylots - Selllots),_Digits);

   return( zeroprice);
   }
 
Vladimir Pastushak:

Credo che questo codice funzioni solo per ordini diversamente diretti 2

Se ci saranno più ordini di acquisto e vendita e tutti con prezzi aperti diversi, sembra che questo non funzioni - è necessario prendere in considerazione il profitto dell'ordine e il valore del punto nella valuta

Ho guardato quello che ho a portata di mano, non ho trovato nulla, ma so che ho testato questo codice

sembra che ci sia un indicatore in QB che calcola correttamente i livelli per gli ordini diversamente diretti - l'ho cercato e trovato l'anno scorso

 
macleta:

Salve, voglio chiudere le posizioni diversamente dirette quando il profitto =0 Diverso numero di posizioni di acquisto e vendita, diverse dimensioni del lotto.

Cosa c'è di sbagliato nella funzione di ricerca del prezzo medio, cioè il punto di profitto zero?

Se vuoi mettere degli stop, è meglio non farlo su posizioni multidirezionali. Anche se con uno spread stretto, ovviamente, potrebbe funzionare bene. Ma anche queste società di intermediazione hanno momenti in cui lo spread salta. Ecco perché la variante migliore è quella di calcolare il profitto e chiudere le posizioni quando è un po' più di 0(lo slippage è ancora considerato). Cioè, lavorare con il momento attuale del mercato.
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Igor Makanu:

Credo che questo codice funzioni solo per ordini diversamente diretti 2

Se ci saranno più ordini di acquisto e vendita e tutti con prezzi aperti diversi, sembra che questo non funzioni - è necessario prendere in considerazione il profitto dell'ordine e il valore del punto nella valuta

Ho guardato quello che ho a portata di mano, non ho trovato nulla, ma so che ho testato questo codice

sembra che ci sia un indicatore in QB che calcola i livelli corretti per gli ordini opposti - ho cercato l'anno scorso e l'ho trovato

Allora non hai controllato bene... Questo è un classico calcolo del 100% 0

 
Vladimir Pastushak:

Quindi non hai controllato bene... Questo è un classico calcolo del 100% 0

Beh, non ho nemmeno intenzione di discutere, torna sulla terra, prova a controllare dove avrai un livello di pareggio se lo metti dall'alto verso il basso sul grafico

1. Comprare - comprare - comprare - vendere - vendere - vendere

2. comprare - vendere - vendere - vendere - comprare - comprare

questo è il calcolo correttohttps://www.mql5.com/ru/code/10007 versione 2, questo è il calcolo da usare

      if(BuyLots>0) BuyPrice = Bid - ((BuyProfit + SellProfit - MyProfit) / (TickValue * BuyLots) * Point); //уровень безубытка для всех BUY ордеров
      if(SellLots>0) SellPrice = Ask + ((SellProfit + BuyProfit - MyProfit) / (TickValue * SellLots) * Point); //уровень безубытка для всех SELL ордеров


meglio controllare il tuo calcolo classico

 
Le citazioni sono memorizzate nella cartella tester/history?
 

Ciao, aiuta un principiante con un compito semplice. L'indicatore in una finestra separata mostra numeri frazionari 0.123456 1.123456 e ho bisogno di numeri interi come 123 1123

Qualcuno vuole darmi un suggerimento su come risolvere questo problema?

 
potom:

Ciao, aiuta un principiante con un compito semplice. L'indicatore in una finestra separata mostra numeri frazionari 0.123456 1.123456 e ho bisogno di numeri interi come 123 1123

Qualcuno vuole darmi un suggerimento su come risolvere questo problema?

int value = (int) 0.12456789*1000000;

La cosa più semplice che mi è venuta in mente)

 
Konstantin Nikitin:
Se vuoi mettere degli stop, è meglio non farlo su posizioni multidirezionali. È un'ottima idea mettere degli stop su queste posizioni. Ma anche queste società di intermediazione hanno momenti in cui lo spread salta. Ecco perché la variante migliore è quella di calcolare il profitto e chiudere le posizioni quando è un po' più di 0 (lo slippage è ancora considerato). Cioè, lavorare con il momento attuale del mercato.

Provando a piramidare, costruendo con un lotto più piccolo sulla tendenza ma con apertura opposta.

Grazie a tutti coloro che hanno aiutato.

Motivazione: