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

 
Vitaly Muzichenko:
Avete già un certo prezzo a partire dal quale dovreste trainare solo usando l'analogo di un trawl semplice ma un trawl semplice è basato sul prezzo di apertura della posizione = OrderOpenPrice() e qui è basato sul prezzo medio calcolato e modifica tutte le posizioni di un livello

Sì, ho capito.

Sto guardando il codice che ho postato prima e mi dà un'immagine come questa nel tester

È una funzione che voglio ridurre le dimensioni di quei trogoli, perché su uno di essi c'è uno scarico.

come un esempio precedente -

Ora ho le mani piene di short sulla crescita di dollaro-yen e voglio solo aggiungere lì la funzione di assicurazione (se le perdite raggiungono una percentuale del saldo - chiudere tutto)
File:
TesterGraph.gif  19 kb
 
vitek2010:

Non stavo parlando di ticks stavo parlando della necessità di fissare le letture minime e massime del buffer dell'indicatore calcolato su un timeframe più piccolo, nel gap di un timeframe più grande cercherò di mostrarlo sullo screenshot In questo caso, più grande è il timeframe preso, e più piccolo H1 (ma questa è la finestra di diversi timeframe):

[img]https://charts.mql5.com/13/642/eurgbp-w1-instaforex-group.png[/img]

Considererò la settimana 05.12 (mirino rosso) questo grafico a barre dall'indicatore mostrato sopra mostra chiaramente che il movimento totale della coppia alla fine della settimana era in discesa di 95 punti, ma non mostra quanti punti erano in discesa o in salita durante la settimana.

E qui su questo schermo potete vedere la dinamica di questo indicatore sul grafico H1 durante questa settimana:

[img]https://charts.mql5.com/13/642/eurgbp-h1-instaforex-group.png[/img]

L'indicatore aveva un valore minimo di 400 e poi è salito a 700 e ha chiuso su 160 (la differenza di numeri su due schermi non è importante)

ho bisogno di tutti questi valori in un indicatore in una barra dell'istogramma e il minimo, massimo e chiusura (in questo caso sul wickle). idealmente sul timeframe corrente da quello specificato nelle impostazioni del timeframe

l'ho fatto su mt4 insta con la copia di mcl5

Nel codice che hai mostrato sopra, il riferimento è al TF corrente, quindi di cosa stiamo parlando? Se stai accedendo a M5 da W1, allora scrivilo così.

Se lavorate con il timeframe corrente, allora il prezzo di chiusura è fluttuante sulla barra zero, e sul resto - solo un prezzo di chiusura, non molti, come faccio a costruire un istogramma su un valore?

Le immagini vengono inserite utilizzando il pulsante appropriato nella parte superiore della finestra di modifica del messaggio, ci sono un sacco di pulsanti utili lì, ti consiglio di imparare.

 
trader781:

Sì, ho capito.

Sto guardando il codice che ho postato prima e mi dà un'immagine come questa nel tester

questa è la funzione che voglio tagliare la dimensione di quei trogoli, perché alla fine c'è uno scarico su uno di essi

come un esempio precedente -

Ho aperto degli short sul rialzo dello yen-dollaro e voglio solo assicurarlo (se le perdite raggiungeranno la percentuale del saldo - chiudere tutto)
Vorrei usare la funzione "bump" (se le perdite raggiungono una percentuale del saldo). E i termini di TC per raffinare, se precipitare - poi gli ingressi non ci sono e non ci sono.
 
Vitalie Postolache:
Dovete "urtare" meno spesso o rinunciare alla martingala. E perfezionate i termini del TS, se state perdendo - allora gli input non ci sono e non ci sono.

Grazie per il consiglio, ma voglio solo che il codice funzioni come voglio io, non si tratta di redditività/profittabilità. Voglio solo vedere come sono queste funzioni.

Bene, mi sono imbattuto in un'espressione nel codice precedente(_BuyLot>_SellLot?)Bid:Ask)

Come devo interpretarlo?

 
trader781:

Grazie per il consiglio, ma voglio solo che il codice funzioni come voglio io, non si tratta di redditività/profittabilità. Voglio solo vedere come sono queste funzioni.

Bene, mi sono imbattuto in un'espressione nel codice precedente(_BuyLot>_SellLot?)Bid:Ask)

Come devo interpretarlo?

Leggi qui https://docs.mql4.com/ru/basis/operators/ternary
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
  • docs.mql4.com
Условный оператор ?: - Операторы - Основы языка - Справочник MQL4
 
trader781:

Grazie per il consiglio, ma voglio solo che il codice funzioni come voglio io, non si tratta di redditività/profittabilità. Voglio solo vedere come sono queste funzioni.

Bene, mi sono imbattuto in un'espressione nel codice precedente(_BuyLot>_SellLot?)Bid:Ask)

Come devo interpretarlo?

È così nella trascrizione. La voce precedente è più corta e spesso sembra più bella nel codice, ma il senso dell'esecuzione del codice non cambia

if(_BuyLot > _SellLot) {
 xxx = Bid;
 } else {
 xxx = Ask;
}
 
Vitaly Muzichenko:

È così nella trascrizione. La voce precedente è più corta e molto spesso sembra più bella nel codice, ma non cambia il senso dell'esecuzione del codice

if(_BuyLot > _SellLot) {
 xxx = Bid;
 } else {
 xxx = Ask;
}

dove xxx =_BuyLot

else

xxx =_SellLot

giusto?


Alexey Viktorov:
Leggi qui https://docs.mql4.com/ru/basis/operators/ternary
Ho un pezzo di codice irrilevante scritto in un linguaggio semplice, e ancora non si riesce a capire cosa dice dal mio punto di vista. È un semplice algoritmo scritto da un generatore.
 
trader781:

dove xxx =_BuyLot

else

xxx =_SellLot

giusto?

No, non lo è.

if(_BuyLot-_SellLot != 0) {
  if(_BuyLot > _SellLot) {
   AllAwerage= NormalizeDouble(Bid-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits);
  } else {
   AllAwerage= NormalizeDouble(Ask-((_BuyProfit+_SellProfit)/(TickValue*(_BuyLot-_SellLot))*_Point),_Digits);
  }
} else {
  AllAwerage=0;
}

Ma sono un sacco di linee di codice

 
trader781:

dove xxx =_BuyLot

else

xxx =_SellLot

giusto?


Ho un pezzo di codice irrilevante scritto in un linguaggio semplice, e ciononostante è difficile capire cosa c'è scritto dal mio punto di vista. Un semplice algoritmo scritto da un generatore.

Sbagliato. L'operatore trap assegna un valore a una variabile, non all'espressione confrontata.

double price=(_BuyLot>_SellLot?)Bid:Ask);

Ed è ora di capire gli algoritmi, sia generati che scritti a mano. Anche se a volte è più facile scrivere a mano che capire cosa qualcuno ci ha avvitato.

 
Vitalie Postolache:


E gli algoritmi dovrebbero essere smantellati ormai, sia generati che scritti a mano.

Beh, non uso ancora classi, array, macro e importazioni dalle librerie di Windows. Tutto a tempo debito.