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

 
alsu:
scrivi cosa ottieni e quali messaggi stampi nel log



Ho mostrato dove dovrebbe andare in, ma non è andato in, che frattali dovrebbe punch. ho anche allegare nel codice di archivio e l'output nel file txt di prova (ho cambiato, aggiunto il mio, ma il problema rimane ancora). ho solo onestamente non so nemmeno quali variabili per monitorare (e c'è una foto della posizione

)

File:
ik.zip  4 kb
 

Ho preso la funzione GetLot (nel file) da un altro EA. Nel mio vecchio EA non c'è nessun errore in sé, ma nel mio EA genera

'(' - definizione della funzione inaspettata C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15)
'Free' - variabile non definita C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 28)
'Risk' - variabile non definita C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33)
'Free' - variabile non definita C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17)

Qual è il problema?

File:
 
Perché amate così tanto gli archivisti? Hai 100500 linee di codice nel tuo codice sorgente?!
 

griha:

Ho preso la funzione GetLot (nel file) da un altro EA. Nel mio vecchio EA non c'è nessun errore in sé, ma nel mio EA genera

'(' - definizione della funzione inaspettata C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (106, 15)
'Free' - variabile non definita C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 28)
'Risk' - variabile non definita C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (112, 33)
'Free' - variabile non definita C:\Program Files\BCS Trade Station\experts\ SovetnikStochastic.mq4 (115, 17)

Qual è il problema?

C'è una parentesi graffa in più nel codice della funzione start prima del primo If, ecco perché ci sono errori. Per rendere più facile la lettura delle parentesi, si dovrebbe sempre cercare di metterle entrambe per prime, e poi scrivere tutto ciò che serve in esse. Meglio ancora, si dovrebbe metterle su una nuova linea con un offset, in modo che i blocchi separati non siano confusi (per esempio, come nel codice dato nella pagina precedente)

P.S.:

Penso che il calcolo del lotto con questa formula

 double Lot     =MathFloor(Free*Risk/100/One_Lot/Step)*Step;    // откидываем лишние знаки после запятой, оставляем 2 знака
non funzionerà correttamente per il lotto 0.1 con un passo più di 0.01, forse mi sono perso qualcosa, ma allora il lotto sarà sempre uguale a 0 ( MathFloor (900*2/100/1324/0.02=0.67975831) = 0, quindi 0*Step=0)...
 

Non riesco a capire come calcolare qualcosa come OrderProfitPips( ) per un ordine selezionato se la coppia è arbitraria. Cioè profitto in pip, non in valuta del conto.

Ho bisogno esattamente di pip - per analizzare l'efficacia del trading multicurrency a diverse coppie. Ho bisogno di pip a quattro cifre (o opportunamente a due cifre, se la coppia è in yen). Si consideri che la valuta del conto è USD e la dimensione del contratto è di 100 000 unità.

Se la coppia è EURUSD, tutto è semplice:

pips = OrderProfit( ) / ( OrderLots( ) * 10. );


Se la coppia è AUDCHF, è un po' più complicato. Se il conto fosse un conto in franchi, la formula sarebbe esattamente la stessa. Ma il conto è un conto in franchi, cioè OrderProfit() ritorna in dollari. Quindi il mio profitto dovrebbe essere convertito in franchi:

pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. );

Giusto?

 
Mathemat:

Non riesco a capire come calcolare qualcosa come OrderProfitPips( ) per l'ordine selezionato se la coppia è arbitraria. Cioè profitto in pip, non in valuta del conto.

Ho bisogno esattamente di pip - per analizzare l'efficacia del trading multicurrency a diverse coppie. Ho bisogno di pip a quattro cifre (o opportunamente a due cifre, se la coppia è in yen). Si consideri che la valuta del conto è USD e la dimensione del contratto è di 100 000 unità.

Se la coppia di valute è EURUSD, tutto è semplice:

pips = OrderProfit( ) / ( OrderLots( ) * 10. );


Se la coppia è AUDCHF, è un po' più complicato. Se il conto fosse un conto in franchi, la formula sarebbe esattamente la stessa. Ma il conto è un conto in dollari, cioè OrderProfit() restituisce in dollari. Quindi il mio profitto dovrebbe essere convertito in franchi:

pips = USDCHF * OrderProfit( ) / ( OrderLots( ) * 10. );

Giusto?


Avete letto http://www.fxtrademaker.com/fx_calculation.htm? O è http://thismatter.com/money/forex/leverage-margin-pips.htm?

Per quanto ho capito, PipProfit = USDprofit/lot/Point per EURUSD. Per le coppie quotate all'inverso dobbiamo prendere la differenza tra il prezzo di apertura e il prezzo corrente e moltiplicare per Digits: Pips = OrderOpenPrice()-Bid*Digits_coefficient; dove
Digits_coefficient = MathPow(10,Digits);


 

Sì, sembra che ci sia un uso per entrambi i link. Grazie.

P.S. Ho deciso di contare non in pip ma in valuta del conto. I pip dei cross Yen sono troppo sproporzionati rispetto a quelli abituali. E volevo sommarli (convenzionalmente, ovviamente)...

 
Mathemat:

Sì, sembra che ci sia un uso per entrambi i link. Grazie.

P.S. Ho deciso di non contare in pip, ma in valuta del conto. Troppo incommensurabili sono le cifre dei pips delle croci di yen con quelle usuali. E volevo sommarli (condizionatamente, ovviamente)...


I pip sono pip, come possono essere sproporzionati? In che modo un profitto di 20 pip su EURUSD è diverso da un profitto di 20 pip su JPY? Devi aver sbagliato a contare... Ma è davvero più facile calcolare nella valuta del conto.

 
evillive: I pip sono pip, come possono essere incommensurabili?

Beh, sul tuo link (secondo) è tutto visibile:

Compri 100.000 unità di EUR/JPY = 164,09 e vendi quando EUR/JPY = 164,10, e USD/JPY = 121,35.

Profitto in pip JPY = 164.10 - 164.09 = .01 yen = 1 pip (Ricorda l'eccezione dello yen: 1 pip JPY = .01 yen).

Profitto totale in pip JPY = 1 x 100.000 = 100.000 pip.
Profitto totale in Yen = 100.000 pip/100= 1.000 Yen.

Poiché hai solo la quotazione di USD/JPY = 121,35, per ottenere il profitto in USD, dividi per il tasso di conversione della valuta della quotazione:

Profitto totale in USD = 1.000/121,35 = 8,24 USD.

Se hai solo questa quotazione, JPY/USD = 0,00824, che è equivalente al valore di cui sopra, si utilizza la seguente formula per convertire i pip in yen in valuta nazionale:

Profitto totale in USD = 1.000 x 0,00824 = 8,24 USD.

Un profitto di 8,24 USD (pari a 0,824 pip su 1 lotto EURUSD, per esempio) è equivalente a 100 mila pip di yen in questo esempio!

P.S. Mi sento un completo novizio...

 
Mathemat:

Beh, il tuo link (il secondo) mostra tutto:

Un profitto di 8,24 USD (pari a 0,824 pip su 1 lotto EURUSD) è equivalente a centomila pip di yen!


Stai leggendo male. Per le coppie con una quotazione inversa, prendete la differenza tra il prezzo di apertura e quello corrente e moltiplicate per il moltiplicatore ottenuto da Digits ( Pips = (Bid -OrderOpenPrice())*Digits_coefficient; ) , che dà (80.60-80.45=0.15) * MathPow(10,Digits) = 15 pips, dove

Digits_coefficient  = MathPow(10,Digits);

Non potrebbe essere più semplice, vero?

P.S.: Anche se no, potrebbe essere più semplice ))))

 Pips = (Bid - OrderOpenPrice())/Point; //ордер лонг
 Pips = (OrderOpenPrice() - Ask)/Point; //ордер шорт

E questa espressione è vera per TUTTE le coppie di valute!