Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1576

 
Eugen8519:

Ho fatto questa funzione, grazie per il vostro supporto e per il vostro aiuto.


Prego)
 
Mihail Matkovskij:

Dipende da come calcolerete lo stop and take in base alle statistiche... Non è molto chiaro cosa sia la "statistica per candela", come la calcoli.

La risposta è come il fischio di un cancro e la cosa strana è che risponde sempre alla mia domanda.

 
darirunu1:

La risposta è come il fischio di un gambero ed è strano che risponda sempre alla mia domanda.

Come si può rispondere a una domanda di cui non si conosce la natura...? :)

Per capire come calcolare lo stop e il take, nel tuo caso, devi sapere come si calcolano le statistiche a candela? Perché "statistiche di candele" è un termine molto ampio...

Inoltre, che tipo di rapporto stop and take vuoi...? Qui c'è tutto un sistema di trading da inventare per te, visto che non conosci nemmeno il compito da svolgere...
 
Mihail Matkovskij:

Come si può rispondere a una domanda in cui non è chiaro di cosa si tratta...? :)

Per capire come calcolare stop e take, nel tuo caso, devi sapere come si calcolano le statistiche delle candele? Dato che "statistiche a candela" è un termine molto flessibile...

Inoltre, che rapporto di stop e take vuoi...? Qui c'è tutto un sistema di trading da inventare per te, visto che non conosci nemmeno il compito da svolgere...

int cnt,ticket,total=0;

st = "orario generale Lun-Ven Mer-Ven Gio-Ven \n";

doppio cHeight, gHeight, max;

int sat, sun, mon, thu, wen, ths, fri; //, NN;

int H = TimeHour(TimeCurrent()); // determina l'ora corrente

doppio NN = H + N*24; // definire l'offset

se (NN>Bars) NN=Bars;

per (int t=0; t<24; t++)

{

int HeightZ = 0; int z=0;

per (int i=0; i<=NNN; i++)

{

HeightZ = MathAbs(High[i]-Low[i])/Point ;

z++;

}

Quali opzioni suggerisce?
 
darirunu1:

Quali opzioni suggerisce?
int cnt,ticket,total=0;

st = "часы общ. пон. вт. ср. чт. пт. \n";

double cHeight, gHeight, Max;

int sat, sun, mon, thu, wen, ths, fri; //, NN;

int H = TimeHour(TimeCurrent()); // определим текущий час

double NN = H + N*24; // определим смещение

if (NN>Bars) NN=Bars;

for (int t=0; t<24; t++)

{

  int HeightZ = 0; int z=0;

  for (int i=0; i<=NN; i++)

  {

    HeightZ = (High[i]-Low[i])/Point;

    z++;
  }

}

Per quanto ho capito, il vostro movimento è calcolato come altezza della barra(i MathAbs non erano necessari).

и

double NN = H + N*24;

qui si sta cercando di calcolare il numero di barre... Ma è meglio impostarlo come un semplice numero positivo, per cominciare.

Potete calcolare il movimento medio della barra in questo modo:

double avBarMove(int _period) {
  double cmMove = 0;
  for (int i = 0; i < _period; i++)
    cmMove += High[i]-Low[i];
  return cmMove / _period;
} 

Ora, potete provare a calcolare lo stop e il take in base al risultato della funzione.

 



Aiutami a posizionare correttamente la funzione

SendNotification ("текст");




Inserito qui per il messaggio di ingresso della posizione

void OPENORDER(string ord)

  {
  
  double priceL=m_symbol.Ask();
   if(ord=="Sell")      
    SendNotification ("текст");

        //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,my_lot,priceL)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
      if(!m_trade.Sell(my_lot,Symbol(),m_symbol.Bid(),my_SL,my_TP,""))
         Print("BUY_STOP -> false. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of Retcode: ",m_trade.ResultRetcodeDescription(),
               ", ticket of order: ",m_trade.ResultOrder());                     // Если sell, то не открываемся
     double priceS=m_symbol.Bid();
   if(ord=="Buy")
    SendNotification ("текст");
 //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,my_lot,priceS)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
      if(!m_trade.Buy(my_lot,Symbol(),m_symbol.Ask(),my_SL,my_TP,""))
 
         Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of result: ",m_trade.ResultRetcodeDescription(),
               ", ticket of deal: ",m_trade.ResultDeal());
   return;
 }

E sto già ricevendo con successo le notifiche sul mio smartphone.




Ma come e dove inserire

SendNotification

Ricevere un messaggio quando raggiungo lo stop loss o iltake profit?

 
Eugen8519:


Aiuto per posizionare correttamente la funzione


Inserito qui per il messaggio di ingresso della posizione

E sto già ricevendo con successo le notifiche sul mio smartphone.


Ma come e dove inserire

Ricevere un messaggio quando raggiungo lo Stop Loss o ilTake Profit?

Vedere OnTradeTransaction

 

Eugen8519:

Ma come e dove inserire

Inviare un messaggio quando viene raggiunto lo Stop Loss o ilTake Profit?

Per prima cosa, è necessario creare una funzione per controllare la chiusura degli ordini.

 
MakarFX:

Per prima cosa, dobbiamo creare una funzione per controllare la chiusura degli ordini.

OnTradeTransaction si attiverà quando qualsiasi ordine stop sul server viene attivato.

 
MakarFX:

Per prima cosa, dobbiamo creare una funzione per controllare la chiusura degli ordini.

Che ne dici di attraverso?

DEAL_REASON_SL
DEAL_REASON_TP
Motivazione: