[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 556

 
Ich wollte erstens alles für dieses Währungspaar löschen und zweitens einen Auftrag erteilen.
 
Dimka-novitsek:
Ich wollte erst alles löschen, um dann einen Auftrag zu erteilen.

Entsprechend den von TarasBY vorgenommenen Änderungen am Code eingestellt:

Am Anfang des Skriptcodes

"

#include     <stdlib.mqh>                        // Библиотека расшифровки ошибок


"

 

Natürlich habe ich das! Auch wenn ich nicht wusste, was es war.

2012.11.30 15:09:07 Buyforum EURUSD,H1: entfernt
2012.11.30 14:51:56 Buyforum EURUSD,H1: uninit Grund 0
2012.11.30 14:51:05 buyforum EURUSD,H1: erfolgreich geladen

 
Er gibt an - er sendet nicht, er fügt nicht ein. Denkt jeweils 20 Sekunden lang nach.
 
Dimka-novitsek:

Natürlich habe ich das! Auch wenn ich nicht wusste, was es war.

2012.11.30 15:09:07 BuyForum EURUSD,H1: uninit
2012.11.30 14:51:56 Buyforum EURUSD,H1: uninit Grund 0
2012.11.30 14:51:05 buyforum EURUSD,H1: erfolgreich geladen


Es funktioniert einwandfrei. Keine Fehler.

Skripte werden nach erfolgreichem Laden aus dem Diagramm entladen (erfolgreich geladen).

 

Das war's, es hat funktioniert!!! Ich danke Ihnen. Wenn ich einen EA auf ein Diagramm setze, wird nicht nur das EA-Fenster mit einem grünen Kreis beleuchtet, sondern ich erlaube ihm ausdrücklich, zu handeln - der EA fragt nach variablen Parametern und gleichzeitig nach der Erlaubnis, zu handeln.

Mein Skript auf dem Diagramm verschwindet stillschweigend. Die Expert Advisors handeln nebeneinander und ich nicht. Ich habe vermutet, dass es hier eine Art Geheimnis gibt.

Ich habe in den Einstellungen herumgekramt, alles eingestellt und es hat funktioniert. Herzlichen Dank!

 
Nochmals vielen Dank, Entschuldigung!
 

Können Sie mir sagen, wie ich schreiben muss (oder was ich schreiben muss), damit nur streng definierte Werte in den Parametern der externen Variablen gewählt werden können?

Sagen wir: 5, 10, 20, 40, 60 usw...

Wenn dies nicht geschrieben werden kann, wie kann man es am besten machen? durch Vergleich mit dem Preis und Rundung? oder etwas anderes?


Vielen Dank im Voraus!

 
TarasBY:

Vielleicht klappt das ja:


Versuchen Sie dies
//|                                                         0000.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
//+------------------------------------------------------------------+
#include     <stdlib.mqh>                 // Библиотека кодов ошибок
string ErrorDescription(int error_code);
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int start()
   {
   double ld_Price;int N=23,Ticket=-1;
   for (int i=OrdersTotal()-1;i>=0;i--)
      {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))continue;
      if(OrderSymbol()!=Symbol())continue; 
      if(OrderType()>=2)
         {
         if(OrderDelete(OrderTicket())==true)continue;
         else Print("Error: ",ErrorDescription(GetLastError()));
      }
      if(OrderType()==OP_SELL)ld_Price=Ask;
      if(OrderType()==OP_BUY)ld_Price=Bid;
      if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(ld_Price,Digits),6,Red)==true)continue;
      else Print("Error: ",ErrorDescription(GetLastError()));
   }
   for(i=0;i<N;i++)
      {
      if(!IsTradeAllowed()){Sleep(2000);continue;}
      RefreshRates();
      Ticket=OrderSend(Symbol(),OP_BUY,0.1,NormalizeDouble(Ask,Digits),6,0.0,0.0,"Skript",98600,0,Blue);
      if(Ticket>=0)break;
      else Print("Error: ",ErrorDescription(GetLastError()));Sleep(2000);
    }
    if(Ticket<0)Alert("Не удалось открыть ордер за ",N," попыток","Error: ",ErrorDescription(GetLastError()),". Скрипт завершил работу.");
    return (0);
}
//+------------------------------------------------------------------+
 
Chiripaha:

Können Sie mir sagen, wie ich schreiben muss (oder was ich schreiben muss), damit nur streng definierte Werte in den Parametern der externen Variablen gewählt werden können?

Sagen wir: 5, 10, 20, 40, 60 usw...

Wenn Sie es nicht aufschreiben können, wie können Sie es am besten tun? durch Vergleich mit dem Preis und Rundung? oder anders?


Vielen Dank im Voraus!


Deklarieren Sie eine externe Variable vom Typ string und initialisieren Sie sie mit string with instruction und Ihrem Parametersatz. Sie wird im Fenster Eigenschaften sichtbar sein.