Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 752

 

wie man einen Auftrag zum Ende eines Balkens oder einer Kerze schließt

int start()
  {
      if ((Time[0] == prevtime) && openbarspriceonly) {
      return(0);
      }
   
      if (! IsTradeAllowed()) {
      Comment("Trades disallow");
      return(0);
      }
   
      prevtime = Time[0];

    if (CountTrades() == 0)
    {
        open = iOpen(Symbol(), PERIOD_D1, 0);
        close = iClose(Symbol(), PERIOD_D1, 1);

     if (DayOfWeek()==1&& Ask >= open)
     { 
        ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, NULL, Magic, 0, Blue);
        if (ticket>0)
        {
          Print("Ордер ошибка в Лонг: ", GetLastError());
        }
        else 
           Print("Ордер открыт успешно");
        if(OrderSelect( ticket, SELECT_BY_POS))
        {
          if(OrderClose(ticket, lots, close,Slippage,0))
          return(0);
        }
     }
     if (DayOfWeek()==5&& Bid <= open)
     {
        ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, Slippage, 0, 0, NULL, Magic, 0, Red);
        if (ticket>0)
        {
          Print("Ордер ошибка в Шорт ", GetLastError());
        }
        else 
           Print("Ордер открыт успешно");
        if(OrderSelect( ticket, SELECT_BY_POS))
        {
          if(OrderClose(ticket, lots, close,Slippage,0))
          return(0);
        }

     }
    }
    return(0);
  }
 
ikatsko:

ImStrategietester ist der BefehlMarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) Dies geschieht in Situationen, in denen das Instrument beispielsweise EURUSD und die Ausgleichswährung RUR ist .... und in anderen Kombinationen. Nach meinem Verständnismuss die Bilanzwährung mit dem Namen der zweiten Währung im Währungspaar über einstimmen. Andernfalls wird (im Strategietester) der Wert Null zurückgegeben, was es unmöglich macht, Tests mit den gewünschten Kombinationen durchzuführen. Wie lässt sich dieses Problem lösen?

Die Hervorhebung ist nicht korrekt! Ich rechne in Euro mit EURUSD, GBPUSD usw. Nur wenn es aktiviert ist, kann es 0 geben, bis die ersten Daten empfangen werden, deshalb habe ich eine Bedingung vor die Berechnungen mitTICKVALUE gesetzt, wenn != 0;

In der Testversion funktioniertMarketInfo() möglicherweise nicht, so dass ich den ungefähren Preis eines Ticks kenne und ihn mit der Bedingung IsTesting() || IsOptimization() || IsVisualMode() festlege.

"Denungefähren Preis einer Zecke kennen" ? Meine Lösung ist die folgende: ungefährer Preis eines Ticks = 10*CURRENCY (USDCurrencyBalance). Sie ist in allen Parametern festgelegt. Natürlich wäre es gut, wenn der Wechselkurs des Währungspaares (USDBalance-Währung) automatisch in das Terminal übernommen werden könnte. Wenn Sie nämlich die Währung des Saldos kennen (AccountInfoString(ACCOUNT_CURRENCY)), z. B. RUR, bilden Sie eine Zeichenkette, z. B. USDRUR. Sehen Sie nach, ob es ein solches Symbol im Terminal gibt? Vielleicht gibt es ein solches Symbol, zum Beispiel USDRUR_c ? Holen Sie sich ein Währungspaar, das im Terminal verfügbar ist.

 
artmedia70:
Was hat Vista damit zu tun? Die Maus, die Maus ist bereits am Sterben. Es wird bald schal ;)
Ich habe einen Laptop ohne Maus, nicht wie früher mit einem großen Computer, bei dem die Maus meinen Zeigefinger schmerzte!
 
ikatsko:

ImStrategietester ist der BefehlMarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) Dies geschieht in Situationen, in denen das Instrument beispielsweise EURUSD und die Ausgleichswährung RUR ist .... und in anderen Kombinationen. Nach meinem Verständnismuss die Bilanzwährung mit dem Namen der zweiten Währung im Währungspaar über einstimmen. Andernfalls wird (im Strategietester) der Wert Null zurückgegeben, was es unmöglich macht, Tests mit den gewünschten Kombinationen durchzuführen. Wie lässt sich dieses Problem lösen?

Die Hervorhebung ist nicht korrekt! Ich rechne in Euro mit EURUSD, GBPUSD usw. Nur wenn es aktiviert ist, kann es 0 geben, bis die ersten Daten empfangen werden, deshalb habe ich eine Bedingung vor die Berechnungen mitTICKVALUE gesetzt, wenn != 0;

In der Testversion funktioniertMarketInfo() möglicherweise nicht, so dass ich den ungefähren Preis eines Ticks kenne und ihn mit der Bedingung IsTesting() || IsOptimization() || IsVisualMode() festlege.

"Denungefähren Preis einer Zecke kennen" ? Meine Lösung ist die folgende: ungefährer Preis eines Ticks = 10*CURRENCY (USDCurrencyBalance). Sie ist in allen Parametern festgelegt. Natürlich wäre es gut, wenn der Wechselkurs des Währungspaares (USDBalance-Währung) automatisch in das Terminal übernommen werden könnte. Wenn Sie nämlich die Währung des Saldos kennen (AccountInfoString(ACCOUNT_CURRENCY)), z. B. RUR, bilden Sie eine Zeichenkette, z. B. USDRUR. Sehen Sie nach, ob es ein solches Symbol im Terminal gibt? Vielleicht gibt es ein solches Symbol, zum Beispiel USDRUR_c ? Holen Sie sich ein Währungspaar, das im Terminal verfügbar ist.

Ich brauche es nicht, weil der Preis der Zecke nicht während der Prüfung zu ändern, sowie Spreads und viele andere Dinge. Deshalb habe ich immerMarketInfo(Symbol(),MODE_TICKVALUE) auf dem Chart eines jeden Symbols, das von jedem Chart-Indikator, den ich verwende, angehängt wird, und setze seinen Wert in den Code des EA, bevor ich ihn teste.
 
borilunad:
Ich habe einen Laptop ohne Maus, nicht so wie früher, als ich einen großen Computer hatte und die Maus meinem Zeigefinger Schmerzen bereitete!

Das Touchpad ist also fehlerhaft. Sie hat auch Knöpfe.

Oder vielleicht haben sich meine Finger verändert ... :) Aber ich glaube nicht, dass das "Brummen" die Ursache für das OS ist.

 
artmedia70:

Das Touchpad ist also fehlerhaft. Sie hat auch Knöpfe.

Oder deine Finger sind nicht mehr richtig... :) Aber ich glaube nicht, dass das "Klappern" die Ursache für das OS ist.

Ich bin nicht gut mit Begriffen, Touchpad, Klappern... Obwohl Touchpad ist, wenn das Auto fällt unten?! Aber ich habe keine Angst davor, ich habe kein Auto und brauche es nicht. Ich genieße es, in einer schönen Stadt spazieren zu gehen, und wenn es sein muss, sehr bequeme öffentliche Verkehrsmittel mit guten Straßen und ohne Staus! :)
 
borilunad:
Ich kenne mich mit Begriffen wie Touchpad,"Klappern" ... nicht besonders gut aus. Obwohl ein Touchpad ist, wenn ein Auto herunterfällt?! Aber ich bin nicht in Gefahr, denn ich habe kein Auto und brauche auch keins. Ich genieße es, in einer schönen Stadt spazieren zu gehen, und wenn es sein muss, sehr bequeme öffentliche Verkehrsmittel mit guten Straßen und ohne Staus! :)

Wurden Sie von Google verbannt?

Touchpad(Touchpad),Touchpanel ist einZeige-Eingabegerät; die Erfindung bezieht sich auf die Automatisierungs- und Computertechnik und kann zum Lesen und Eingeben von Informationen in einen Computer, wie z. B. Symbole, sowie von Informationen über die Koordinaten der Position von Elementen und Teilen aus magnetischem Material auf der Oberfläche des Touchpanels verwendet werden. Das Touchpanel enthält ein Paket von Leiterplatten. Auf den Lagen jeder Leiterplatte befinden sich flache spiralförmige induktiv-kapazitive Elemente, die entlang der Zeilen und Spalten der Matrix in Reihe geschaltet sind. Die Matrizen aller PCBs sind aneinander ausgerichtet. Eine Isolierschicht wird zwischen benachbarte Leiterplattenoberflächen gelegt. Die Ausgänge der Zeilen (Spalten) der i-Leiterplatte sind mit den Eingängen der Zeilen (Spalten) der (i+1)-Leiterplatte verbunden, und die Eingänge der Zeilen und Spalten der Matrix der ersten Leiterplatte im Paket sind die Eingänge des Touchpanels, dessen Ausgänge die Ausgänge der Zeilen und Spalten der Matrix der letzten Leiterplatte im Paket sind. Wie andere Zeigegeräte wird ein Touchpad in der Regel zur Steuerung eines "Zeigers" verwendet, indem ein Finger über die Oberfläche des Geräts bewegt wird. Touchpads gibt es in verschiedenen Größen, aber in der Regel sind sie weniger als 50 cm² groß. Die Form ist meist rechteckig, es gibt aber auch runde Modelle.

 

Könnt ihr mir sagen, was die Ursache für die heute aufgetretene Störung sein könnte?

Der EA hat die Option, den Handel 15 Minuten vor Börsenschluss am Freitag zu beenden.

Wenn ein neuer Tag erscheint, prüft der EA, ob es Freitag ist, dann stoppen wir heute den Handel in StringToTime("23:59")-15*60

datetime FinishInFriday;
void OnTick()   {
   datetime cur=TimeCurrent();
   if(PrevDay!=Day()) {                               // при наступлении нового дня
      PrevDay =Day();
      
       if(TimeDayOfWeek(cur)==5) {                    // если сегодня пятница
         FinishInFriday=StringToTime("23:59")-15*60;    // время окончания торговли
         Print("Finish In Friday = ",FinishInFriday);   
       }
   }
   if(TimeDayOfWeek(cur)==5)
      if(cur>FinishInFriday) 
         return;
}

Im Strategietester funktioniert diese Funktion korrekt, aber im realen Handel sehe ich eine völlig andere Situation - der Expert Advisor stoppt den Handel mit dem ersten Tick, wenn der Freitag kommt.

Hier sind die Ausdrucke aus dem Journal von Expert Advisor:

Broker #1, Demo:

0 05:59:47.731 Scalper GBPAUDpt,M1: Finish In Friday = 2014.10.23 23:44:00

Makler 2, real:

0 03:00:11.999 Scalper EURUSD,M1: Finish In Freitag = 2014.10.23 23:44:00

Das heißt, wenn der Tagesbalken von heute (Freitag, 24. Oktober) auf dem ersten Tick erscheint, wird der EA

konvertiert die Zeile "23:59" in die Zeit von gestern, anstatt den heutigen Tag zuzuweisen.

Wenn der EA jedoch am Freitag mitten am Tag neu gestartet wird, wird er den Zeitpunkt der Fertigstellung korrekt ermitteln.

 
tuner:

Könnt ihr mir sagen, was die Ursache für die heute aufgetretene Störung sein könnte?

Der EA hat die Option, den Handel 15 Minuten vor Börsenschluss am Freitag zu beenden.

Wenn ein neuer Tag erscheint, prüft der EA, ob es Freitag ist, dann beenden wir heute den Handel in StringToTime("23:59")-15*60

Im Strategietester funktioniert diese Funktion korrekt, aber im realen Handel sehe ich eine völlig andere Situation - der Expert Advisor stoppt den Handel mit dem ersten Tick, wenn der Freitag kommt.

Hier sind die Ausdrucke aus dem Journal von Expert Advisor:

Broker #1, Demo:

0 05:59:47.731 Scalper GBPAUDpt,M1: Finish In Friday = 2014.10.23 23:44:00

Makler 2, real:

0 03:00:11.999 Scalper EURUSD,M1: Finish In Freitag = 2014.10.23 23:44:00

Das heißt, wenn der Tagesbalken von heute (Freitag, 24. Oktober) auf dem ersten Tick erscheint, wird der EA

konvertiert die Zeile "23:59" in die Uhrzeit von gestern, anstatt den heutigen Tag zuzuordnen.

Wenn der EA jedoch am Freitag Mittag neu gestartet wird, wird er den Zeitpunkt der Fertigstellung korrekt ermitteln.

Schauen Sie genauer hin.

Wenn der Tag von gestern nicht gleich dem Tag von heute ist...

Sie können diese Einheit nur einmal pro Tag betreten.

Irgendwie bezweifle ich, dass es auch im Testgerät richtig funktioniert.

Schauen Sie sich MqlDateTime und TimeToStruct in der Dokumentation an.

Es ist eine einfache Struktur, und es ist viel bequemer, damit zu arbeiten als mit solchen Datums- und Zeitumrechnungen.

 
Vinin:

Wurden Sie von Google verbannt?

Touchpad(Touchpad),Touchpanel ist einZeige-Eingabegerät; die Erfindung bezieht sich auf die Automatisierungs- und Computertechnik und kann zum Lesen und Eingeben von Informationen, wie z. B. Symbole, sowie Informationen über die Koordinaten der Position von Elementen und Teilen aus magnetischem Material, auf der Oberfläche des Touchpanels verwendet werden. Das Touchpanel enthält ein Paket von Leiterplatten. Auf den Lagen jeder Leiterplatte befinden sich flache spiralförmige induktiv-kapazitive Elemente, die entlang der Zeilen und Spalten der Matrix in Reihe geschaltet sind. Die Matrizen aller PCBs sind aneinander ausgerichtet. Eine Isolierschicht wird zwischen benachbarte Leiterplattenoberflächen gelegt. Die Ausgänge der Zeilen (Spalten) der i-Leiterplatte sind mit den Eingängen der Zeilen (Spalten) der (i+1)-Leiterplatte verbunden, und die Eingänge der Zeilen und Spalten der Matrix der ersten Leiterplatte im Paket sind die Eingänge des Touchpanels, dessen Ausgänge die Ausgänge der Zeilen und Spalten der Matrix der letzten Leiterplatte im Paket sind. Wie andere Zeigegeräte wird ein Touchpad in der Regel zur Steuerung eines "Zeigers" verwendet, indem ein Finger über die Oberfläche des Geräts bewegt wird. Touchpads gibt es in verschiedenen Größen, aber in der Regel sind sie weniger als 50 cm² groß. Die Form ist meist rechteckig, es gibt aber auch runde Modelle.

Wie ich auf Vista, und rechteckig auf meinem neuen 8-ka, die mich mit seinen Eskapaden enttäuscht, ist es unmöglich, ruhig zu arbeiten, plötzlich alles geht irgendwo, muss es eine Mode von Mobiltelefonen sein, sie denken, dass die ganze Welt lebt nur für Unterhaltung! Vielen Dank für die informative Nachricht (können Sie nicht mal einen Witz machen?)!