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

 
Andrei01:
C'è un modo per scoprire i limiti di prezzo sulla scala verticale del grafico per calcolare la scala (non il prezzo dello strumento, è in F8)?

doppio WindowPriceMin( int index=0)
doppio WindowPriceMax( int index=0)
 
Top2n:
Salve, sto eseguendo l'Expert Advisor nello Strategy Tester ma non apre una posizione. Nella rivista dice EURUSD,M5: OrderSend error 131. Non so quante volte ho visto questo EA aprirsi e non ha più aperto una posizione. Per favore consigliate se qualcuno ha avuto questi problemi. Grazie in anticipo


Forse non avete un lotto normalizzato, provate a riportarlo alla normalità usando:
doppio NormalizeDouble( valore doppio, int cifre)
 
zhuki:
Probabilmente non avete un lotto normalizzato, normalizzatelo con:
doppio NormalizeDouble( valore doppio, int cifre)
In realtà, se la memoria non mi inganna, ha una funzione pronta per la normalizzazione dei lotti...
Tenendo conto di tutte le possibili limitazioni del DT...
Tranne se non lo usa... poi - Ahi... :)
 
zhuki:

doppio WindowPriceMin( int index=0)
doppio WindowPriceMax( int index=0)
Grazie. C'è un modo per cambiare questo programmaticamente?
 

Ciao gente del forum.

I miei nonni mi hanno detto che è il giorno della luna di miele. Buone vacanze a tutti.

E io con il mio... Drknn dice che è possibile elaborare le letture degli indicatori.

È possibile sommare A / D per un dato periodo e lo stesso importo OBV, e poi dividerli tra loro (OBV nel numeratore)

Il denominatore è A/D + coefficiente con uscita alle impostazioni.

Zero al centro, i confini sono fluttuanti.

Somma-NO TOTALE. Ogni movimento per valore assoluto.

E ti darò un'inversione sull'ebreo

 
Konichiua a tutti! Come posso fare in modo che il mio EA apra tre ordini con diversi takeover e solo una volta su una candela in una condizione di acquisto o vendita. Arigato in anticipo!
 
Maniac:
Konichiua a tutti! Come posso fare in modo che il mio EA apra tre ordini con diversi takeover e solo una volta su una candela in una condizione di acquisto o vendita. Arigato in anticipo!
Come faccio a fare 3 ordini di invio con diversi Take Point o fare un loop di questa funzione fino a 3 (for o while), ad ogni iterazione un Take Point diverso
 
sanyooooook:
Fare un invio di 3 ordini con obiettivi diversi o fare un ciclo di questa funzione fino a 3 (for o while), ad ogni iterazione un obiettivo diverso


Fai 3 ordini di invio con punti diversi - apre il primo ordine tre volte :(

fare il loop di questa funzione a 3 (for o while), ogni iterazione ha una presa diversa - apre un mucchio di primi ordini :(

Se non è difficile mostrare come si fa?

 
Maniac:


Fai un invio di 3 ordini con obiettivi diversi - apre il primo ordine tre volte :(

fare il loop di questa funzione a 3 (for o while), ogni iterazione ha una presa diversa - apre un mucchio di primi ordini :(

Se non è troppo complicato, puoi mostrarmi come fare?

Tieni il conto degli ordini aperti?
 
sanyooooook:
Gli ordini aperti sono contati?
extern double TakeProfit = 35;
extern double StopLoss   = 25;
extern double Lots       = 0.1;

int NumberOfBarOpenLastPos(string sym="", int tf=0, int op=-1, int mn=-1) {
  datetime oot;
  int      i, k=OrdersTotal();
 
  if (sym=="") sym=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sym) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (oot<OrderOpenTime()) oot=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sym, tf, oot, True));
}
int NumberOfBarCloseLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) t=OrderCloseTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}
int start()
  {
   
   int ticket;
   if(Bars<100)
     {
      Print("bars less than 100");
      return(0);  
     }
   if(TakeProfit<10)
     {
      Print("TakeProfit less than 10");
      return(0);
     }
   if ((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
     {
      
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
      
      if(Bid>High[1])
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"test",16384,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
     
      if(Bid<Low[1])
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"test",16384,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0);  
        }
      return(0);
     }

  }


Ecco il codice di un EA. È necessario:

1) ha aperto non uno, ma tre affari in una volta con stop di 25 e prese di 15, 35, 50

2) dopo che il secondo ordine è stato chiuso alla presa (35), l'ultima posizione (alla presa 50) è passata al livello di breakeven