Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 382

 
Per favore ditemi la formula per calcolare la dimensione del lotto di un nuovo ordine in modo che con tp di 10p possa ritirare un ordine perdente a 0 e guadagnare i 10 pips desiderati.
 

Quale operatore dovrebbe essere usato per designareil tipo di ordine?

Combina 2 algoritmi in uno. (combinarli in modo che non ci sia un conflitto di "OrdersTotal", risulta che aprirà 1 ordine. e ho bisogno di 1 in ogni direzione)

Grazie in anticipo))

int inizio ()

{

se (OrdiniTotali() == 0 )

OrderSend("EURUSD",OP_BUY,Lots,Ask,0,0, "11",MagicNumb,0,Red);

}

int inizio ()

{

se (OrdiniTotali() == 0 )

OrderSend("EURUSD",OP_SELL,Lots,Bid,0,0, "11",MagicNumb,0,Red);

}

 
le0nid2014:

Quale operatore dovrebbe essere usato per designareil tipo di ordine?

Combina 2 algoritmi in uno. (combinarli in modo che non ci sia un conflitto di "OrdersTotal", risulta che aprirà 1 ordine. e ho bisogno di 1 in ogni direzione)

Grazie in anticipo))

int inizio ()

{

se (OrdiniTotali() == 0 )

OrderSend("EURUSD",OP_BUY,Lots,Ask,0,0, "11",MagicNumb,0,Red);

}

int inizio ()

{

se (OrdiniTotali() == 0 )

OrderSend("EURUSD",OP_SELL,Lots,Bid,0,0, "11",MagicNumb,0,Red);

}

Aprire uno per uno.
 
Artyom Trishkin:
Per aprire uno per uno.

Non funzionerà in questo modo - quando ci sono 0 ordini aprirà quello di cui ho bisogno.

Voglio che apra buy se non c'è un ordine di acquisto e viceversa (nel tempo in cui non c'è 1 direzione, 2 si aprirà e l'ordine di acquisto non partirà).

 
le0nid2014:

Se ho 0 ordini, aprirà quello che mi serve.

Ho bisogno che apra buy se non c'è un ordine di acquisto, e viceversa (mentre non c'è 1 direzione, ce ne saranno 2 e il comando start non verrà emesso).

Devo contare quanti sono e aprirli se non ne ho uno.

 
new-rena:

contare quanti ce ne sono e, se manca quello giusto, aprire

Non so come spiegare all'Expert Advisor quali ordini comprare e quali vendere
 
//+------------------------------------------------------------------+
//| --- ФУНКЦИЯ РАСЧЕТА КОЛИЧЕСТВА ОРДЕРОВ
//+------------------------------------------------------------------+
   int Calc_Orders(string Symbols,string TYPE)
      {
         int Res=0; int calc;       
         for (calc=OrdersTotal()-1; calc>=0; calc--)
            {
               if (OrderSelect(calc,SELECT_BY_POS,MODE_TRADES))
                  {
                     if (TYPE=="BUY" && OrderType()==OP_BUY && OrderSymbol()==Symbols)
                        {
                           Res=Res+1;
                        }                        
                     if (TYPE=="SELL" && OrderType()==OP_SELL && OrderSymbol()==Symbols)
                        {
                           Res=Res+1;
                        }
                  }
            }
         return(Res);
      }
Non ci sta in quel post. Ho provato a modificarlo due volte...
 
le0nid2014:

Se ho 0 ordini, aprirà quello che mi serve.

Voglio che apra buy se non c'è un ordine di acquisto e viceversa (nel momento in cui non c'è 1 direzione, 2 si aprirà e l'ordine di acquisto non partirà).

Non capisco cosa volete. C'è un modo per renderlo più chiaro?
 
Artyom Trishkin:
Non capisco cosa volete. C'è un modo per spiegarlo più chiaramente?

Se non c'è un ordine di vendita o di acquisto nel mercato, apre un tale ordine, non importa quanti ordini di acquisto ci sono.

E viceversa.

 
le0nid2014:

Se non c'è un ordine di vendita o di acquisto nel mercato, apre un tale ordine, non importa quanti ordini di acquisto ci sono.

E viceversa.

Nella funzione OnTick impostiamo due variabili locali di tipo bool: buyExist = false e sellExist = false.

Quando arriva un nuovo tick, si controlla se ci sono ordini che appartengono al dato EA. Se c'è un ordine di vendita, sellExist = true e la stessa cosa con l'ordine di acquisto. E poi si controlla se buyExist = true - non aprire un ordine di acquisto. Lo stesso vale per la vendita. Questo è tutto.

Motivazione: