Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 864

 
Taras Slobodyanik:

Müssen Sie also einen Feiertag oder ein Handelsverbot festlegen?
Am 27. wurde der Handel zugelassen.

Wenn es sich um ein Wochenende handelt, benötigen Sie einen Nachrichtenparser, um Feiertage/Wochenenden zu erkennen.

Es spielt keine Rolle, was der Grund dafür ist, dass ein bestimmtes Symbol nicht gehandelt wird, Sie müssen nur sehen, dass es nicht gehandelt wird. Und sorry, ich bin noch nicht reif genug, um den Parser zu verstehen. Worum handelt es sich dabei und wie ist es im Gesetzbuch verankert?

 
novichok2018:

Hallo!

Nochmals vielen Dank anAlexey Viktorov für den Tipp mit den Zitaten - alles funktioniert. An diesem Montag haben wir die Situation, dass die Deutschen gehandelt haben, während die Engländer einen freien Tag haben. Es stellte sich heraus, dass in der Bedingung für die Eröffnung der Euro-Position alte Werte des Pfunds verwendet wurden. Daher die Frage: Wie kann man im Code überprüfen, ob beide Symbole an diesem Tag gehandelt werden?

Ich danke Ihnen.

#include <Trade\AccountInfo.mqh>
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- объект для работы со счетом
CAccountInfo account;
//--- получим номер счета, на котором запущен советник
   long login=account.Login();
   Print("Login=",login);
//--- выясним тип счета
   ENUM_ACCOUNT_TRADE_MODE account_type=account.TradeMode();
//--- если счет оказался реальным, прекращаем работу эксперта немедленно!
   if(account_type==ACCOUNT_TRADE_MODE_REAL)
     {
      MessageBox("Работа на реальном счете запрещена, выходим","Эксперт запущен на реальном счете!");
      return(-1);
     }
//--- выведем тип счета    
   Print("Тип счета: ",EnumToString(account_type));
//--- выясним, можно ли вообще торговать на данном счете
   if(account.TradeAllowed())
      Print("Торговля на данном счете разрешена");
   else
      Print("Торговля на счете запрещена: возможно, вход был совершен по инвест-паролю");
//--- выясним, разрешено ли торговать на счете с помощью эксперта
   if(account.TradeExpert())
      Print("Автоматическая торговля на счете разрешена");
   else
      Print("Запрещена автоматическая торговля с помощью экспертов и скриптов");
//--- допустимое количество ордеров задано или нет
   int orders_limit=account.LimitOrders();
   if(orders_limit!=0)Print("Максимально допустимое количество действующих отложенных ордеров: ",orders_limit);
//--- выведем имя компании и сервера
   Print(account.Company(),": server ",account.Server());
//--- напоследок выведем баланс и текущую прибыль на счете
   Print("Balance=",account.Balance(),"  Profit=",account.Profit(),"   Equity=",account.Equity());
   Print(__FUNCTION__,"  completed"); //---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }

Quellehttps://www.mql5.com/ru/articles/481

Торговые операции на MQL5 - это просто
Торговые операции на MQL5 - это просто
  • www.mql5.com
Почти все трейдеры приходят на рынок для того, чтобы заработать денег, хотя есть и доля тех, кому важен не сам торговый результат, а участие в процессе, драйв. Впрочем, получить удовольствие от процесса можно не только торгуя вручную, но и занимаясь разработкой автоматических торговых систем. Ведь создание торгового робота может быть таким же...
 
Sergey Voytsekhovsky:

Quellehttps://www.mql5.com/ru/articles/481

Ich weiß nicht, was ich dazu sagen soll. Vielen Dank, aber ich denke, das ist völlig unangebrachtes Thema. Und warum"wenn sich herausstellt, dass der Spielstand echt ist, beenden Sie den EA sofort!"Ich vermute, ich übersehe etwas.

 
novichok2018:

Ich weiß nicht, was ich dazu sagen soll. Ich danke Ihnen natürlich, aber ich denke, das ist völlig unangebracht. Und warum"wenn sich herausstellt, dass der Spielstand echt ist, beenden Sie den EA sofort!"?

Dies ist ein Beispiel für den Code aus dem Artikel. Der Artikel behandelt einen experimentellen Code, nicht für den Handel, aber die Funktionen sind die gleichen. Der Artikel ist zwar schon alt, aber für Anfänger ist er gut geeignet.

Die von Ihnen gewünschte Ausgabe kann vom Code nicht berechnet werden. Der Handel war offen, aber die Briten handelten nicht und hatten keine normalen Notierungen. Versuchen Sie, "Normalität" für Anführungszeichen einzustellen und prüfen Sie, ob sie vorhanden sind. Zum Beispiel der Spread, die Tick-Volatilität, die Häufigkeit der Kursaktualisierungen oder was auch immer Ihnen nicht zusagt. Ein Höhenflug der Fantasie.

 
novichok2018:

Ich weiß nicht, was ich dazu sagen soll. Danke natürlich, aber ich denke, das ist völlig nebensächlich.

Der einfachste Weg, sich über die Ausgabe zu informieren, sind die Eigenschaften des Kontos, für das IMHO natürlich Einschränkungen gelten. Deshalb habe ich den obigen Codeblock als Beispiel angegeben

//--- выясним, можно ли вообще торговать на данном счете
   if(account.TradeAllowed())
      Print("Торговля на данном счете разрешена");

Und bei nationalen Ausgaben kann es Zeichenbeschränkungen geben. Schauen Sie sich den Artikel an, auch dort gibt es einen:

#include<Trade\SymbolInfo.mqh>
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- объект для получения свойств символа
CSymbolInfo symbol_info;
//--- зададим имя символа, для которого будем получать информацию
   symbol_info.Name(_Symbol);
//--- получим текущие котировки и выведем
   symbol_info.RefreshRates();
   Print(symbol_info.Name()," (",symbol_info.Description(),")",
         "  Bid=",symbol_info.Bid(),"   Ask=",symbol_info.Ask());
//--- получим значения минимальных отступов для торговых операций
   Print("StopsLevel=",symbol_info.StopsLevel()," pips, FreezeLevel=",
         symbol_info.FreezeLevel()," pips");
//--- получим количество знаков после запятой и размер пункта
   Print("Digits=",symbol_info.Digits(),
         ", Point=",DoubleToString(symbol_info.Point(),symbol_info.Digits()));
//--- информация о спреде
   Print("SpreadFloat=",symbol_info.SpreadFloat(),", Spread(текущий)=",
         symbol_info.Spread()," pips");
//--- запросим тип исполнения ордеров, нет ли ограничений
   Print("Ограничения на торговые операции: ",EnumToString(symbol_info.TradeMode()),
         " (",symbol_info.TradeModeDescription(),")");
//--- выясним режим заключения сделок
   Print("Режим исполнения сделок: ",EnumToString(symbol_info.TradeExecution()),
         " (",symbol_info.TradeExecutionDescription(),")");
//--- выясним способ вычисления стоимости контрактов
   Print("Вычисление стоимости контракта: ",EnumToString(symbol_info.TradeCalcMode()),
         " (",symbol_info.TradeCalcModeDescription(),")");
//--- размер контрактов
   Print("Размер стандартного контракта: ",symbol_info.ContractSize(),
         " (",symbol_info.CurrencyBase(),")");
//--- минимальный, максимальный размеры объема в торговых операциях
   Print("Volume info: LotsMin=",symbol_info.LotsMin(),"  LotsMax=",symbol_info.LotsMax(),
         "  LotsStep=",symbol_info.LotsStep());
//--- 
   Print(__FUNCTION__,"  completed");
//---
   return(0);
  }
 
novichok2018:

Es spielt keine Rolle, was der Grund dafür ist, dass ein bestimmtes Symbol nicht gehandelt wird, Sie müssen nur sehen, dass es nicht gehandelt wird. Und es tut mir leid, ich bin noch nicht reif genug, um den Parser zu verstehen. Worum handelt es sich dabei, und wie ist es im Code vermerkt?

Was bedeutet "kein Handel"? ?
Handel ist erlaubt - handeln Sie so viel Sie wollen)

Parser bedeutet, dass Sie eine Datei mit Nachrichten herunterladen und diese dann analysieren müssen, um das Feiertagswochenende zu bestimmen.

 
Taras Slobodyanik:

Tauschen ist erlaubt - tauschen Sie so viel wie Sie wollen)

Handel ist erlaubt, aber es wird nicht gehandelt - es ist ein Feiertag.

Aber ich glaube, ich habe eine Lösung gefunden:

if(SeriesInfoInteger("EURUSD",PERIOD_H1,SERIES_LASTBAR_DATE)==SeriesInfoInteger("GBPUSD",PERIOD_H1,SERIES_LASTBAR_DATE))

und dann wurde die Stelle am 27. nicht eröffnet.

Das scheint mir eine gute Lösung zu sein. Wenn jemand irgendwelche Fallstricke sieht, wäre ich dankbar, das zu erfahren. Ich danke Ihnen allen.

 
novichok2018:

Handel ist erlaubt, aber es gibt keinen Handel - sie sind im Urlaub.

Ich weiß nicht, wie es ist, wenn der Handel erlaubt ist.
(auch an einem Feiertag und an einem Wochenende).

Ich habe mir die Nachrichten bei den Brokern angesehen - ich habe niemanden gesehen, der das Pfund am 27.

 
Taras Slobodyanik:

Ich verstehe nicht, wie, wenn der Handel erlaubt ist, der Handel dann stattfindet
(auch an einem Feiertag und an einem Wochenende)

Ich habe mir die Nachrichten bei den Brokern angesehen - ich habe niemanden gesehen, der das Pfund am 27.

Eigentlich ging es mir nicht um das Pfund, sondern um den FTSE100-Index. Ich habe es so vereinfacht: solange es den Euro gibt, soll es das Pfund sein))). Am 27. gibt es also keine Indexdaten.

 
Verwirrt. Wie ermittle ich den tatsächlichen Gewinn (Verlust) bei einem offenen Auftrag (nicht bei einem schwebenden Auftrag) auf MT4, einschließlich aller Provisionen, Swaps usw.? (OrderProfit() + OrderSwap() + OrderCommission() oder nurOrderProfit() oder etwas anderes? Ich möchte gerne etwas verdienen, nachdem die Bestellung abgeschlossen ist.
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
Grund der Beschwerde: