[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 751

 
ToLik_SRGV:

Il bug è ovvio; apre le posizioni su ogni tick, dato che l'ordine perdente nella storia non va da nessuna parte, quindi lo trova su ogni tick e riempie i valori delle variabili di controllo con gli stessi valori, e poi scatta il blocco di apertura delle operazioni.


Come fare in modo che non cerchi di nuovo, o meglio non cerchi qualcosa che è già stato elaborato

 
FoxUA:

Come posso fare in modo che non lo cerchi di nuovo, o meglio che non cerchi qualcosa che è già stato lavorato?

Togliete questo blocco:

for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
     {
 OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol()) 
{ if (OrderType() == OP_BUY )  {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1; 
if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;}
if (OrderType() == OP_SELL)  {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1; 
if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;}
            }
            
            
         }
      }

E sostituirlo con questo:

   for(int cnt=OrdersHistoryTotal();cnt>0;cnt--){
      static int num_ticket;
      if(!OrderSelect(cnt-1, SELECT_BY_POS, MODE_HISTORY))break;
      if(OrderMagicNumber()== mag && OrderSymbol()==Symbol()){      
      if(num_ticket != OrderTicket())num_ticket = OrderTicket(); else break;
         if(OrderType() == OP_BUY){
            b=1;
            if(OrderClosePrice()==OrderTakeProfit())bt=1;
            if(OrderClosePrice()==OrderStopLoss())bs=1;
            bl=OrderLots()*100;
            num_ticket = OrderTicket();
            break;
         }
         if(OrderType() == OP_SELL){
            s=1;
            if(OrderClosePrice()==OrderTakeProfit())st=1; 
            if(OrderClosePrice()==OrderStopLoss())ss=1;
            sl=OrderLots()*100;
            num_ticket = OrderTicket();
            break;
         }
      }
   }

Si differenzia per il fatto che, tra le altre cose, ricorda il numero di ticket dell'ultimo trade perdente, rispettivamente, lo controlla e non permette l'apertura con lo stesso segnale.

 
ToLik_SRGV:

Buttate via questa unità:


Grazie mille per il test, sembra funzionare.

 
Abzasc:

Qualcosa del genere, credo.

SZY Il pulsante di inserimento del codice "SRC" è scomodo da usare, non è facile da leggere.


Grazie mille! Ho scritto int per UseHourTrade2 invece di boole ))
 

Buon pomeriggio, amici.

Vorrei consultarmi con voi su questo argomento:

Attualmente sto lavorando su un indicatore, che trasferisce alla finestra delle letture della prima coppia di valute (ZigZag), formata sulla seconda coppia di valute.

Ma ho incontrato un problema:

per esempio, se c'è un grande "gap" tra le virgolette: una coppia è quotata come 1,4237, e l'altra come 0,8345, allora questi indicatori appaiono "sparsi" sullo schermo, il che non è molto conveniente visivamente ...

Come eseguirebbe la conversione delle "coordinate" dell'indicatore dalla seconda coppia, tenendo conto delle quotazioni della prima coppia (come rendere il prezzo "relativo")?

Grazie mille in anticipo per i consigli, le raccomandazioni.

 
Morzh09:

Buon pomeriggio, amici.

Vorrei consultarmi con voi su questo argomento:

Attualmente sto lavorando su un indicatore, che trasferisce alla finestra delle letture della prima coppia di valute (ZigZag), formata sulla seconda coppia di valute.

Ma ho incontrato un problema:

per esempio, se c'è un grande "gap" tra le virgolette: una coppia è quotata come 1,4237, e l'altra come 0,8345, allora questi indicatori appaiono "sparsi" sullo schermo, che non è molto conveniente visivamente ...

Come eseguirebbe la conversione delle "coordinate" dell'indicatore dalla seconda coppia, tenendo conto delle quotazioni della prima coppia (come rendere il prezzo "relativo")?

Grazie mille in anticipo per i consigli, le raccomandazioni.

Guarda il link. Il ridimensionamento stesso è fatto in modo originale.

https://www.mql5.com/ru/code/7933

 

Ciao!

Puoi dirmi come semplificare questo?

se (Saldo > 600)

{

Lot_mod = 0,1;

}

se (Saldo > 700)

{

Lot_mod = 0,11;

}

se (Saldo > 800)

{

Lot_mod = 0,12;

}

se (Saldo > 900)

{

Lot_mod = 0,13;

}

E così via.... Perché è troppo tentacolare in questa forma.

Grazie!

 
Lim1:

Ciao!

Potete per favore dirmi come questo può essere semplificato -.

E così via.... È troppo tentacolare in questa forma.

Grazie!





Un'equazione della forma y=a*x+b aiuterà
 
Lim1:

Ciao!

Potresti per favore dirmi come semplificare questo -.





determinare la formula per il calcolo del lotto ed è tutto, altrimenti dovrete preoccuparvi di
 

Lim1, prova così:

int BalanceExcessIn100s = MathFloor( ( Balance - 600 ) / 100.01 );
Lot_mod = BalanceExcessIn100s * 0.01 + 0.1;