Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 354

 
Arsen_Syharev:
Si prega di consigliare quale comando scrivere per aprire i frattali Sell1 e Sell2 allo stesso tempo
Non c'è niente sul forum.
 
Ciao amici, potreste suggerire una semplice funzione che, se una qualsiasi condizione si avvera... (SigPF==1 o SigPF==2) e OrdersTotal>0 cioè solo gli ordini che sono attualmente sul mercato devono essere processati se si verifica una delle condizioni SigPF.

Questa è la variabile esterna che controlla la condizione all'interno della funzione
extern int PF_price_in_pips=70;
La funzione dovrebbe:
1.definire con che tipo di ordini abbiamo a che fare... se SigPF==1, allora è un ordine di acquisto, se SigPF==2, allora è un ordine di vendita
2. controllare il prezzo attuale e se
c'è un ordine di acquisto e SigPF==1 è presente nel mercato, allora

la differenza tra il prezzo corrente al quale l'ordine Buy deve essere aperto e uno qualsiasi dei prezzi aperti degli ordini già sul mercato è superiore a PF_price_in_pips, la funzione dovrebbe restituire valid_signal=true


ci sono ora ordini di vendita nel mercato e SigPF==2 è stato impostato, allora

la differenza tra il prezzo di un ordine aperto già presente sul mercato e il prezzo attuale, al quale l'ordine di vendita sarà aperto, è superiore a PF_price_in_pips, allora la funzione dovrebbe restituire il flag valid_signal=true

se la distanza tra il prezzo di apertura del nuovo ordine al verificarsi dei segnali di acquisto/vendita è inferiore a PF_price_in_pips, la funzione dovrebbe restituire valid_signal=false

Fondamentalmente, in poche parole, la funzione dovrebbe controllare la distanza tra il prezzo aperto del nuovo ordine ai segnali di acquisto e vendita (SigPF==1, SigPF==2) e qualsiasi prezzo aperto dell'ordine che è già sul mercato... e se questa distanza è maggiore di PF_price_in_pips allora dovrebbe essere restituito valid_signal=true. Questo per evitare di aprire ordini a prezzi molto vicini tra loro! E un'altra cosa... il mio EA fa trading solo all'apertura di una nuova barra... non su tutti i tick... ma non credo che abbia importanza... Devo comunque considerare i prezzi Bid o Ask ...

aiuto con questa funzione... ! Se qualcosa non è chiaro cercherò di spiegare... o di dare delle foto! Aiutami) Grazie!
 

Non sono sicuro di aver capito bene i termini, ma...

   int PF_price_in_pips=70;
   int OrdTotal=OrdersTotal();
   bool valid_signal=false;
   int SigFF;
   
   if(OrdersTotal()>0)
   {
   for(int i=OrdTotal-1; i>=0; i --)
     {
      if(!OrderSelect(i,SELECT_BY_POS))
         continue;

      if(OrderType()==OP_BUY && SigFF==1 && Ask+OrderOpenPrice()>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;
      if(OrderType()==OP_SELL && SigFF==2 && OrderOpenPrice()-Bid>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;

     }
     }
 
Arsen_Syharev:
Puoi dirmi quale comando scrivere in modo che quando i frattali Sell1 e Sell2 si aprono contemporaneamente un ordine
Quale valore di Sell1 e Sell2 ti conviene per aprire un ordine. //non posso più assistere alla tua angoscia....
 
Arsen_Syharev:
Puoi dirmi quale comando scrivere in modo che quando i frattali Sell1 e Sell2 sono aperti allo stesso tempo un ordine sia aperto
if (Sell1 !=0 && Sell2 != 0){

/* Если по текущей цене */ 

OrderSend(Symbol1, OP_SELL, Lots, Bid, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELL, Lots, Bid, 1, 0,0, 0, Magik, 0, Red); 

/*Если по пробитию фракталов отложенными ордерами */

 OrderSend(Symbol1, OP_SELLSTOP, Lots, Sell1, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELLSTOP, Lots, Sell2, 1, 0,0, 0, Magik, 0, Red);  

} 

Ma questo deve essere un esempio MOLTO MOLTO grezzo

 
Sapete se è possibile firmare più di un segnale su un account?
 

Ciao Colleghi, recentemente mi sono unito ai vostri ranghi :). Sono stufo di ordini pendenti e ho deciso di usare uno script che ho scaricato da Internet, ma non è stato soddisfacente: ho avuto errori in una sola direzione, e l'altro script ha piazzato solo un ordine in ogni direzione. Consiste essenzialmente nell'apertura di una certa quantità di ordini pendenti in entrambe le direzioni. Domanda: Come posso impostare un trailing stop su ogni ordine? Questo è uno script, non un Expert Advisor. Gli ordini sono stati aperti, il trailing stop è stato collegato ad essi, e questo è tutto, lo script ha fatto il suo lavoro. Come posso usare lo script per attivare un regolare trailing stop che viene eseguito con un clic destro su un ordine? 4. MetaTrader Build 765.

 
entitie:

Ciao Colleghi, recentemente mi sono unito ai vostri ranghi :). Sono stufo di ordini pendenti e ho deciso di utilizzare uno script che ho scaricato da Internet, ma non è stato soddisfacente: ho avuto errori in una sola direzione, e l'altro script ha piazzato solo un ordine in ogni direzione. Consiste essenzialmente nell'apertura di una certa quantità di ordini pendenti in entrambe le direzioni. Domanda: Come posso impostare un trailing stop su ogni ordine? Questo è uno script, non un Expert Advisor. Gli ordini sono stati aperti, il trailing stop è stato collegato ad essi, e questo è tutto, lo script ha fatto il suo lavoro. Come posso usare lo script per attivare un regolare trailing stop che viene eseguito con un clic destro su un ordine? 4. MetaTrader Build 765.

Il freelance fa tutto).
 

Ciao a tutti!

Il compito è il seguente: ho bisogno di aprire ordini dopo una certa distanza Step su EURUSD.m per comprare e su EURUSD.m1 per vendere. Questo problema è risolto nel codice qui sotto.

Tuttavia, se il prezzo ci è andato contro, dobbiamo ancora aprire ordini di acquisto per EURUSD.m, a condizione che il prezzo sia passato dall'ultimo ordine di vendita a EURUSD.m1 a una distanza di Step*2. Questa condizione funziona a condizione che questo prezzo di apertura sia inferiore al prezzo dell'ultimo ordine di acquisto per EURUSD.m.

Non riesco a capire come fare. Sarei felice di aiutare.

// бай евро доллар
if (rates[1].open < rates[1].close && !PositionSelect(Symbol1)) 
   {
      LastPriceBuy = OpenBuy(Symbol1,Lot); // если бычья свеча и нет открытой позиции по этому символу
   }
if (GlobalVariableCheck ("bb_1")) GlobalVariableGet("bb_1", bb_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol1) && LastPriceBuy > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceBuy+Step*_Point < SymbolInfoDouble(Symbol1,SYMBOL_ASK)) 
   {LastPriceBuy = OpenBuy(Symbol1,Lot);} // открытие позиции в бай по евро доллару всех последующих ордеров 
  }    

// сел евро доллар
if (rates[1].open > rates[1].close && !PositionSelect(Symbol3)) {LastPriceSell = OpenSell(Symbol3,Lot);} // если бычья свеча и нет открытой позиции по этому символу
if (GlobalVariableCheck ("ss_1")) GlobalVariableGet("ss1_", ss_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol3) && LastPriceSell > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceSell-Step*_Point > SymbolInfoDouble(Symbol3,SYMBOL_BID))
   {LastPriceSell = OpenSell(Symbol3,Lot);} // открытие позиции в селл по евро доллару всех последующих ордеров 
  } 
 
zfs:
I freelance fanno tutto).

Un commento-risposta molto prezioso e informativo, ti consiglio di usarlo anche tu...

In effetti - non c'è un semplice comando che, dopo aver aperto un ordine, appende un trailing stop standard sopra di esso?