[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 4

 
auf ein Signal: Fraktal (Indikator olyakish). nur 1 Position wird geöffnet, die auf dem gegenüberliegenden Fraktal geschlossen wird und die gegenüberliegende Position wird sofort geöffnet. Ziel: Kodierung eines Stopps bei dem Minimal- oder Maximalwert des Fraktals, bei dem die Position eröffnet wurde +\- 5 Pips.
 
Sie sollten auf jeden Fall
überprüfen - wenn der Preis zum Zeitpunkt der Eröffnung der Bestellung +/-5 pt von der fraktalen
gegangen ist - oder den Moment zu öffnen, wenn der Preis in den Korridor +/-5 von der fraktalen
= setzen Stops / Sticks + dann überprüfen Sie die Einfrieren Ebenen
 

Hallo meine Herren Fachleute!

Endlich hat mein Gehirn herausgefunden, wie man einen EA installiert, aber,

Ich habe Rabbit3 installiert, gestartet und die Berechtigung für automatischen Handel gesetzt. Ich habe Rabbit3, ich habe es, ich habe einen Verkaufs- oder Kauf-Button, und dann habe ich eine Bestätigung. Lot 0,01, die Schaltflächen Verkaufen und Kaufen sind inaktiv, und wenn ich Lot auf 0,1 ändere, heißt es "Nicht genug Geld". Was sollte ich tun? Ist dieser EA in der Lage, Mikro-Lot-Handel oder nicht?

 

Ich habe beschlossen, die Positionseröffnung mit dem Indikator MACD_Histogram(zu finden in der Basis https://www.mql5.com/ru/code/8253) zu codieren, aber ich kann nicht herausfinden, wie man es richtig codiert. Ich sollte einige Korrekturen an Indikator hinzufügen, es hat keine Fehler beim Kompilieren, aber Tester tadelt Puffer. Bitte beraten Sie mich, wie und was zu beheben ist.

//+------------------------------------------------------------------+
//|                                                           E .mq4 |
//|                      Copyright © 2008, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern string separator1 = "*** MACD Settings ***";
extern int FastMAPeriod = 12;
extern int SlowMAPeriod = 26;
extern int SignalMAPeriod = 9;
extern double Lots = 0.01;
#define arrowsDisplacement 0.0001

//---- buffers
double MACDLineBuffer[];
double SignalLineBuffer[];
double HistogramBuffer[];
double bullishDivergence[];
double bearishDivergence[];
//---- variables
double alpha = 0;
double alpha_1 = 0;
static datetime lastAlertTime;
static string   indicatorName;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  { 
//---- 
   SetIndexStyle(0, DRAW_LINE);                        SetIndexBuffer(0, MACDLineBuffer);
   SetIndexStyle(1, DRAW_LINE);                        SetIndexBuffer(1, SignalLineBuffer);
   SetIndexStyle(2, DRAW_HISTOGRAM, STYLE_SOLID,2);    SetIndexBuffer(2, HistogramBuffer);
   SetIndexStyle(3, DRAW_ARROW);                       SetIndexArrow(3, 233);
   SetIndexStyle(4, DRAW_ARROW);                       SetIndexArrow(4, 234);
//----
	  alpha = 2.0 / ( SignalMAPeriod + 1.0);
	  alpha_1 = 1.0 - alpha;
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   for(int i = ObjectsTotal() - 1; i >= 0; i--)
     {
       string label = ObjectName( i);
       if(StringSubstr( label, 0, 19) != "MACD_DivergenceLine")
           continue;
       ObjectDelete( label);   
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   int limit;
   int counted_bars = IndicatorCounted();
   //---- check for possible errors
   if( counted_bars < 0) 
       return(-1);
   //---- last counted bar will be recounted
   if( counted_bars > 0) 
       counted_bars--;
   limit = Bars - counted_bars;
   CalculateIndicator( counted_bars);
//----
   for(int i = limit; i >= 0; i--)
     {
       MACDLineBuffer[ i] = iMA(NULL, 0, FastMAPeriod, 0, MODE_EMA, PRICE_CLOSE, i) - 
                           iMA(NULL, 0, SlowMAPeriod, 0, MODE_EMA, PRICE_CLOSE, i);
       SignalLineBuffer[ i] = alpha* MACDLineBuffer[ i] + alpha_1* SignalLineBuffer[ i+1];
       HistogramBuffer[ i] = MACDLineBuffer[ i] - SignalLineBuffer[ i];
     }

//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CalculateIndicator(int countedBars)
  {
   for(int i = Bars - countedBars; i >= 0; i--)
     {
       CalculateMACD( i);
       CatchBullishDivergence( i + 2);
       CatchBearishDivergence( i + 2);
     }              
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CalculateMACD(int i)
  {
   MACDLineBuffer[ i] = iMA(NULL, 0, FastMAPeriod, 0, MODE_EMA, PRICE_CLOSE, i) - 
                       iMA(NULL, 0, SlowMAPeriod, 0, MODE_EMA, PRICE_CLOSE, i);
   SignalLineBuffer[ i] = alpha* MACDLineBuffer[ i] + alpha_1* SignalLineBuffer[ i+1];
   HistogramBuffer[ i] = MACDLineBuffer[ i] - SignalLineBuffer[ i];      
  }
//+------------------------------------------------------------------+
//|         сигнал                                                         |
//+------------------------------------------------------------------+
void CatchBullishDivergence(int shift)
  {   
   int currentTrough = shift;
   int lastTrough = GetIndicatorLastTrough( shift);
//----   
   if( MACDLineBuffer[ currentTrough] > MACDLineBuffer[ lastTrough] && 
      Low[ currentTrough] < Low[ lastTrough])
     {
       bullishDivergence[ currentTrough] = MACDLineBuffer[ currentTrough] - 
                                          arrowsDisplacement;
       // OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red);
       //----
       
       //----
       
       //----
       
     }
//----   
 
Kann mir jemand bei einer Frage helfen...
 
müssen Sie die folgenden Eigenschaften einstellen
- #Eigenschaftspuffer
- #Eigenschaftsfarben
siehe Beispiele in demselben MASD-Code
 
Korey >> :
Eigenschaften einstellen müssen
- #Eigenschaftspuffer
- #Eigenschaftsfarben
siehe Beispiele in demselben MASD-Code

Leider hilft das nicht. Das gleiche Protokoll sagt 2009.02.11 00:08:10 2009.01.05 00:00 E_ EURGBP,M1: Die Funktion SetIndexBuffer darf nur von einem benutzerdefinierten Indikator aufgerufen werden

Wiederholt sich 3 Mal und ..... sieht aus, als gäbe es ein Problem...was gibt es sonst noch?

Hier ist die Übersetzung...2009.02.11 00:08:10 2009.01.05 00:00 E_ EURGBP,M1: SetIndexBuffer Funktion darf nur von einem benutzerdefinierten Indikator aufgerufen werden

 
amur писал(а) >>

Hier ist die Übersetzung...2009.02.11 00:08:10 2009.01.05 00:00 E_ EURGBP, M1: Funktion SetIndexBuffer sollte nur von benutzerdefinierten Indikatoren aufgerufen werden

Custom?) Im Tester testen Sie Expert Advisors, nicht Indikatoren, und wenn es sich um Indikatoren handelt, testen Sie Expert Advisors. Und dies ist immer noch ein Indikator, auch wenn er von waghalsigen Händen verbogen wurde. Wenn Sie selbst programmieren wollen, müssen Sie die Lücken in Ihrem Wissen schließen.

 
Figar0 >> :

Customs?) In der Tester Sie testen EAs, nicht Indikatoren, und wenn es Indikatoren, dann durch die Prüfung EAs. Und dies ist immer noch ein Indikator, auch wenn er von stumpfen Händen verstümmelt wurde. Wenn Sie selbst programmieren wollen, müssen Sie die Lücken in Ihrem Wissen schließen.

Figar0, ich versuche zu lernen, schrieb ich oben, dass ich nicht verstehen kann, wie die Puffer aus dem Tutorial zu beschreiben - im Allgemeinen, der Expert Advisor auf dem MACD_Histogram Indikator Signale zu handeln.

>> Deshalb habe ich mich entschlossen, Sie um Hilfe zu bitten - Profis. Danke für Ihre Hilfe))


 
amur писал(а) >>

Figar0, ich versuche zu lernen, oben schrieb ich, dass ich nicht verstehen kann, aus dem Tutorial, wie die Puffer zu beschreiben - im Allgemeinen, so dass der Expert Advisor hat auf dem MACD_Histogram Indikator Signale gehandelt.

Ich habe mich entschlossen, Sie, die Fachleute, um Hilfe zu bitten. Vielen Dank für Ihre Hilfe))

Nehmen Sie den Expert Advisor, z.B. den MACD Sample, der mit MT4 geliefert wird. Sehen Sie sich den Code an. Er verwendet den MACD-Indikator, hat aber keine Puffer. Oder etwa nicht? Stattdessen greift es über iMACD(....) auf die Indikatorwerte zu. In Ihrem Fall ist es dasselbe, Sie sollten den Indikator nicht für den Handel neu erstellen, sondern Ihren Expert Advisor nehmen und ihn so ändern, dass er mit Ihrem Indikator funktioniert. Und zu den Indikatorwerten durch iCustom (....) zu adressieren (Regeln der Verwendung sind in der Hilfe und Tutorial). Wenn Sie genauere Fragen haben, fragen Sie bitte.