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

 
TarasBY:
Stai parlando di "considerare" e DC?! ;)

Non ha niente a che fare con DC.
 

Ho giocato con un Expert Advisor abbastanza poco sofisticato che ho scritto. Ma ho deciso di aggiungere al mio esperto non uno ma diversi segnali per entrare nel mercato. Ma voglio che un solo ordine per ogni segnale entri nel mercato.

La questione è la seguente. Ho inventato per delimitare gli ordini di Magic. La ricerca degli ordini sarebbe così:

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                  |
//+-------------------------------------------------------------------------------------+
int FindOrders(int magic)
{
  int t;                                                 // Количество открытых позиции (buy's + sell's)
  int total = OrdersTotal() - 1;
  
  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() == magic && OrderSymbol() == Symbol())
      {
        t++;
      }
  }
  
  return(t);
}

Poi... dobbiamo aprire ordini per ogni tipo di segnale con il suo Magic. Per esempio, per le vendite l'avevo così prima:

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
  ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,magic,0,Red);
    return(true);
  
  return(false);
}

A questo punto, ho deciso di usare l'operatore switch, è ragionevole usare questo operatore in questo caso?

//+-------------------------------------------------------------------------------------+
//| Открытие коротких позиций                                                           |
//+-------------------------------------------------------------------------------------+
bool OpenSell()
{
  int ticket = -1;
  string myNote = "Сов шортанул";
  
    switch(maState)
  {
    case 4:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic6,0,Red); break;
    case 5:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic25,0,Red); break;
    case 6:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic150,0,Red); break;
    case 7:    ticket = OrderSend(Symbol(),OP_SELL,0.1,Bid,i_slippage,0,0,myNote,i_myMagic250,0,Red); break;
    default:   return(false);
  }
    return(true);
}

E questo è l'aspetto della funzione di trading:

//+-------------------------------------------------------------------------------------+
//| Открытие позиций                                                                    |
//+-------------------------------------------------------------------------------------+
bool Trade(int signal)
{
  if(signal == SIGNAL_BUY && FindOrders() == 0)
    if(!OpenBuy())
    return(false);
  
  if(signal == SIGNAL_SELL && FindOrders() == 0)
    if(!OpenSell())
    return(false);
    
  return(true);
}

Devo implementarlo attraverso l'operatore di commutazione anche qui? Stavo pensando di passare Magic attraverso parametri formali anche alla funzione FindOrders() , ma non so come...

 
Salve. Potete calcolare una possibile perdita per un tasso di cross, per esempio GBPCHF, aprire un ordine di 1 lotto e mettere uno stop di 50 pip. Per quanto ne so, il valore dei pip dipende dalla valuta di base, che non si sa cosa mostrerà in futuro.
 

Il valore di 1 pip di GBPCHG (se non mi sbaglio) per 1 lotto è di 8 dollari. Quindi, se il prezzo va contro di voi e viene attivato uno stop-loss, verrà registrata una perdita di circa $50*8=-$400.

E le perdite sullo spread asc-bid (6-8 pip) devono essere aggiunte...
 
Quindi il costo dell'oggetto cambia ogni volta
 

Domanda su MT4. Ho testato e ottimizzato l'EA per un bel po' di tempo (alcuni giorni).

Tutto era a posto. E poi improvvisamente, quando eseguo l'EA, comincia a mostrare l'entrata su ogni barra e l'uscita immediatamente, insomma, non è una strategia, ma il diavolo sa cosa!

Probabilmente da qualche parte, qualcosa è andato storto nelle impostazioni. Dove e cosa potrebbe essere? Aiuto. plz....

 
Caesar34:
Ciao... Potete per favore dirmi come fare un periodo MA o EMA con un valore meno, quando le impostazioni non permettono di farlo... in MT4
Spam?
 
Caesar34:


No!
Allora perché postare in un paio di thread con una sola domanda?
 

La query iLow restituisce un valore con 4 cifre decimali, anche se il grafico ha 5 cifre decimali.

A causa di questo, lo sviluppo del primo programma mql4 è bloccato. Potete dirmi quale può essere il problema? O forse dovrebbe essere così?

 
PolarsLynx:

La query iLow restituisce un valore con 4 cifre decimali, anche se il grafico ha 5 cifre decimali.

A causa di questo, lo sviluppo del primo programma mql4 è bloccato. Potete dirmi quale può essere il problema? O forse dovrebbe essere così?

Dov'è il codice?
Motivazione: