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

 

001 antwortete.

Soweit ich weiß, wird der Vergleich hier angesetzt. Wenn ich falsch liege, sollen sie mich korrigieren.

if(
(sar10>Open[0])&& // SAR 1 // Vergleich mit Open-Kurs
(sar11>Close[0+1])&& // Minute und Vergleich mit Close-Kurs
(sar50>Open[0])&& // SAR 5
(sar51>Close[0+1])&& // Minuten
(sar150>Open[0])&& // SAR 15
(sar151>Close[0+1])&& // Minuten
(sar152<Close[0+2]) // Trendbeginn

)

aber das ist nicht alles. Zur Verdeutlichung: Der Expert Advisor ist mit dem 15-Minuten-Chart verbunden und der SAR wird mit dem Preis für 15-, 5- und 1-Minuten-Zeitintervalle verglichen.... Open[0] Close[0+2] und Close[0+2 ] ist der Eröffnungs- und Schlusskurs. Ich muss den unteren Teil des Charts, der mit dem Expert Advisor auf niedrigeren Zeitrahmen verbunden ist, vergleichen!

Vielen Dank im Voraus...

 
boris.45:

Haben Sie dieses Paar im Marktbeobachtungsfenster?

Versuchen Sie, alle Timeframes neu zu berechnen, wenn Sie die Meldung "Keine neuen Daten für das Symbol" erhalten, da Sie dazu aufgefordert werden. Normalerweise mache ich das so: Ich öffne das Datenladefenster (F2), doppelklicke auf das gewünschte Symbol, doppelklicke auf M1 und lade die Daten, trotz aller Meldungen. Und ich mache das für jede TF - M1, M5, M15 ... Monat...

Normalerweise hilft es... Obwohl mich das manchmal verwirrt... :)

 
igrok2008:

Aber das ist nicht alles. Zur Verdeutlichung: Der Expert Advisor ist mit dem 15-Minuten-Chart verbunden und der SAR wird mit dem Preis für 15-, 5- und 1-Minuten-Zeitintervalle verglichen.... Open[0] Close[0+2] und Close[0+2 ] ist der Eröffnungs- und Schlusskurs. Ich muss den unteren Teil des Charts, der mit dem Expert Advisor auf niedrigeren Zeitrahmen verbunden ist, vergleichen!

Vielen Dank im Voraus...

   iSAR(Symbol(),PERIOD_M1, step,maximum,1);  // Данные параболика для текущего символа с периода М1
   iSAR(Symbol(),PERIOD_M5, step,maximum,1);  // Данные параболика для текущего символа с периода M5
   iSAR(Symbol(),PERIOD_M15,step,maximum,1);  // Данные параболика для текущего символа с периода М15
   iSAR(Symbol(),PERIOD_M30,step,maximum,1);  // Данные параболика для текущего символа с периода М30

   iOpen (Symbol(),PERIOD_M1,0);     // цена открытия минутной свечи текущего (нулевого) бара
   iClose(Symbol(),PERIOD_M1,0);     // цена закрытия минутной свечи текущего (нулевого) бара
   iOpen (Symbol(),PERIOD_M1,1);     // цена открытия минутной свечи предыдущего (первого) бара
   iClose(Symbol(),PERIOD_M1,1);     // цена закрытия минутной свечи предыдущего (первого) бара
   iOpen (Symbol(),PERIOD_M5,0);     // цена открытия пятиминутной свечи текущего бара
   iClose(Symbol(),PERIOD_M5,0);     // цена закрытия пятиминутной свечи текущего бара

In Analogie dazu können Sie es auch selbst tun...

 
artmedia70:

Haben Sie dieses Paar im Marktbeobachtungsfenster?

Versuchen Sie, alle Timeframes neu zu berechnen, wenn Sie die Meldung "Keine neuen Daten für das Symbol" erhalten, da Sie dazu aufgefordert werden. Normalerweise mache ich das so: Ich öffne das Datenladefenster (F2), doppelklicke auf das gewünschte Symbol, doppelklicke auf M1 und lade die Daten, trotz aller Meldungen. Und ich mache das für jede TF - M1, M5, M15 ... Monat...

Normalerweise hilft es... Obwohl mich das manchmal verwirrt... :)

 
Woran kann es liegen, wenn der EA Aufträge nicht schließt (obwohl es in seinem Code angegeben ist), und der Tester diese Fehler ausgibt:
 
ViktorF:
Was kann der Grund sein, wenn EA keine Aufträge schließt (obwohl es in seinem Code angegeben ist), und der Tester gibt solche Fehler:
Dies ist im Code nicht korrekt und deshalb wird der EA nicht geschlossen. Da es sich um harmlose Fehler handelt, ist es wünschenswert, die Anführungszeichen zu aktualisieren
 
artmedia70:

In Analogie dazu können Sie es auch selbst tun...

Bitte prüfen Sie!!!!!

//+------------------------------------------------------------------+
//|                                 expert SAR_1_5_15 min primer.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern double    Lots=0.01;
extern int       StopLoss=300;
extern int       TakeProfit=150;
extern int       MagicNumber=123456;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderCloseTime()>=Time[0]&&OrderType()==Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения Parabolic,на 0-ом, 1-ом и 2-м барах для 1,5-ти,15-ти минутн. графиков
    double sar10 = iSAR(NULL,1,0.02,0.2,0);
    double sar11 = iSAR(NULL,1,0.02,0.2,1);
    double sar50 = iSAR(NULL,5,0.02,0.2,0);
    double sar51 = iSAR(NULL,5,0.02,0.2,1);
    double sar150 = iSAR(NULL,15,0.02,0.2,0);
    double sar151 = iSAR(NULL,15,0.02,0.2,1);
    double sar152 = iSAR(NULL,15,0.02,0.2,2);
    // Определяем цену открытия и закрытия для 15,5 и 1 мин. графиков
   double Open10 = iOpen (Symbol(),PERIOD_M1,0); // цена открытия 1 мин. свечи нулевого бара
   double Close10= iClose(Symbol(),PERIOD_M1,0); // цена закрытия 1 мин. свечи нулевого бара
   double Open50 = iOpen (Symbol(),PERIOD_M5,0); // цена открытия 5 мин. свечи нулевого бара
   double Close51= iClose(Symbol(),PERIOD_M5,1); // цена закрытия 5 мин. свечи первого бара    
   //-------------открытие позиции Buy покупка----------------- 
    if(
    (sar10>Open10)&&     //  SAR 1 // сравниваем с ценой открытия
    (sar11>Close10)&&    // минута и сравниваем с ценой закрытия
    (sar50>Open50)&&         //  SAR 5
    (sar51>Close51)&&        // минут
    (sar150>Open[0])&&        //  SAR 15
    (sar151>Close[0+1])&&     // минут
    (sar152<Close[0+2])       // начало тренда
    )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    
    //-------------Открытие позиции Sell продажа----------------  
    if(
    (sar10<Open10)&&       //  SAR 1// сравниваем с ценой открытия
    (sar11<Close10)&&      // минута и сравниваем с ценой закрытия
    (sar50<Open50)&&       //  SAR 5
    (sar51<Close51)&&      // минут
    (sar150<Open[0])&&        //  SAR 15
    (sar151<Close[0+1])&&     // минут
    (sar152>Close[0+2])       // начало тренда
    )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+

Keine Fehler beim Kompilieren entdeckt!!!!!

Vielen Dank im Voraus!

 
artmedia70:
artemida70, es gibt ein Währungspaar im Fenster Market Watch. Ich habe Ihre Methode zum Laden ausprobiert, aber sie funktioniert nicht. Beim Laden der Daten erreicht der grüne Balken nicht das Ende und das Laden wird abgebrochen. Beim erneuten Laden erschien das Tableau "Keine neuen Symboldaten..." nicht mehr. Übrigens wurden alle Zeitrahmenwürfel gleichzeitig hellfarbig (obwohl das Laden auf M1 erfolgt). Möglicherweise ist die Ladedatei beschädigt? Ihre Meinung - was ist zu tun?
 
Vinin:


Vielleicht wollten Sie fragen, wie man den Wert einer in der Include-Datei beschriebenen Variablen erhält?


Ja, das ist genau das Richtige. Es gibt eine Datei, die Sie gepostet haben, die sehr nützlich ist, OptimizationReport.mq4. Ich habe sie leicht verbessert, um den Erholungsfaktor zu berechnen. Jetzt möchte ich den Wert dieser Variablen im Hauptcode abrufen, um die Optimierung zu beschleunigen, indem ich die Durchläufe des Testers erkenne und die Grenze des PV-Pegels festlege. Ich habe versucht, es über globale Variablen zu machen. Der Wert meiner Variablen ist im Hauptcode nicht sichtbar.

In der EA schreibe ich:

double myValue = GlobalVariableGet("myValue");
Print("myValue="+myValue);
MessageBox("myValue="+myValue);
Alert("myValue="+myValue);

Inklusiv (Auslegen):

GlobalVariableSet("myValue", 1);

Funktioniert nicht, myValue=0.00000000

Dateien:
 

Ich dachte, ich melde mich auch mal hier ...

Wie richte ich den E-Mail-Versand an narod.ru ein?

Alle Varianten ausprobiert:

SMTP-Server - smtp.narod.ru

SMTP-Anmeldung: - имя@narod.ru

SMTP-Kennwort - Kennwort

Von: slt-soft@narod.ru

An: slt-soft@narod.ru

Fehler: Mail: Anmeldung bei smtp.narod.ru fehlgeschlagen