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

여기서 무슨 말을 해야 할지 모르겠습니다. 물론 감사합니다. 하지만 제 생각에는 그것은 질문의 주제가 절대 아닙니다. 그리고 왜 " 계정이 진짜로 밝혀지면 전문가의 작업을 즉시 중단합니다! "? 나는 내가 뭔가를 이해하지 못한다는 것을 인정한다.

 
novichok2018 :

여기서 무슨 말을 해야 할지 모르겠습니다. 물론 감사합니다. 그러나 제 생각에는 그것은 질문의 주제가 절대 아닙니다. 그리고 왜 " 계정이 진짜로 밝혀지면 전문가의 작업을 즉시 중단합니다! "?

이것은 기사의 예제 코드이며 기사는 거래가 아닌 실험적인 코드를 다루고 있지만 기능은 동일합니다. 오래된 글이지만 초보자를 위한 글입니다.

그리고 당신이 찾고 있는 것과 같은 주말은 코드로 계산할 수 없습니다. 무역이 열렸을 때 영국인은 무역을 하지 않았고 정상적인 견적도 없었습니다. 따옴표에 대해 "정상성"의 표시를 설정하고 그 존재를 확인하십시오. 예를 들어, 틱 변동성, 가격 업데이트 빈도 또는 마음에 들지 않는 모든 것을 퍼뜨립니다. 환상을 위한 비행.

 
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 :

특정 기호가 거래되지 않는 이유는 중요하지 않습니다. 거래되지 않는지 확인하기만 하면 됩니다. 죄송합니다. 저는 아직 파서를 이해할 만큼 성숙하지 않았습니다. 그것은 무엇이며 코드에서 어떻게 작성됩니까?

"no trade"은(는) 무슨 뜻인가요?
거래 허용 - 원하는 만큼 거래)

파서 - 이것은 뉴스가 포함된 파일을 다운로드한 다음 이를 파싱(파싱)하고 휴일을 결정해야 함을 의미합니다.

 
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() 또는 그냥 OrderProfit() 또는 다른 무엇입니까? 나는 주문이 끝난 후에 최소한 무언가를 벌고 싶습니다.
Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...