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

 
Artyom Trishkin:

Prima di OrderModify(), stampa i valori del prezzo di apertura e del nuovo prezzo di stop.

E tieni per te il tuo irrispettoso "no?" se vuoi aiuto. Tuttavia, ho postato un modello completamente funzionante per qualsiasi pesca a strascico proprio in questo thread - puoi cercarlo.

irrispettoso "non l'ha fatto?" - Scusa, non ci ho messo niente.

 
        if((fMarketOrderss(OP_SELL)>=1)) { 
       if( ((Bid-Opens)/ma+Times/1440) > SELL ) {
if(OrderSend(Symbol(),OP_SELL,0.01,Bid,3,0,0,NULL,321,0,1)>0){} }}

Per favore, consigliatemi! Quale funzione dovrebbe essere aggiunta per sostituire SELL con numeri che vanno in ordine. Se c'è un accordo aperto, allora mettete 1. Non appena questo accordo viene aperto, ne darà 2 e così via. Se non ci sono accordi, questo numero verrà azzerato.

 
Artyom Trishkin:

Prima di OrderModify(), stampa i valori del prezzo di apertura e del nuovo prezzo di stop.

Stampa gli stessi valori. Perché controlla per != allora, puoi dirmelo?

 
Andrey Sokolov:

Scrive gli stessi valori. Perché controlla per != allora, puoi dirmelo?

Leggi come confrontare i numeri reali.

 
Artyom Trishkin:

Leggi come confrontare i numeri reali.

Fuori a leggere. Grazie
 
Andrey Sokolov:
Vado a leggere. Grazie

Non limitatevi a confrontare, ma verificate "non è ora di muoversi?", cioè non è meno del necessario "n>=p"

 
Vitaly Muzichenko:

Non limitatevi a confrontare, ma verificate "non è ora di muoversi?", cioè "n>=p" non è meno del necessario

Grazie
 
Salve, ho un indicatore di livelli di colore, ho un problema quando cerco di applicare 2 parti di questo indicatore ad un grafico, cioè la finestra del 1° indicatore scompare e si visualizza solo la finestra del 2° indicatore, e quando clicco per creare un oggetto - un rettangolo, vengono creati 2 oggetti, uno da un indicatore e l'altro da un altro. Si prega di consigliare come risolvere il problema, in modo che diverse parti di questo indicatore possano essere utilizzate nel grafico e gli oggetti possano essere creati correttamente? Posso cambiare qualcosa nel codice o viceversa?Esempio
File:
 

Ho assemblato l'indicatore come meglio potevo
Ho bisogno di aiuto per evidenziare le barre, per esempio un rettangolo, quando gli indici sono in zona +/- 0,4%
O almeno il codice stesso
Il mio codice indicatore

//+------------------------------------------------------------------+
//|                           Copyright © 2018, forex-time@mail.ru   |
//|                        Copyright © 2018, mr.aliaksei@yandex.ru   |
//|                                         % Алексея Королькова.mq4 |
//+------------------------------------------------------------------+
#property copyright   "Copyright © 2018, forex-time@mail.ru"
#property copyright   "Copyright © 2018, mr.aliaksei@yandex.ru"
#property link        "http://axe44.opentraders.ru/bio/"
#property version     "1.10"
#property strict 
//+------------------------------------------------------------------+
//--- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  LimeGreen
#property  indicator_color2  Red
#property  indicator_color3  Blue
#property  indicator_width1  2
#property  indicator_width2  2
#property  indicator_width3  2
#property  indicator_level1  0.0
#property  indicator_levelcolor DarkGray
//--- indicator parameters
input int InpFastEMA=14;   // Fast EMA Period
input int Metod     =1;   // Metod EMA Period 0-3
input string Pereferics="";// Переферикс после названия основной пары. Например EURUSD.m где переферикс .m
//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
//--- right input parameters flag
bool   ExtParameters=false;
string IndName= "% A.K ("+IntegerToString(InpFastEMA)+")";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
   IndicatorDigits(Digits+1);
//--- drawing settings
   SetIndexBuffer(0,Buffer1);SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(1,Buffer2);SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(2,Buffer3);SetIndexStyle(2,DRAW_LINE);

//--- name for DataWindow and indicator subwindow label
   IndicatorShortName(IndName);
//--- check for input parameters
   if(InpFastEMA<=1  )
     {
      Print("Wrong input parameters");
      ExtParameters=false;
      return(INIT_FAILED);
     }
   else
      ExtParameters=true;
//--- initialization done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
                 const double& low[],
                 const double& close[],
                 const long& tick_volume[],
                 const long& volume[],
                 const int& spread[])
  {
    int i = rates_total-prev_calculated-1;

    while(i >= 0)  
      {
      double eurusd=(((iMA("EURUSD"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("EURUSD"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double eurjpy=(((iMA("EURJPY"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("EURJPY"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double usdjpy=(((iMA("USDJPY"+Pereferics,0,InpFastEMA,0,Metod,0,i)+1)/(iMA("USDJPY"+Pereferics,0,InpFastEMA,0,Metod,1,i)+1))-1)*10000;
      double eur=(eurusd+eurjpy)/2;
      double usd=(-eurusd+usdjpy)/2;
      double jpy=-(usdjpy+eurjpy)/2;
      Buffer1[i]=ND(eur,1);
      Buffer2[i]=ND(usd,1);
      Buffer3[i]=ND(jpy,1);

      Pair(IndName+"EUR","EUR",54,indicator_color1);
      Pair(IndName+"USD","USD",28,indicator_color2);
      Pair(IndName+"JPY","JPY",5,Blue);
                  
      i--;}
return(rates_total);}
//+------------------------------------------------------------------+
//|ND - нормализация числа                                           |
//-------------------------------------------------------------------+
double ND(double value, int digits) {  
      return(NormalizeDouble(value, digits));}  
//+------------------------------------------------------------------+
void Pair(string name,string txt, int shift, color col){
      int window=WindowFind(IndName);
      //если окно не найдено - "текстовые метки" будут созданы в окне графика
      if(window<0) window=0;
       ObjectCreate(name,OBJ_LABEL,window,0,0,0,0,0,0);
          ObjectSet(name,OBJPROP_CORNER,0);
          ObjectSet(name,OBJPROP_XDISTANCE,shift);
          ObjectSet(name,OBJPROP_YDISTANCE,2);
          ObjectSet(name,OBJPROP_CORNER,CORNER_RIGHT_UPPER);
      ObjectSetText(name,txt,8,"Arial",col);}
//+------------------------------------------------------------------+

Il codice mi è stato raccomandato, ma non so come allegarlo:

ObjectCreate(VLINE, OBJ_VLINE, 0, 0, 0);
ObjectSet(VLINE, OBJPROP_COLOR, VLINE_COLOR);
ObjectSet(VLINE, OBJPROP_STYLE, VLINE_STYLE);

ObjectDelete(VLINE);

if(Bf<0.4 && Bf>(-0.4))
ObjectSet(VLINE, VLINE, VLINE);

Grazie in anticipo.

 
È possibile invece di
Alto/Basso>1.02 fare
Alto>Basso*1.02
Quale opzione è migliore per l'indicatore