MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 864

 
Taras Slobodyanik:

では、休日や取引禁止を定義する必要があるのでしょうか?
27日にトレードが許可された。

週末であれば、休日/週末を識別するためのニュースパーサーが必要です。

特定のシンボルで取引されない理由は何でもいいのですが、取引されていないことを確認する必要があります。それと、すみません、私はまだパーサーを理解できるほど未熟ではありません。それは何なのか、どのようにコードに綴られているのか。

 
novichok2018:

こんにちは。

Alexey Viktorov 氏から引用のヒントをいただき、ありがとうございます - すべてうまくいきました。今週の月曜日は、ドイツ人が貿易を行い、イギリス人は休みという状況です。ユーロのポジションを開く 条件として、ポンドの古い値を使用していたことが判明しました。したがって、要求:両方のシンボルがこの日に取引されていることをコードでチェックを設定する方法をアドバイス?

ありがとうございます。

#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()
  {
//---

  }

出典https://www.mql5.com/ru/articles/481

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

出典https://www.mql5.com/ru/articles/481

ここで何を言っていいのかわからない。ありがとうございます。でも、これは完全にオフトピックだと思います。そして、なぜ「スコアが本物だとわかったら、すぐにEAを終了 させること!」なのか。「というのは、何か見落としているような気がします。

 
novichok2018:

ここで何を言っていいのかわからない。もちろん、ありがとうございます。しかし、これは完全にオフトピックだと思います。そして、なぜ「スコアが本物だとわかったら、すぐにEAを終了 させること!」なのか。"?

これは記事にあるコードの例です。 記事では実験的なコードを取り上げており、取引用ではありませんが、機能は同じです。古い記事ですが、初心者にお勧めの記事です。

お求めの出力はコードでは計算できません。トレードはオープンだったが、イギリスはトレードをせず、通常の相場はなかった。引用符に「正常」を設定してみて、あるかどうかを確認する。例えば、スプレッド、ティック・ボラティリティ、価格更新の頻度など、自分に合わないものは何でもいいのです。空想の逃避行。

 
novichok2018:

ここで何を言っていいのかわからない。もちろん、ありがとうございます。でも、これはまったく別の話だと思います。

出力について調べる最も簡単な方法は、アカウントのプロパティから です、アカウントに制限があるでしょう、もちろんIMHOです。そのため、上記のようなコードブロックを例として挙げました。

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

また、国産の出力では、シンボルに制限がある場合があります。実際、記事を見てみると、そこにもあるんですよ。

#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:

特定のシンボルで取引されない理由は何でもいいのですが、取引されていないことを確認する必要があります。それと、すみません、私はまだパーサーを理解できるほど未熟ではありません。それは何なのか、どのようにコードに書かれているのか。

ノートレードとはどういう意味ですか??
取引は可能で、好きなだけ取引できます。)

パーサーとは、ニュースの入ったファイルをダウンロードし、それを解析して、休日-週末を決定することです。

 
Taras Slobodyanik:

トレード可-好きなだけトレードしてください)

トレードは可能だが、トレードはできない--休日なのだ。

でも、解決策が見つかったような気がします。

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

と言って、27日にポジションが開かなかった。

私には良い解決策のように思えます。もし、落とし穴があるようでしたら、教えていただければと思います。皆さん、ありがとうございました。

 
novichok2018:

取引は可能だが、取引はできない--休暇中なのだ。

売買が成立しているのかどうかわからない
(休日・週末も)。

ブローカーでニュースを見たが、27日にポンドを制限している人はいなかった。

 
Taras Slobodyanik:

取引が許可されているならば、取引が行われるのかがわからない
(祝日や週末でも)

ブローカーでニュースを見たが、27日にポンドを制限している人はいなかった。

実は、私はポンドではなく、FTSE100指数に興味があったのです。ユーロである限り、ポンドであってくれ)))と簡略化したのです。そのため、27日のインデックスデータはありません。

 
混乱した。MT4の未決済注文(保留注文ではない)で、すべての手数料、スワップなどを含む実質的な利益(損失)を得るにはどうすればよいですか?(OrderProfit() + OrderSwap() + OrderCommission() orOrderProfit() or something else)?注文が終了した後、何か収入を得たい。
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...