Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 719

 
Artyom Trishkin:

Drucken Sie vor OrderModify() die Werte des Eröffnungskurses und des neuen Stoppkurses.

Und behalten Sie Ihr respektloses "Nein?" für sich, wenn Sie Hilfe brauchen. Ich habe jedoch in diesem Thread eine voll funktionsfähige Vorlage für jedes Schleppnetz gepostet - Sie können sie nachlesen.

respektloses "hat nicht"? - Tut mir leid, ich habe nichts hineingeschrieben.

 
        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){} }}

Bitte um Rat! Welche Funktion sollte hinzugefügt werden, um SELL durch Zahlen zu ersetzen, die der Reihe nach gehen. Wenn es ein offenes Geschäft gibt, setzen Sie 1. Sobald dieses Geschäft eröffnet wird, gibt es 2 und so weiter. Wenn es keine Angebote gibt, wird diese Zahl zurückgesetzt.

 
Artyom Trishkin:

Drucken Sie vor OrderModify() die Werte des Eröffnungskurses und des neuen Stoppkurses.

Es werden die gleichen Werte gedruckt. Warum wird dann auf != geprüft, können Sie mir das sagen?

 
Andrey Sokolov:

Schreibt die gleichen Werte. Warum wird dann auf != geprüft, können Sie mir das sagen?

Lesen Sie über den Vergleich realer Zahlen.

 
Artyom Trishkin:

Lesen Sie über den Vergleich realer Zahlen.

Ab zum Lesen. Danke
 
Andrey Sokolov:
Ich gehe jetzt lesen. Danke

Vergleichen Sie nicht nur, sondern prüfen Sie, ob es nicht an der Zeit ist, sich zu bewegen, d.h. ob es nicht weniger als nötig ist "n>=p".

 
Vitaly Muzichenko:

Vergleichen Sie nicht nur, sondern prüfen Sie, ob es nicht an der Zeit ist, sich zu bewegen, d.h. ob "n>=p" nicht weniger als nötig ist.

Danke
 
Ich habe ein Problem, wenn ich versuche, 2 Teile dieses Indikators auf ein Diagramm anzuwenden, nämlich das Fenster des ersten Indikators verschwindet und nur das Fenster des zweiten Indikators wird angezeigt, und wenn ich klicke, um ein Objekt - Rechteck - zu erstellen, werden 2 Objekte erstellt, eines von einem Indikator und ein anderes von einem anderen. Wie kann ich das Problem beheben, so dass mehrere Teile dieses Indikators im Diagramm verwendet werden können und Objekte korrekt erstellt werden können? Kann ich etwas im Code ändern oder umgekehrt?Beispiel
Dateien:
 

Ich habe den Indikator so gut wie möglich zusammengebaut
Benötige Hilfe, um Balken hervorzuheben, z.B. ein Rechteck, wenn Indizes im Bereich von +/- 0,4% liegen
Oder zumindest der Code selbst
Mein Indikatorcode

//+------------------------------------------------------------------+
//|                           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);}
//+------------------------------------------------------------------+

Der Code wurde mir empfohlen, aber ich weiß nicht, wie ich ihn einfügen kann:

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);

Ich danke Ihnen im Voraus.

 
Ist es möglich, anstelle von
Hoch/Tief>1,02 do
Hoch>Tief*1,02
Welche Option ist besser für den Indikator
Grund der Beschwerde: