Hilfe bei der Codierung - Seite 667

 
Ich brauche jemanden, um mir zu helfen, diese EMA Crossover zu einem EA. offen kaufen, wenn blauer Pfeil erscheinen und verkaufen, wenn der rote Pfeil erscheinen den Handel zu beenden, wenn die Kerze neben dem Pfeil zu schließen. pls lassen Sie die SL und TP ajustable und die MAs sein. ich will nur, um es zu verwenden, um die Kerze zu handeln
 
dotmund:
Ich brauche jemanden, der mir helfen, diese ema crossover zu einem EA. öffnen Sie kaufen, wenn der blaue Pfeil erscheinen und verkaufen, wenn der rote Pfeil erscheinen den Handel zu beenden, wenn die Kerze neben dem Pfeil zu schließen. pls lassen Sie die SL und TP ajustable und die MAs sein. ich will nur, um es zu verwenden, um die Kerze zu handeln
Überprüfen Sie diesen Beitrag: https: //www.mql5.com/en/forum/180648/page940
 
mladen:

Für die Kerzenzeit verwenden Sie am besten einen darauf spezialisierten Indikator (wie den beigefügten)

Was den Periodenseparator angeht: Er ist bereits nmc, aber Sie sollten vielleicht den beigefügten Indikator verwenden (er sollte den Prozessor weniger belasten)

Ich danke Ihnen vielmals. Ich versuche, die Option "BarsLimit" hinzuzufügen, aber ich habe es nicht geschafft. Könnten Sie mir bitte helfen. Ich danke Ihnen sehr für Ihre Zeit.
Dateien:
 
Entropy:
Ich danke Ihnen vielmals. Ich versuche, die Option "BarsLimit" hinzuzufügen, aber ich habe es nicht geschafft. Könnten Sie mir bitte helfen. Vielen Dank für Ihre Zeit.

Entropie

Hier ist eine Version mit dieser Option hinzugefügt

Dateien:
 

Hallo mladen können Sie mir beibringen, die Erklärung zu lösen.

Dies ist, was ich die Warnung zu bekommen.

declaration of 'MinLots' hides global declaration at line 93    
declaration of 'MaxLots' hides global declaration at line 94    
declaration of 'Magic' hides global declaration at line 118     
void CalculateMM()
{
   double MinLots=MarketInfo(Symbol(),MODE_MINLOT);
   double MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);
   Lots=AccountFreeMargin()/100000*RiskPercent;
   Lots=MathMin(MaxLots,MathMax(MinLots,Lots));
   if(MinLots<0.1)Lots=NormalizeDouble(Lots,2);
   else
   {
     if(MinLots<1)Lots=NormalizeDouble(Lots,1);
     else Lots=NormalizeDouble(Lots,0);
   }
   if(Lots<MinLots)Lots=MinLots;
   if(Lots>MaxLots)Lots=MaxLots;
   return;



int CloseBuyOrders(int Magic)
{
  int total=OrdersTotal();

  for (int cnt=total-1;cnt>=0;cnt--)
  {
    if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) 
    if(OrderMagicNumber()==Magic&&OrderSymbol()==Symbol())
    {
      if(OrderType()==OP_BUY)
      {
       ClTicket= OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
    }
  }
  return(0);
}

int CloseBuyOrdersHiddenTP(int Magic)
{
  int total=OrdersTotal();

  for (int cnt=total-1;cnt>=0;cnt--)
  {
    if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) 
    if(OrderMagicNumber()==Magic&&OrderSymbol()==Symbol())
    {
      if(OrderType()==OP_BUY&&Bid>(OrderOpenPrice()+TakeProfit*Point))
      {
        ClTicket=OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
    }
  }
  return(0);
}

Danke dir .

 
stevenpun:

Hallo mladen können Sie mir beibringen, die Erklärung zu lösen.

Das ist, was ich bekomme die Warnung .



Danke dir .

Zuerst dies :

void CalculateMM()
{
   double tMinLots=MarketInfo(Symbol(),MODE_MINLOT);
   double tMaxLots=MarketInfo(Symbol(),MODE_MAXLOT);
   Lots=AccountFreeMargin()/100000*RiskPercent;
   Lots=MathMin(tMaxLots,MathMax(tMinLots,Lots));
   if(tMinLots<0.1)Lots=NormalizeDouble(Lots,2);
   else
   {
     if(tMinLots<1)Lots=NormalizeDouble(Lots,1);
     else Lots=NormalizeDouble(Lots,0);
   }
   if(Lots<tMinLots)Lots=tMinLots;
   if(Lots>tMaxLots)Lots=tMaxLots;
   return;

und dies

int CloseBuyOrders(int tMagic)
{
  int total=OrdersTotal();

  for (int cnt=total-1;cnt>=0;cnt--)
  {
    if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) 
    if(OrderMagicNumber()==tMagic&&OrderSymbol()==Symbol())
    {
      if(OrderType()==OP_BUY)
      {
       ClTicket= OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
    }
  }
  return(0);
}

int CloseBuyOrdersHiddenTP(int tMagic)
{
  int total=OrdersTotal();

  for (int cnt=total-1;cnt>=0;cnt--)
  {
    if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) 
    if(OrderMagicNumber()==tMagic&&OrderSymbol()==Symbol())
    {
      if(OrderType()==OP_BUY&&Bid>(OrderOpenPrice()+TakeProfit*Point))
      {
        ClTicket=OrderClose(OrderTicket(),OrderLots(),Bid,3);
      }
    }
  }
  return(0);
}
 

Hallo Mladen,

Würden Sie mich mit diesem Code Sir, auf was muss behoben werden?

Auch, wenn es geht höhere Zeitrahmen, Ist es möglich, von ändern

===> 1Min ~ 30 Min ==> alle 10 Pips

===> 1 Hour ======> alle 50 Pips

===> 4 Hour, Daily ======> alle 100 Pips

===> Wöchentlich, Monatlich ===> alle 1000 Pips

Rechtecke sind anstelle von Linien erwünscht, Sir.

#property indicator_chart_window

#define ONDA_BEGINS 0

#define ONDA_CONTAINS 1



//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init()

{

//---- Indikatoren


//----

return(0);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Funktion zur Deinitialisierung von Indikatoren |

//+------------------------------------------------------------------+

int deinit()

{

//----

for (int ix = 0; ix < nLines; ix++) // meine horizontalen Linien löschen

{

ObjectDelete("tensLines "+ix);

}


//----

return(0);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Iterationsfunktion |

//+------------------------------------------------------------------+

int start()

{

int nLines = 40; // Anzahl der insgesamt zu zeichnenden Linien

double lineInterval = 0.0010; // Intervall zwischen den Linien

double normPreis = NormalizeDouble(Close[1],3); // Aktueller Preis wird auf die nächste "10" gerundet


for (int ix = 0; ix < nLines; ix++) // Anzahl der Schleifen

{

if(ObjectFind("tensLines "+ix) < 0)

ObjectCreate("tensLines "+ix, OBJ_HLINE, 0, 0, normPrice+((ix-(nLines/2))*lineInterval)); // Halb über und halb unter dem aktuellen Preis platzieren


else ObjectSet("tensLines "+ix, OBJPROP_PRICE1, normPrice+((ix-(nLines/2))*lineInterval));

ObjectSet("tensLines "+ix,OBJPROP_COLOR,DarkSlateGray); // Damit die Linien besser aussehen

}

//----

return(0);

}

//+------------------------------------------------------------------+


void ObjectNameDeleteAll(string name, int where=ONDA_BEGINS, int type=EMPTY)

{

for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--)

{

string on = Objektname(iObj);

int iPos = StringFind(on, name);

if (iPos < 0) weiter;

if (iPos > 0 && where == ONDA_BEGINS) continue;

if (type == EMPTY) ObjectDelete(on);

sonst wenn (type == ObjectType(on)) ObjectDelete(on);

}

}




//---

 
murnathan32:

Hallo Mladen,

Würden Sie mich mit diesem Code Sir, auf was muss behoben werden?

Auch, wenn es geht höhere Zeitrahmen, Ist es möglich, von ändern

===> 1Min ~ 30 Min ==> alle 10 Pips

===> 1 Hour ======> alle 50 Pips

===> 4 Hour, Daily ======> alle 100 Pips

===> Wöchentlich, Monatlich ===> alle 1000 Pips

Rechtecke sind anstelle von Linien erwünscht, Sir.

#property indicator_chart_window

#define ONDA_BEGINS 0

#define ONDA_CONTAINS 1



//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init()

{

//---- Indikatoren


//----

return(0);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Funktion zur Deinitialisierung von Indikatoren |

//+------------------------------------------------------------------+

int deinit()

{

//----

for (int ix = 0; ix < nLines; ix++) // meine horizontalen Linien löschen

{

ObjectDelete("tensLines "+ix);

}


//----

return(0);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Iterationsfunktion |

//+------------------------------------------------------------------+

int start()

{

int nLines = 40; // Anzahl der insgesamt zu zeichnenden Linien

double lineInterval = 0.0010; // Intervall zwischen den Linien

double normPreis = NormalizeDouble(Close[1],3); // Aktueller Preis wird auf die nächste "10" gerundet


for (int ix = 0; ix < nLines; ix++) // Anzahl der Schleifen

{

if(ObjectFind("tensLines "+ix) < 0)

ObjectCreate("tensLines "+ix, OBJ_HLINE, 0, 0, normPrice+((ix-(nLines/2))*lineInterval)); // Halb über und halb unter dem aktuellen Preis platzieren


else ObjectSet("tensLines "+ix, OBJPROP_PRICE1, normPrice+((ix-(nLines/2))*lineInterval));

ObjectSet("tensLines "+ix,OBJPROP_COLOR,DarkSlateGray); // Damit die Linien besser aussehen

}

//----

return(0);

}

//+------------------------------------------------------------------+


void ObjectNameDeleteAll(string name, int where=ONDA_BEGINS, int type=EMPTY)

{

for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--)

{

string on = Objektname(iObj);

int iPos = StringFind(on, name);

if (iPos < 0) weiter;

if (iPos > 0 && where == ONDA_BEGINS) continue;

if (type == EMPTY) ObjectDelete(on);

sonst wenn (type == ObjectType(on)) ObjectDelete(on);

}

}




//---

Versuchen Sie dies so

#property indicator_chart_window

#define  ONDA_BEGINS   0

#define  ONDA_CONTAINS 1


    int nLines = 40;                                   // Number of total line to draw

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int init()

  {

//---- indicators


//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function                       |

//+------------------------------------------------------------------+

int deinit()

  {

//----

    for (int ix = 0; ix < nLines; ix++) // delete my horizontal lines

      {

      ObjectDelete("tensLines"+ix);

      }


//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int start()

  {


   double lineInterval = 0.0010;                      // Interval between lines

   double normPrice = NormalizeDouble(Close[1],3);    // Current price is rounded to nearest "10"


   for (int ix = 0; ix < nLines; ix++)                // Loop span number of times

      {

      if(ObjectFind("tensLines"+ix) < 0) 

         ObjectCreate("tensLines"+ix, OBJ_HLINE, 0, 0, normPrice+((ix-(nLines/2))*lineInterval));    // Place half above and half below the current price


      else ObjectSet("tensLines"+ix, OBJPROP_PRICE1, normPrice+((ix-(nLines/2))*lineInterval));

      ObjectSet("tensLines"+ix,OBJPROP_COLOR,DarkSlateGray);      // Make the lines look better

      }

 

//----

   return(0);

  }

//+------------------------------------------------------------------+


void ObjectNameDeleteAll(string name, int where=ONDA_BEGINS, int type=EMPTY)

{

    for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--)

    {

        string on   = ObjectName(iObj);

        int    iPos = StringFind(on, name);

        if (iPos < 0)                         continue;

        if (iPos > 0 && where == ONDA_BEGINS) continue;

        if      (type == EMPTY)         ObjectDelete(on);

        else if (type == ObjectType(on)) ObjectDelete(on);

    }

}



 
hey Jungs suchen, um jemanden zu mieten, um einige Code in Python für mich zu schreiben, bereit, für someones Arbeit zu zahlen oder wenn jemand tut es kostenlos, das ist auch cool lol. aber nur zurück zu mir, wann immer und lassen Sie mich wissen, wenn jemand kann mir helfen, ill ins Detail gehen, sobald ich jemand die Aufmerksamkeit. Es wird auf Bollinger Bands vor allem mit ein paar anderen Indikatoren.
 
mladen:

Versuch es mal so

Wow! Du bist der Mann. Danke mladen für die Segnungen.

Eine weitere Bitte. Kannst du das Raster in Rechtecke aufteilen, wie im Anhang/Bild unten, z.B. 10 Pips pro Rechteck. Lassen Sie das Rechteck die Zukunft projizieren.

Ich habe das Gefühl, dass es einfacher für die Augen ist als das Standardraster. Und es dauert eine halbe Sekunde, um zu sehen, wie viele Pips Bewegung youre Blick auf.

    ObjectCreate("Rect02", OBJ_RECTANGLE, 0, Time[0], Bid, Time[Bars], (Bid+0.0010) ); //make bar above cur price
      ObjectSet("Rect02", OBJPROP_COLOR, Silver );
      }
//================= Move the Rect with new ticks/candles ===========================
   
   else {
      ObjectMove("Rect01", 0, Time[0], WindowPriceMin()*0.95);
      ObjectMove("Rect02", 0, Time[0], Bid); 

}

Dateien: