[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 478
Chiedo aiuto, mi sono già ucciso, non riesco a capire!!! Ho bisogno, che al raggiungimento +20 p., SL dell'ordine è stato riorganizzato sul prezzo di apertura, cioè la funzione dà fuori 77
for(i=(OrdersTotal()-1); i>=0; i--) // перебор ордеров
{
if (!OrderSelect(i, SELECT_BY_POS))
{
continue;
}
if (OrderSymbol()!=Instr||OrderMagicNumber()!=MN)
continue;
if(OrderStopLoss()==OrderOpenPrice())
break;
if ( OrderProfit()>=(MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub) )
return(77);
}
Ho bisogno che lo SL dell'ordine sia reimpostato al prezzo di apertura quando raggiunge +20 pip, cioè la funzione mostra 77
20 p non è calcolato in questo modo, dovete usare la funzione OrderOpenPrice() e confrontarlo con il prezzo corrente, cioè, quando l'ordine raggiunge un profitto positivo o nullo, probabilmente volete che il risultato sia 77, cioè
for(i=(OrdersTotal()-1); i>=0; i--) // перебор ордеров
{
if (!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol()!=Instr||OrderMagicNumber()!=MN) continue;
if(OrderStopLoss()==OrderOpenPrice()) break;
if ( OrderProfit()>=0)) return(77);
}
la funzione OrderProfit() restituisce il profitto dell'ordine nella valuta di deposito, non in pip
Potete dirmi se è possibile per un EA ottenere i dati dell'indicatore (da quelli che permettono di farlo) da un altro indicatore. Non ho trovato una tale opportunità nei tipi di prezzo.
20p non è calcolato in questo modo, devi usare la funzione OrderOpenPrice() e confrontarla con il prezzo corrente, apparentemente vuoi che il risultato 77 sia restituito quando l'ordine raggiunge un profitto positivo o nullo, allora è così:
la funzione OrderProfit() restituisce il profitto dell'ordine nella valuta di deposito, non in pip
È più o meno quello che pensavo, non calcolo i 20 pips. Sono impostati nella variabile Bezub. Provo a confrontare il profitto attuale dell'ordine nella valuta di deposito (OrderProfit()) e i 20 punti richiesti nella valuta di deposito ((MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub)
demlin: È più o meno quello che pensavo, non sto calcolando 20 p. Sono impostati nella variabile Bezub. Sto cercando di confrontare il profitto corrente dell'ordine nella valuta di deposito (OrderProfit()) e il livello richiesto di 20 p nella valuta di deposito ((MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub)
allora hai dimenticato di prendere in considerazione il prezzo corrente e quanti pips il prezzo si è mosso da quando l'ordine è stato piazzato:
ZZZEROXXX: Per favore, consigliatemi se posso ottenere i dati dell'indicatore (quelli che lo permettono) da un altro indicatore. Non ho trovato una tale opportunità nei tipi di prezzo.
Ho provato il tuo schema. L'allarme dà un valore (OrderOpenPrice() -Bid)*MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub di -0,033. Anche se ci sono 21p nel profitto! È normale?
demlin: Testato il tuo schema. L'allarme si genera per (OrderOpenPrice() -Bid)*MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub valori -0,033. Anche se ci sono 21p nel profitto! È normale?
Scusate, sto scrivendo senza controllare, ho sbagliato qui, dovrebbe funzionare così:
Anche questo non è ancora una bella cifra. Non credo che si tratti della formula. L'espressione (MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub) stessa dà sostanzialmente 20 per l'Euro. Il punto è da qualche parte nel ciclo for
Anche questo non è ancora una bella cifra. Non credo che si tratti della formula. L'espressione (MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub) stessa dà sostanzialmente 20 per EURUSD. È da qualche parte nel ciclo for
il link https://www.mql5.com/ru/code ha un magazzino pieno di quelli simili
hai dato un link a un'intera sezione enorme )))
Questo è divertente
Buon pomeriggio!
Chiedo aiuto, mi sono già ucciso, non riesco a capire!!! Ho bisogno, che al raggiungimento +20 p., SL dell'ordine è stato riorganizzato sul prezzo di apertura, cioè la funzione dà fuori 77
Non riesco a farlo funzionare.
Ho bisogno che lo SL dell'ordine sia reimpostato al prezzo di apertura quando raggiunge +20 pip, cioè la funzione mostra 77
20 p non è calcolato in questo modo, dovete usare la funzione OrderOpenPrice() e confrontarlo con il prezzo corrente, cioè, quando l'ordine raggiunge un profitto positivo o nullo, probabilmente volete che il risultato sia 77, cioè
la funzione OrderProfit() restituisce il profitto dell'ordine nella valuta di deposito, non in pip20p non è calcolato in questo modo, devi usare la funzione OrderOpenPrice() e confrontarla con il prezzo corrente, apparentemente vuoi che il risultato 77 sia restituito quando l'ordine raggiunge un profitto positivo o nullo, allora è così:
la funzione OrderProfit() restituisce il profitto dell'ordine nella valuta di deposito, non in pipÈ più o meno quello che pensavo, non sto calcolando 20 p. Sono impostati nella variabile Bezub. Sto cercando di confrontare il profitto corrente dell'ordine nella valuta di deposito (OrderProfit()) e il livello richiesto di 20 p nella valuta di deposito ((MarketInfo(Symbol (),MODE_TICKVALUE)*Bezub)
allora hai dimenticato di prendere in considerazione il prezzo corrente e quanti pips il prezzo si è mosso da quando l'ordine è stato piazzato:
(OrderOpenPrice() -Bid)*MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub
Per favore, consigliatemi se posso ottenere i dati dell'indicatore (quelli che lo permettono) da un altro indicatore. Non ho trovato una tale opportunità nei tipi di prezzo.
iCustom()
https://book.mql4.com/ru/samples/sharedallora hai dimenticato di prendere in considerazione il prezzo corrente e quanti pips il prezzo si è mosso da quando l'ordine è stato piazzato:
(OrderOpenPrice() -Bid)*MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub
Testato il tuo schema. L'allarme si genera per (OrderOpenPrice() -Bid)*MarketInfo(Symbol(),MODE_TICKVALUE)*Bezub valori -0,033. Anche se ci sono 21p nel profitto! È normale?
Scusate, sto scrivendo senza controllare, ho sbagliato qui, dovrebbe funzionare così:
Vendere:(OrderOpenPrice()-Bid)*MarketInfo(Symbol(),MODE_TICKVALUE)*lot/Point
Compra: (Ask-OrderOpenPrice())*MarketInfo(Symbol(),MODE_TICKVALUE)*lot/Point
Scusate, sto scrivendo senza controllare, ho sbagliato qui, dovrebbe funzionare così:
Vendere:(OrderOpenPrice()-Bid)*MarketInfo(Symbol(),MODE_TICKVALUE)*lot/Point
Compra: (Ask-OrderOpenPrice())*MarketInfo(Symbol(),MODE_TICKVALUE)*lot/Point
Scusate, sto scrivendo senza controllare, ho sbagliato qui, dovrebbe funzionare così:
Vendere:(OrderOpenPrice()-Bid)*MarketInfo(Symbol(),MODE_TICKVALUE)*lot/Point
Compra: (Ask-OrderOpenPrice())*MarketInfo(Symbol(),MODE_TICKVALUE)*lot/Point