[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 529

 
Rimosse le barre, aggiunti gli ordini pendenti in X incrementi dal prezzo, l'unica cosa rimasta è aprire immediatamente gli ordini chiusi individualmente invece di aspettare la chiusura di tutti e 4 gli ordini e il calcolo dei lotti a seconda della % di equity, aiutatemi a risolvere queste 2 sfumature
Ecco come appare ora:

//+------------------------------------------------------------------+
//| mo_bidir.mq4
//| Funziona meglio in un lasso di tempo di 5M
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010 - Monu Ogbe"

#define MAGIC 1234
#define IDENT "mo_bidir"

extern double lots = 1;
extern double stop_loss = 76; //
extern double take_profit = 750; //
extern int steps = 5; // passo d'ordine pendente

int start(){

se (OrdiniTotali() == 0){
OrderSend(Symbol(), OP_BUY, lots,Ask, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELL, lots,Bid, 3, Bid + take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
OrderSend(Symbol(), OP_BUYSTOP, 0.5*lots,Ask+steps*Point, 3, Ask - stop_loss * Point, Bid + take_profit * Point, IDENT, MAGIC, 0, Blue);
OrderSend(Symbol(), OP_SELLSTOP, 0.5*lots,Bid-steps*Point, 3, Bid + take_profit * Point, Ask - take_profit * Point, IDENT, MAGIC, 0, Red);
}
ritorno(0);
}
File:
 
belck:
Alla ricerca di un codice Breakeven sulla storia. può avere. condividere.
Ho un codice Breakeven, ma funziona da ordini aperti.
Ho un EA che chiude la perdita al segnale opposto, e si apre su un segnale. e ora è necessario avere questo codice Breakeven per ricordare quanto in deficit e passato l'informazione, in modo che il secondo, ecc ordini hanno già visto sul grafico la linea di profitto zero, tenendo conto delle perdite passato. L'Expert Advisor non ha uno stop loss, il che significa che la chiusura di un'operazione perdente non avviene tramite uno stop loss.


Ogni volta che la sposti al prezzo richiesto (breakeven con una chiusura), e non cancellarla (la linea) quando chiudi un ordine e vedi il vecchio prezzo nell'ordine successivo
 
belck:
Cerco un codice di pareggio della storia. forse qualcuno ne ha uno. per favore condividilo.
Ho un codice di Breakeven, ma è basato sugli ordini aperti.
Ho un buon ordine di lavoro quando c'è una perdita su un ordine e dovrebbe aprirsi quando l'ordine raggiunge il punto di pareggio. Gli ordini hanno già visto la linea dello zero sulla linea del profitto sul grafico tenendo conto delle perdite precedenti. L'Expert Advisor non ha uno stop loss, il che significa che la chiusura di un'operazione perdente non avviene tramite uno stop loss.

Se ho capito bene, parte della tua domanda è la contabilizzazione delle perdite totali su operazioni consecutive perdenti del tuo EA per un ulteriore confronto con il livello di profitto sugli attuali ordini di mercato per impostare la linea di pareggio?
 
FAQ:

Ogni volta che lo sposti al prezzo richiesto (breakeven alla chiusura), e non cancellarlo (la linea) quando chiudi l'ordine e vedi il vecchio prezzo nell'ordine successivo

non è facile.

Non posso implementarlo da solo.

Voglio che la linea appaia sui trade perdenti in modo da poter chiudere quando viene raggiunta.

Cioè, ho bisogno di una linea che sarà disegnata solo quando ci sono ordini perdenti, ma questa linea sarà disegnata in base al lotto di un trade aperto e alla storia precedente di trade perdenti.
 
Roman.:
Se ho capito bene, la parte della tua domanda è di prendere in considerazione la perdita totale dei successivi trade perdenti del tuo EA e confrontarla con il livello di profitto degli attuali ordini di mercato per impostare la linea di pareggio?

Non ho linee di stop, cioè nessuno stop loss e nessun take profit.

Voglio vedere la linea del prezzo, dove devo andare per chiudere l'affare in modo tale che i precedenti ordini chiusi siano sovrapposti.

Ho bisogno di un blocco dietro il blocco di partenza che conterà e trasferirà le informazioni al blocco di partenza, e userò queste informazioni per chiudere l'affare quando raggiunge questa linea di prezzo.

 
Avete bisogno di una variabile globale, fatela diventare un Terminale globale, o un oggetto grafico - allora sarà visibile solo su questo grafico, scrivetela in un file se necessario, o nel registro, o in memoria direttamente. Ci sono molte opzioni.
 
FAQ:
Avete bisogno di una variabile globale, fatela diventare un Terminale globale, o un oggetto grafico - allora sarà visibile solo su questo grafico, scrivetela in un file se necessario, o nel registro, o in memoria direttamente. Ci sono molte varianti.
è questa la tua risposta a me?
 
belck: Ma non posso scrivere il blocco Breakeven con la storia stessa.

Ecco la mia sezione di codice - responsabile della contabilizzazione della perdita totale dei trade perdenti consecutivi di questo particolare EA (secondo il mago). L'ho fatto per la mia variante di rete Avalanche - puoi modificarlo secondo le tue esigenze - il codice è commentato...

Variabili globali

double Current_Loss, Sum_Loss;     // текущий и суммарный убыток
int start()    // -----------------------СТАРТ ЭКСПЕРТА---------------
{

//---------------------расчет по истории ордеров номера очередной итерации----------------------------------------------- 
  Iteration = 0; // зануляем инерации перед их учетом в цикле по истории
  Sum_Loss = 0;  // суммарный убыток по этим итерациям

datetime 
Time_at_History_Current = 0,
Time_at_History_Previos = 0;     
 
 if(OrdersHistoryTotal() != 0)
   {
    for(int counter = OrdersHistoryTotal()-1; counter >= 0; counter--)
      {
       OrderSelect(counter, SELECT_BY_POS, MODE_HISTORY);
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
          if(OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
             if(OrderProfit() < 0) // если убыток по выбранному ордеру, то считаем суммарный и записываем время закрытия ордера
                                   // для последующего его анализа при подсчете количества итераций
                {
                 double lastLoss = OrderProfit();
                 Sum_Loss=Sum_Loss+lastLoss;  // считаем общий убыток по закрытым подряд убыточным ордерам
                 Time_at_History_Current = OrderCloseTime();
                } 
             
             //Print(" Time_at_History_Current_в цикле = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS));
             //Print(" Time_at_History_Previos_в цикле = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
             
             if(Time_at_History_Current != Time_at_History_Previos) // если они не равны, то считаем итерации и делаем их равными
               {
                Time_at_History_Previos = Time_at_History_Current ;
                Iteration++;
                //Print("Iteration at History в условии сравнения  = ",  Iteration);
               }   
             else // они равны, то проверяем, дополнительно, наличие профита по выбранному следующему ордеру и выходим из цикла
               {
                if(OrderProfit() >= 0)
                  break;
               }
            }
         }
      }
   }
 //Print("Iteration at History = ",  Iteration, " Time_at_History_Current = ", TimeToStr(Time_at_History_Current, TIME_DATE|TIME_SECONDS),
 //      " Time_at_History_Previos = ", TimeToStr(Time_at_History_Previos, TIME_DATE|TIME_SECONDS));
...
...
}// конец старт   

Dopo questa sezione di codice, si fa anche un loop degli ordini aperti di questo stesso EA e si calcola il loro profitto totale. Poi si confronta questo valore con la variabile

Sum_Loss

e prendere una decisione.

 
belck:
Cerco un codice di pareggio della storia. forse qualcuno ne ha uno. per favore condividilo.
Ho un codice di Breakeven, ma è basato sugli ordini aperti.
Ho un buon ordine di lavoro quando c'è una perdita su un ordine e dovrebbe aprirsi quando l'ordine raggiunge il punto di pareggio. Gli ordini hanno già visto la linea dello zero sulla linea del profitto sul grafico tenendo conto delle perdite precedenti. L'Expert Advisor non ha uno stop loss, il che significa che la chiusura di un'operazione perdente non avviene tramite uno stop loss.

Calcola il profitto totale di tutte le compravendite chiuse e salvalo in una variabile, per esempio, TotalCloseProfit. E poi usate il seguente pezzo di codice, senza alcuna grafica o altri espedienti:

if (TotalCloseProfit) < 0.0) { // Имеем убыток по закрытым позам
  if ((AccountEquity() + TotalCloseProfit) >= AccountBalance()) { // Достигли безубытка
    // Здесь какой-то код, который необходимо выполнить при достижении безубытка
  }
}
 
utyff:


Ho dato un'occhiata al registro.

Questo sembra essere il motivo, ma non so cosa significhi. Qualcuno può spiegare? E come risolvere il problema?

Non è un errore. Gli errori nel log sono marcati con icone rosse, non gialle.
Motivazione: