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

 
001 писал(а) >>
Wenn du es in Code machen könntest, ich habe mir den Kopf zerbrochen :)
int Order_Count[6];
//===============================================================================
// Функция возвращаюшая количество ордеров определенного типа исхода из заданных ограничений
//===============================================================================
int Order_Count_Calculate(string _Symbol, int _Magic, int _OP=-1){
   ArrayInitialize( Order_Count,0);
   for (int i = OrdersTotal() - 1;  i >= 0;  i--) {
      if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES))   continue;
      if (OrderSymbol() != _Symbol)                     continue;
      if (OrderMagicNumber() != _Magic)                   continue;
      Order_Count[OrderType()]++;
   }
   if (_OP>=0) return( Order_Count[_OP]);
   return(0);
}
Dies wird reichen
 

Was könnte das Problem sein? Der Indikator zeigte mehrere Stücke während des Tests und der EA looped in was könnte das Problem mit dem Indikator sein?



Dateien:
trix_pv_4.mq4  10 kb
 

In welcher Variablen wird der Wert von OsMA gespeichert?



//+------------------------------------------------------------------+
//| OsMA.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#property link "http://www.metaquotes.net/"
//---- Indikatoreinstellungen
#property indicator_separate_window
#Eigenschaft indicator_buffers 1
#Eigenschaft indicator_color1 Silber
#Eigenschaft indicator_width1 2
//---- Indikatorparameter
extern int FastEMA=12;
extern inttern SlowEMA=26;
extern inttern SignalSMA=9;
//---- Indikatorpuffer
double OsmaBuffer[];
double MacdBuffer[];;
double SignalPuffer[];

//+------------------------------------------------------------------+
//| Benutzerdefinierte Initialisierungsfunktion für Indikatoren |
//+------------------------------------------------------------------+
int init()
{
//---- 2 zusätzliche Puffer werden zum Zählen verwendet.
IndicatorBuffers(3);
//---- Zeichnungseinstellungen
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexDrawBegin(0,SignalSMA);
IndicatorDigits(Ziffern+2);
//---- 3 Indikatorpuffer-Zuordnung
SetIndexPuffer(0,OsmaPuffer);
SetIndexPuffer(1,MacdBuffer);
SetIndexBuffer(2,SignalBuffer);
//---- Name für das Datenfenster und die Bezeichnung des Unterfensters des Indikators
IndicatorShortName("OsMA("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");
//---- Initialisierung abgeschlossen
zurück(0);
}
//+------------------------------------------------------------------+
//| Gleitender Durchschnitt des Oszillators |
//+------------------------------------------------------------------+
int start()
{
int-Grenze;
int counted_bars=IndicatorCounted();
//---- zuletzt gezählte Takt wird nachgezählt
if(gezählte_Balken>0) gezählte_Balken--;
limit=Balken-gezählt_Balken;
//---- macd gezählt im 1. zusätzlichen Puffer
for(int i=0; i<limit; i++)
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- Signalleitung im 2. zusätzlichen Puffer gezählt
for(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- Hauptschleife
for(i=0; i<limit; i++)
OsmaPuffer[i]=MacdBuffer[i]-SignalPuffer[i];
//---- erledigt

zurück(0);
}
//+------------------------------------------------------------------+

 
Vinin писал(а) >>
Diese Variante wird

Herzlichen Dank! Obwohl ich mich noch nie mit Funktionen beschäftigt habe, muss ich jetzt herausfinden, wie ich sie aufrufe, die Variablenwerte an sie übergebe und die Werte zurückbekomme. Wenn ich den Mechanismus richtig verstehe.

 
vlandex >> :

In welcher Variablen wird der Wert von OsMA gespeichert?

Ist er nicht im Puffer?

 
Infinity >> :

>> aber ist es nicht im Puffer?

>> Welcher Puffer?

 
vlandex писал(а) >>

Welcher ist es?

OsmaPuffer[]

 
vlandex >> :

>> welche?

дабавте перед

Alert("Значения MacdBuffer[i]="MacdBuffer[i]);

Alert("Значения SignalBuffer[i]="SignalBuffer[i]);

Alert("Значения OSMA ="OsmaBuffer[i]);

return(0);
}


die Werte müssen nur normalisiert werden

 

Hallo.

Warum wird der Stopp bei Kaufpositionen nicht übertragen? Bei Verkaufspositionen funktioniert alles.

if(OrdersTotal()>0)
{
if(Bid==buy||Bid==busell)
{
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(), 0, Blue);
}
return(0);
}

 
1Rakso >> :

Was könnte das Problem sein? Der Indikator zeigte mehrere Stücke während des Tests, und die EA Schleife in was könnte das Problem des Indikators sein?

Falsch eingestellte Parameter (nach Nummer oder Typ) in der EA.

Alternativ können Sie auch alle String-Parameter aus dem Indikator entfernen.

Grund der Beschwerde: