[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 222

 
ramirez17:

Si prega di indicare un errore.


divisione per 0 - ci dovrebbe essere uno zero diviso nel registro

al primo passaggio

i+Sell_bars-1
sei fuori dalla dimensione consentita di Bars
 
ramirez17, è più facile trovare i massimi/minimi nella stocastica e sostituire la formula stocastica con il loro rapporto
 
maxstah:

Ciao, potresti dirmi dove trovare un indicatore che ridisegna le barre giornaliere in modo che inizino in un momento diverso.

Per esempio: l'ora del terminale è 00:00. Nei parametri di ingresso dell'indicatore mettiamo: +4. Ora le barre giornaliere iniziano alle 4:00.

Grazie in anticipo.

MT4 ha un convertitore incorporato. Servizio -> Archivio citazioni.
 

Salve.

Ho una domanda da principiante:

come ottenere i dati del profitto corrente per le posizioni aperte; come ottenere i dati del saldo corrente.

 
Roger:
Come se il nuovo Pinocchio cercasse un affidabile Campo delle Meraviglie. Non essere ridicolo).

Tipo, petrosian intelligente vuole fare una battuta...))
 

Ragazzi, dov'è l'errore.... l'ho già affrontato... ecco il codice...

Quando si fa trading su termenal con spread fluttuante(una cifra in più aggiunta) l'advisor scrive un errore, lotto sbagliato ... e con spread fisso, tutto va bene e i trade ...

 GBPUSD,H1: OrderSend error 131

ma ecco il codice stesso.... dov'è l'errore???

 if(ExistPositions() > 0)   {
   for(cnt=0;cnt<OrdersTotal();cnt++)  { 
   OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && OrderType()==OP_BUY)  {
         if(Ask-OrderOpenPrice() > (TrailingStop * Point))  { 
            if(OrderStopLoss() < (Ask - TrailingStop * Point)) { 
               OrderModify(OrderTicket(),
                           OrderOpenPrice(),
                           Ask - TrailingStop * Point,
                           Ask + sTakeProfit * Point,0,Aqua);
            return(0);  } // close for if(OrderStopLoss() < (Ask - TrailingStop * Point))
                        } // close for if(Ask-OrderOpenPrice() > (TrailingStop * Point))
                } // close for if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && OrderType()==OP_SELL) {
                        if(OrderOpenPrice() - Bid > (TrailingStop * Point))   { 
                                if(OrderStopLoss() > (Bid + TrailingStop * Point))   { 
                           OrderModify(OrderTicket(),
                                       OrderOpenPrice(),
                                       Bid + TrailingStop * Point,
                                       Bid - sTakeProfit * Point,0,Magenta);
            return(0);  } 
                        } // close for if(OrderOpenPrice() - Bid > (TrailingStop * Point))
                 } // close for if(OrderSymbol()==Symbol() && OrderType()==OP_SELL)
          } // close for for(cnt=0;cnt<total;cnt++)
   } // close for if(TradesThisSymbol > 0)
}

bool ExistPositions() {
        for (int i=0; i<OrdersTotal(); i++) {
                if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
                        if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC) {
                                return(True);
                        }
                } 
        } 
        return(false);
}



void OpenBuy() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 
   ldLot = GetSizeLot(); 
   ldStop = GetStopLossBuy(); 
   ldTake = GetTakeProfitBuy(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_BUY,ldLot,Ask,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenBuy); 
   if (UseSound) PlaySound(NameFileSound); 
} 
void OpenSell() { 
   double ldLot, ldStop, ldTake; 
   string lsComm; 

   ldLot = GetSizeLot(); 
   ldStop = GetStopLossSell(); 
   ldTake = GetTakeProfitSell(); 
   lsComm = GetCommentForOrder(); 
   OrderSend(Symbol(),OP_SELL,ldLot,Bid,Slippage,ldStop,ldTake,lsComm,MAGIC,0,clOpenSell); 
   if (UseSound) PlaySound(NameFileSound); 
} 
string GetCommentForOrder() {   return(Name_Expert); } 
double GetSizeLot() {   return(Lots); } 
double GetStopLossBuy() {       return (Bid-sStopLoss*Point);} 
double GetStopLossSell() {      return(Ask+sStopLoss*Point); } 
double GetTakeProfitSell() {    return(Bid-sTakeProfit*Point); } 
double GetTakeProfitBuy() {     return(Bid+sTakeProfit*Point); } 

return(0);

//+------------------------------------------------------------------+
 
Vovo4ka:

Tipo, petrosian intelligente vuole fare una battuta...))

www.dukascopy.com mt4 e tecnologia java, il deposito minimo è di 1000 verdoni, l'ho scoperto di recente.
 
todem:

www.dukascopy.com mt4 e la tecnologia java, minimo dept 1000 verde, scoperto io stesso di recente.

Molte grazie.
 
Se l'indicatore è in un ciclo infinito con sleep, allora dovete inserire una funzione come if(!deinit)?
 
Vovo4ka:

Ragazzi dov'è l'errore.... già affrontato...ecco il codice...

quando si fa trading sulle termiche con spread fluttuante (una cifra in più aggiunta) il consulente scrive un errore, lotto sbagliato...

ma ecco il codice stesso.... dov'è l'errore???


fare la normalizzazione dei lotti

double GetSizeLot() {   return(NormalizeDouble(Lots,2)); }