[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 495

 
fmillion:
'' - unerwartetes Ende des Programms G:\work\MetaTrader Group\experts\Balista.mq4 (576, 1)

Mit der Maus stochern - sie bewegt sich zu der Stelle mit Kommentaren ((... Was ist zu tun?


Der einfachste Weg, den Fehler zu finden, ist die magische Schaltfläche "Rückgängig" in MetaEditor. Und nach einem weiteren Rückgängigmachen versuchen Sie, den Code erneut zu kompilieren.
 
Guten Tag! Sagen Sie es mir. Nehmen wir an, ich werde Folgendes verwenden
double iMA(     string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

In der Hilfe heißt es "Zeitrahmen - Zeitraum". Kann eine der Perioden eines Diagramms sein. 0 bedeutet die Periode der aktuellen Grafik.

Ist das möglich, oder ist es definitiv der Zeitraum des Diagramms? Aber was ist, wenn ich 20 statt 15 einsetze? Ist es besser, eine Zahl zu verwenden, oder ist PERIOD_M15 besser?

Ok, ich setze dort 0 ein und mache mir keine Mühe.

 

Guten Tag zusammen. Ich wäre sehr dankbar, wenn jemand einen Ton in diesen Indikator einfügen könnte.

D.h. wenn es eine Kreuzung von .... gibt. und natürlich sollte der Ton nur einmal am Ende der Kerze ertönen, an der diese Kreuzung stattgefunden hat.

Vielen Dank im Voraus für Ihre Hilfe.

Dateien:
 
Dimka-novitsek:
Guten Tag! Sagen Sie es mir. Nehmen wir an, ich werde Folgendes verwenden

In der Hilfe heißt es "Zeitrahmen - Zeitraum". Kann eine der Perioden eines Diagramms sein. 0 bedeutet die Periode der aktuellen Grafik.

Ist das möglich, oder ist es definitiv der Zeitraum des Diagramms? Aber was ist, wenn ich 20 statt 15 einsetze? Ist es besser, eine Zahl zu verwenden, oder ist PERIOD_M15 besser?

Ok, ich setze dort 0 ein und mache mir keine Mühe.

Der Zeitraum wird in Minuten angegeben. Zum Beispiel: 60 ist eine Stunde, 240 ist 4 Stunden... usw., 5 ist M5.
 

Ich habe die Funktionvon KimIV nicht gefunden, um den Drawdown/Gewinnbetrag der letzten geschlossenen Order zu ermitteln.

Die Idee ist einfach: Sie müssen nachverfolgen, wie hoch der Gewinn oder der Drawdown in der Einzahlungswährung beim letzten geschlossenen Auftrag war.

 
fmillion:

Ich habe die Funktionvon KimIV nicht gefunden, um den Drawdown/Gewinnbetrag der letzten geschlossenen Order zu ermitteln.

Die Idee ist einfach: Sie müssen nachverfolgen, wie hoch der Gewinn oder der Drawdown in der Einzahlungswährung beim letzten geschlossenen Auftrag war.

Dieser Entwurf funktioniert für mich:

//---Поиск крайнего отработавшего ордера для открытия очередной позиции ---   
   for (orderIndex = (OrdersHistoryTotal() - 1); orderIndex >= 0; orderIndex--)
   {   
      if (!OrderSelect(orderIndex, SELECT_BY_POS, MODE_HISTORY)) {Print("Ошибка при доступе к исторической базе (",GetLastError(),")");continue;}   
      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))  continue;              
   //------------------------- Принимаем в расчет только ордер, закрытый cамым крайним -----------------------
      if (time<OrderCloseTime())     //(сравниваем его с хранящимся в пероеменной time) 
        {
         time=OrderCloseTime();     //если время закрытия ордера больше - ложим его в переменную     
         int lastType = OrderType();
         double lastLots = OrderLots();
         double lastProfit = OrderProfit() + OrderSwap();
         
         // Анализ только что закрывшегося ордера      
         if (lastProfit >= 0.0)
         {
...
 
Roman.:

Ich habe einen solchen Entwurf, der funktioniert:

und welchen Wert hat die Zeitvariable am Anfang der Schleife?
 
fmillion:

Ich habe die Funktionvon KimIV nicht gefunden, mit der der Drawdown/Gewinn der letzten geschlossenen Order zurückgegeben werden kann.

Die Idee ist einfach: Sie müssen nachverfolgen, wie hoch der Gewinn oder der Drawdown in der Einzahlungswährung beim letzten geschlossenen Auftrag war.

Der Algorithmus ist wie folgt: Suchen Sie nach JEDER Funktion, die irgendetwas über die letzte geschlossene Bestellung zurückgibt. Holen Sie sich das Ticket der letzten abgeschlossenen Bestellung. Wenn die Schleife zu Ende ist, wählen Sie einen Auftrag nach dem erhaltenen Ticket aus und berechnen seinen Gewinn (wenn es wichtig ist, vergessen Sie nicht, den Swap und die Kommission bei der Berechnung zu berücksichtigen):

    Profit = OrderProfit() + OrderSwap() + OrderCommission();
 
TarasBY:
Haben Sie eine Trendlinie mit der Bezeichnung "Balken" in Ihrem Diagramm? Wenn Sie eine solche Linie haben, ist es durchaus möglich, dass diese Linie außerhalb des von Ihnen angegebenen Preises liegt.

Danke, ja, ich habe den falschen Zeilenwert angegeben. Jetzt weiß ich, wo das Problem liegt.

 
Zhunko:
Starten Sie es und sehen Sie es sich an. Ein recht nützlicher "Bausatz".

Ich kann sehen, dass der "Hund" und die Leerzeichen dazwischen zur Anzeige einer Zahl verwendet werden. Aber warum ist das so? Ist es etwas, das nicht aus der mql-Programmierung stammt? Gibt es so etwas auch in C?

Ich verstehe nicht wirklich, warum das passiert. Und ich bin mir auch nicht ganz sicher, was dabei herauskommt. Ich sehe Fibo Zahlen auf einigen Ebenen durch den "Hund", und auf einigen Ebenen etwas anderes?

Können Sie den Grund für ihr Erscheinen erklären? Ich bin sehr neugierig geworden. Aber ich öffnete sie am zweiten Tag und verstand sie nicht.

Ich werde den Skriptcode duplizieren, um zu vermeiden, dass er in der Historie gesucht wird:

//+------------------------------------------------------------------+
//|                              Brooky_FibIt_Retracement_Script.mq4 |
//|                        Copyright 2012, www.Brooky_Indicators.com |
//|                                        www.Brooky_Indicators.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, www.Brooky_Indicators.com"
#property link      "www.Brooky_Indicators.com"
#property show_confirm  
#property show_inputs
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+

extern int       FibOnChartNum =1;

extern color     Fib_Cbar_Color = Red;
extern int       Fib_Cbar_Size=1;
extern int       Fib_Cbar_Style=2;

extern color     Fib_Level_Color = Gray;
extern int       Fib_Level_Size=1;
extern int       Fib_Level_Style=2;

extern double     Fib_Level_1 = 0;
extern double     Fib_Level_2 = 0.236;
extern double     Fib_Level_3 = 0.382;
extern double     Fib_Level_4 = 0.5;
extern double     Fib_Level_5 = 0.618;
extern double     Fib_Level_6 = 0.764;
extern double     Fib_Level_7 = 1;

string Xtra_txtFib_Level_1  = "Extreme ";
string Xtra_txtFib_Level_2  = "Break OUT ";
string Xtra_txtFib_Level_3  = "Break IN ";
string Xtra_txtFib_Level_4  = "Centre ";
string Xtra_txtFib_Level_5  = "Break IN ";
string Xtra_txtFib_Level_6  = "Break OUT ";
string Xtra_txtFib_Level_7  = "Extreme ";


string txtFib_Level_1  = "";
string txtFib_Level_2  = "";
string txtFib_Level_3  = "";
string txtFib_Level_4  = "";
string txtFib_Level_5  = "";
string txtFib_Level_6  = "";
string txtFib_Level_7  = "";


string FibPrice = " @ %$";
string FibPrice1 = " ";
string FibName = "";

int start()
  {

//----
      txtFib_Level_1 = StringConcatenate(Xtra_txtFib_Level_1,DoubleToStr(Fib_Level_1,3),FibPrice1);
      txtFib_Level_2 = StringConcatenate(Xtra_txtFib_Level_2,DoubleToStr(Fib_Level_2,3),FibPrice);
      txtFib_Level_3 = StringConcatenate(Xtra_txtFib_Level_3,DoubleToStr(Fib_Level_3,3),FibPrice1);
      txtFib_Level_4 = StringConcatenate(Xtra_txtFib_Level_4,DoubleToStr(Fib_Level_4,3),FibPrice);
      txtFib_Level_5 = StringConcatenate(Xtra_txtFib_Level_5,DoubleToStr(Fib_Level_5,3),FibPrice1);
      txtFib_Level_6 = StringConcatenate(Xtra_txtFib_Level_6,DoubleToStr(Fib_Level_6,3),FibPrice);
      txtFib_Level_7 = StringConcatenate(Xtra_txtFib_Level_7,DoubleToStr(Fib_Level_7,3),FibPrice);
      
      
      
      FibName = "Brooky_FibR_"+FibOnChartNum;
      ObjectDelete(FibName);
      
      ObjectCreate(FibName,OBJ_FIBO,0,Time[21],High[24],Time[1],Low[1]);
      
      ObjectSet(FibName, OBJPROP_COLOR,Fib_Cbar_Color);
      ObjectSet(FibName, OBJPROP_WIDTH ,Fib_Cbar_Size);
      ObjectSet(FibName, OBJPROP_STYLE ,Fib_Cbar_Style);
      
      ObjectSet(FibName, OBJPROP_RAY,True);
       
      ObjectSet(FibName, OBJPROP_LEVELSTYLE,Fib_Level_Style);
      ObjectSet(FibName, OBJPROP_LEVELCOLOR,Fib_Level_Color);      
      ObjectSet(FibName, OBJPROP_LEVELWIDTH,Fib_Level_Size);  
       
          
      ObjectSet(FibName, OBJPROP_FIBOLEVELS,7);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+0,Fib_Level_1);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+1,Fib_Level_2);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+2,Fib_Level_3);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+3,Fib_Level_4);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+4,Fib_Level_5);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+5,Fib_Level_6);
      ObjectSet(FibName, OBJPROP_FIRSTLEVEL+6,Fib_Level_7);
      

     
      ObjectSetFiboDescription(FibName,0,txtFib_Level_1);
      ObjectSetFiboDescription(FibName,1,txtFib_Level_2);
      ObjectSetFiboDescription(FibName,2,txtFib_Level_3);
      ObjectSetFiboDescription(FibName,3,txtFib_Level_4);
      ObjectSetFiboDescription(FibName,4,txtFib_Level_5);
      ObjectSetFiboDescription(FibName,5,txtFib_Level_6);
      ObjectSetFiboDescription(FibName,6,txtFib_Level_7);      
      
//----
   return(0);
  }
//+------------------------------------------------------------------+