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

 
etroplus:

Per favore, consigliatemi!

C'è una funzione che restituisce il valore del profitto di una posizione aperta in pip?

(Bid - OrderOpenPrice())/Point;    //для ордеров BUY
(OrderOpenPrice() - Ask)/Point;    //для ордеров SELL
 
webgreck:

controllare se c'è stato un cambio di data e usare le funzioni

MarketInfo(Symbol(),MODE_SWAPSHORT);
MarketInfo(Symbol(),MODE_SWAPLONG);
 
alsu:

controllare se la data è cambiata e usare le funzioni


Come si può controllare la data? Non cambia. Guarda lo screenshot.

 
webgreck:


Ho un sacco di ordini che devono essere elaborati in modo diverso che tipo di trailing che tipo di obiettivi fissi e impostare la parità, ma non posso far fronte a questo compito perché dopo che l'affare è chiuso e si apre a causa dello swap, cambia il numero di biglietto, quindi non posso usare il numero di biglietto per identificare la posizione per sapere cosa fare con esso.

Per favore, consigliatemi come trattare lo swap e come identificare uno scambio e sapere se ho già impostato la parità su di esso o no, ecc.


In questi casi il "numero magico dell'ordine" può essere utilizzato attivamente.
 
abolk:

In questi casi, il Magic Number Order può essere utilizzato attivamente.

Uso già il numero magico per identificare i tre tipi di segnali... Se ho già messo la parità per una posa, dovrei probabilmente pensare a un modo per usare il numero magico per determinare se ho già messo la parità. Per esempio, possiamo dare un valore di numero magico a un ordine, ma per quanto ne so, non possiamo modificare il numero magico... o mi sbaglio? possiamo solo dargli un valore quando impostiamo l'ordine, ma cosa possiamo scrivere nel numero magico, così saremo in grado di controllare se la parità è già stata impostata per l'ordine?
 
webgreck:

Lo uso già per identificare i tre tipi di segnali ... Se il vostro algoritmo è strettamente legato all'identificazione dell'ordine, allora ho bisogno di conoscere il vostro algoritmo per aiutarmi in questo caso.

Se il tuo algoritmo è strettamente legato all'identificazione dell'ordine, allora ho bisogno di conoscere il tuo algoritmo per aiutarti in questo caso.
 
abolk:

Se il tuo algoritmo è strettamente legato all'identificazione degli ordini, allora per aiutarti in questo caso, abbiamo bisogno di conoscere il tuo algoritmo.


Avevo paura di questa domanda, il sistema è abbastanza complicato e difficile da descrivere in 2 parole. Non voglio nemmeno postare il codice perché ci sono migliaia di linee di codice e nessuno le capirà o si preoccuperà...

Pensavo che ci fossero alcuni metodi flessibili comuni per implementare l'identificazione dell'ordine... Il numero magico è fondamentalmente quello che serve, ma non può essere modificato per ricordare se l'ordine è già stato fatto questo o quello...

Forse è ancora possibile modificare un numero magico?

 
webgreck:


Come si controlla la data? Non cambia. Guarda lo screenshot.

come non cambia? sul tuo screenshot era il 13 gennaio, alle 00:00 14 swap floz - swap aperto
 
webgreck:


Sì, questa è la domanda che temevo) perché l'algoritmo non è semplice... il sistema è abbastanza complesso e non può essere descritto in 2 parole. E anche mettere il codice non ha senso perché ci sono migliaia di linee di codice e nessuno capirà e approfondirà...

Ho pensato che ci sono alcuni comuni trucchi flessibili per implementare l'identificazione degli ordini... Abbiamo un numero magico per questo scopo, ma non possiamo modificarlo per ricordare ciò che è già stato fatto con questo ordine...

Forse è possibile modificare il numero magico di un ordine?


E si converte il tempo di apertura in int - lì si hanno due magie per una posizione. Se non avete impostato la parità, c'è solo la magia. Se avete già impostato la parità, la variabile responsabile della presenza della parità impostata sarà uguale al tempo di apertura della posizione, che è denotato da int e la posizione avrà un numero magico... :)
Danza da lì...
 

Ciao!

Non riesco a capire perché gli ordini aperti non vengono modificati, la condizione di modifica è un profitto superiore a 5 pips.

//+------------------------------------------------------------------+
|| Notizie commerciali.mq4
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net"


extern bool In_BUYSTOP=true;
extern intProfit_buy=100;
extern int StopLoss_buy=5;
extern double Lots_buy=0.01;
//+------------------------------------------------------------------+
extern bool In_SELLSTOP =true;
extern inttern TakeProfit_sell=100;
extern int StopLoss_sell =5;
extern double Lots_sell =0.01;
extern int LevelProfit = 25; // - Livello di profitto in punti, che è necessario raggiungere per trasferire il suo stop al livello di Breakeven.
extern int LevelWLoss = 1; // - Livello di pareggio in punti, al quale la posizione di stop sarà spostata dopo che il suo profitto raggiunge il livello LevelProfit in punti.

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----
int profitbuy=((Bid - OrderOpenPrice())/Point); // BUY
int profitsell=((OrderOpenPrice()- Ask)/Point); // SELL
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
int start()
//----
{
biglietto int;
se (Bid >iHigh(NULL,PERIOD_D1,1))
{
se(OrdiniTotali() < 1)
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots_sell,iHigh(NULL,PERIOD_D1,1),3,iHigh(NULL,PERIOD_D1,1)+StopLoss_sell*Point,iHigh(NULL,PERIOD_D1,1)-TakeProfit_sell*Point,Hour() == 21 && Minute() == 59);
if(OrderSelect(1, SELECT_BY_POS,MODE_TRADES)==true)
{
int profitsell=((OrderOpenPrice()- Ask)/Point);
se (profitsell>5)
ticket=OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,Blue);
ritorno(0);
}
}
se (Ask <iLow(NULL,PERIOD_D1,1))
{
se(OrdiniTotali() < 1)
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots_buy,iLow(NULL,PERIOD_D1,1),3,iLow(NULL,PERIOD_D1,1)-StopLoss_buy*Point,iLow(NULL,PERIOD_D1,1)+TakeProfit_buy*Point,Hour() == 21 && Minute() == 59);
if(OrderSelect(1, SELECT_BY_POS,MODE_TRADES)==true)
{
int profitbuy=((Bid - OrderOpenPrice())/Point);
se (profitbuy>5)
int stopmodify=OrderOpenPrice();
OrderModify(OrderTicket(),OrderOpenPrice(),stopmodify,OrderTakeProfit(),0,Blue);
ritorno(0);
}
}
//oooooooooooooooooooooooooooooooooooooooooooooooooo
ritorno(0);
}
//+------------------------------------------------------------------+