Una domanda per i conoscitori di MQL - pagina 10

 
Rita:

Oh, stavo ancora pensando :)

Se

if (NumberOfPositions(NULL, OP_BUY,Magic)>=2 && NumberOfPositions(NULL,OP_SELL,Magic)>=2) {
 for{
// а сюда счетчик, по которому 2 раза пройдет
                    ClosePosFirstProfit(NULL,OP_BUY, Magic);
                    ClosePosFirstProfit(NULL,OP_SELL, Magic);
}
}
No?

 
Grazie Abzasc, farò una prova.
 
Salve, ho iniziato da poco ad imparare a scrivere in MQL4 e non capisco come (con quale comando) si può collegare non un indicatore incorporato, ma uno preso da Code Base ad un Expert Advisor? Puoi dirmelo per favore!
 
savage_pinguin:
Salve, ho iniziato da poco ad imparare a scrivere in MQL4 e non capisco come (con quale comando) si può collegare non un indicatore incorporato, ma uno preso da Code Base ad un Expert Advisor? Puoi dirmelo per favore!

iCustom() per aiutare
 

Pomeriggio.

 if  ( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {
// если линии пересеклись - открываем позицию
   ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-SL*Point,Ask+TP*Point,
                                             "Хи-Хи",MagicNum,0,CLR_NONE);
     if(ticket < 0) { Print("Ошибка открытия ордера BUY #", GetLastError()); 
               Sleep(10000);   return (0); }
   }

L'Expert Advisor utilizza un indicatore personalizzato Accumulation2MA, sul quale l'indicatore MA è collegato in modalità iMAOnArray.

Segnali di entrata/uscita e attraversamento della linea!

Non capisco quale sia il problema. Ma la metà dei segnali di entrata/uscita sono "sfacciatamente" disorientati! Senza motivo!

La stessa cosa quando si chiude:

 for (int v=0; v<OrdersTotal(); v++)                             {//сортируем       
      if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES))               {//перебираем           
        if (OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNum)   {//выбираем 
//-----------------------------------------------------                  
if (OrderType() == OP_SELL) {//если линии пересеклись, то закрываем: 
      if( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {
                 OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // закрываем позицию
                 return(0); // выходим
                }   
......

Quasi la metà degli scambi viene persa in questo modo. Puoi dirmi cosa c'è che non va?

Le condizioni sono le più semplici! Le linee sono chiaramente in movimento! Ma le posizioni non sono sempre aperte/chiuse! Il diario è "silenzioso".

Li ho mostrati con le frecce.

//------заполняем массив значениями Accumulation2MA -----------------
double Accumulation2MA[50];
int    i=0;  while (i<50)  {
Accumulation2MA[i]= iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0, i);
                  i++;     }
//------Вешаем на Accumulation2MA - линию МА ---------------
ArraySetAsSeries(Accumulation2MA,true);
double MA_0 = iMAOnArray(Accumulation2MA,0,MA_Period,0,MODE_SMA,0);
double MA_1 = iMAOnArray(Accumulation2MA,0,MA_Period,0,MODE_SMA,1);
double Accumulation2MA_0=iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0,0);
double Accumulation2MA_1=iCustom(NULL, 0,"Accumulation2MA_v03",SMA,FMA,0,1);
 
Rita:

Pomeriggio.

L'Expert Advisor utilizza un indicatore personalizzato Accumulation2MA, al quale è collegato l'indicatore MA in modalità iMAOnArray.

Segnali di entrata/uscita e attraversamento della linea!

Non capisco quale sia il problema. Ma la metà dei segnali di entrata/uscita sono "palesemente" ignorati! Senza motivo!

La stessa cosa quando si chiude:

Quasi la metà degli scambi viene persa in questo modo. Puoi dirmi cosa c'è che non va?

Le condizioni sono le più semplici! Le linee sono chiaramente in movimento! Ma le posizioni non sono sempre aperte/chiuse! Il diario è "silenzioso".

Li ha mostrati con le frecce.

Forse questo può accadere quando si saltano le zecche. Cioè, mentre Start() è in esecuzione, arriva un nuovo tick (in cui le condizioni sarebbero soddisfatte), ma viene ignorato mentre Start() è in esecuzione.

Nel prossimo tick le condizioni non sono soddisfatte - sono sparite.

In effetti, l'incrocio delle linee dell'indicatore è un segnale molto scomodo, non lo uso più da molto tempo. È meglio sottrarre un indicatore da un altro e tracciare un attraversamento dello zero. Tuttavia, è una questione di gusti.

 
Rita:

Pomeriggio.

L'Expert Advisor utilizza un indicatore personalizzato Accumulation2MA, sul quale l'indicatore MA è collegato in modalità iMAOnArray.

Segnali di entrata/uscita e attraversamento della linea!

Non capisco quale sia il problema. Ma la metà dei segnali di entrata/uscita sono "sfacciatamente" disorientati! Senza motivo!

La stessa cosa quando si chiude:

Quasi la metà degli scambi viene persa in questo modo. Puoi dirmi cosa c'è che non va?

Le condizioni sono le più semplici! Le linee sono chiaramente in movimento! Ma le posizioni non sono sempre aperte/chiuse! Il diario è "silenzioso".

Forse è più facile calcolare la seconda linea dell'indicatore. Allora i problemi dovrebbero sparire

 
MetaDriver:

Questo può probabilmente accadere quando le zecche vengono saltate. Cioè, mentre Start() è in esecuzione, arriva un nuovo tick (in cui le condizioni sarebbero state soddisfatte), ma viene ignorato mentre Start() è in esecuzione.

Nel prossimo tick le condizioni non sono soddisfatte - è fatta.

In effetti, l'incrocio delle linee dell'indicatore è un segnale molto scomodo, non lo uso più da molto tempo. È meglio sottrarre un indicatore dall'altro e monitorare l'attraversamento dello zero. È una questione di gusto.

La sottrazione e il tracciamento dell'attraversamento dello zero non sono praticamente la stessa cosa dell'esempio precedente?

//если линии пересеклись, то закрываем: 
      if( Accumulation2MA_1<=MA_1  &&    Accumulation2MA_0>MA_0 )   {

A prima vista, sembra uno schiaffo in faccia!

Cosa ti fa pensare che "l'attraversamento dello zero" funzionerà meglio?

 
VINAR:

Può essere più facile calcolare la seconda linea dell'indicatore. Allora i problemi dovrebbero scomparire

Non capisco bene cosa intendi per "calcolare la seconda linea nell'indicatore"? Puoi spiegare?

============================

Ora sto testando di nuovo l'Expert Advisor (a proposito, funziona aprendo i prezzi) e sono stupito di vedere che al momento funziona perfettamente! Il salto di segnale è quasi scomparso!

E ieri ha mancato la metà dei segnali nello stesso mt4! Qualche tipo di miracolo....

 
Rita:

Sottrarre e tracciare un passaggio di zero non è praticamente la stessa cosa che

A prima vista, è a testa alta così come a testa alta!

Cosa le fa pensare che "attraversare lo zero" funzionerebbe meglio?

In teoria, qualunque cosa. In pratica:

1) possiamo facilmente controllare la differenza tra la posizione di mercato raccomandata dall'indicatore e la posizione reale negli ordini. Cioè l'indicatore risultante mostrerà una curva già pronta che può essere interpretata come "positivo/negativo"=="salire/scendere". È molto comodo per i sistemi a testa in giù.

2) C'è la possibilità di raffinare convenientemente il segnale (moltiplicazione per coefficienti, intersezioni con altre linee di criterio, ecc.)

Quindi, come ho detto, è una questione di gusti. :)