초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 903

 
Vladimir Pavlov :

컴퓨터 내부에서 복사하기 위한 스크립트를 멍청하게 만들었다.... 복사가 안 된다!

글쎄, 오류에 대한 설명은 어디에 있습니까? 어떤 운영 체제? MetaTrader 5 빌드는 무엇입니까?

폴더에 대한 쓰기 권한이 있습니까?


추가됨: 디렉터리가 없으면 먼저 만들어야 하는 것 같습니다 .


복사가 기존 디렉토리로 이동하는 경우 - 문제 없습니다. MetaTrader 5는 오류 없이 작동합니다.

 

주어진 ID를 가진 포지션이 마감되었음을 어떻게 확신할 수 있습니까?

명백한 해결책은 PositionSelectByTicket이 false를 반환하는 경우이지만, 거래 계정에 연결할 때 열린 위치 가 터미널에 로드될 시간이 없는 상황에서도 발생할 수 있습니까?

약간 더 복잡한 솔루션 - PositionSelectByTicket은 false를 반환하고 HistorySelectByPosition은 true를 반환합니다. 이 경우 이 위치에 대한 기록이 로드되면 열린 위치 목록에 로드할 시간이 있어야 합니다.

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
. ... Rick D. ... . :

터미널이 동기화될 때까지 기다립니다. 예를 들어, 동안( HistorySelect ).

 
fxsaber :

터미널이 동기화될 때까지 기다립니다. 예를 들어, 동안(HistorySelect).

나는 터미널의 내부 미묘함에 대한 감정가가 아닙니다. 그러나 OnInit이 올 때 열린 위치 테이블(및 아마도 거래 내역)이 이미 로드되었다는 것이 보장될 수 있습니까?

 
. ... Rick D. ... . :

나는 터미널의 내부 미묘함에 대한 감정가가 아닙니다.

또한 전문가가 아닙니다. 한 번에 몇 가지 옵션만 생각하면 시도해 볼 수 있습니다. 그리고 효과가 있는 것 - 실험을 해야 합니다.

 
Vladimir Karputov :

가장 간단한 해결책은 MetaTrader에서 원하는 금융 상품의 차트를 열고 이 차트에 Expert Advisor를 첨부하는 것입니다.

이것은 알려져 있습니다. 그러나 프로그램 자체에서 작업을 위해 쌍을 할당하는 방법이 흥미 롭습니까? 이에 대한 기능이 있습니까?
 
cepreu1 :
이것은 알려져 있습니다. 그러나 프로그램 자체에서 작업을 위해 쌍을 할당하는 방법이 흥미 롭습니까? 이에 대한 기능이 있습니까?

쉬운.

예를 들어, 거래 작업. 우리는 거래 클래스 CTrade , 방법 Buy 를 봅니다.

 bool   Buy( 
   double         volume,           // объем позиции 
   const string   symbol= NULL ,     // символ 
   double         price= 0.0 ,       // цена исполнения 
   double         sl= 0.0 ,           // цена Stop Loss 
   double         tp= 0.0 ,           // цена Take Profit 
   const string   comment= ""        // комментарий 
   )

원하는 문자 를 지정할 수 있는 곳을 강조 표시했습니다.


또는 예를 들어 시가, 종가에 대한 데이터 획득 ... - CopyRates :

 int    CopyRates ( 
   string            symbol_name,       // имя символа 
   ENUM_TIMEFRAMES   timeframe,         // период 
   int               start_pos,         // откуда начнем  
   int               count,             // сколько копируем 
   MqlRates          rates_array[]       // массив, куда будут скопированы данные 
   );
 
Vladimir Karputov :

쉬운.

예를 들어, 거래 작업. 우리는 거래 클래스 CTrade , 방법 Buy 를 봅니다.

원하는 문자 를 지정할 수 있는 곳을 강조 표시했습니다.


또는 예를 들어 시가, 종가에 대한 데이터 획득 ... - CopyRates :

네 알겠습니다. 그러나 시작할 때 쌍을 할당하고 싶은 것을 지정하지 않았지만

포지션을 열지 않고. 그리고 매수는 포지션을 열어서 하고,

CopyRates 는 할당하지 않고 쌍 의 기록 데이터 를 제공합니다.

 
cepreu1 :

네 알겠습니다. 그러나 시작할 때 쌍을 할당하고 싶은 것을 지정하지 않았지만

포지션을 열지 않고. 그리고 매수는 포지션을 열어서 하고,

CopyRates 는 할당하지 않고 쌍 의 기록 데이터 를 제공합니다.

당신은 약간 활달하지만 추측하려고합니다. 기호 이름과 함께 입력 매개 변수가 필요합니까? 그런 다음 코드가 있습니다. " InpSymbol " 매개변수에서 원하는 기호를 설정합니다. 이 기호는 OnInit()에서 확인됩니다. 이러한 기호가 없으면 EA가 언로드되고 터미널의 "전문가" 탭(또는 테스터의 "저널" 탭)에 오류 메시지가 나타납니다. .

 //+------------------------------------------------------------------+
//|                                                   Set Symbol.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.000"
//---
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//--- input parameters
input string    InpSymbol= "ASDWER" ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   if (!m_symbol.Name(InpSymbol)) // sets symbol name
       return ( INIT_FAILED );
   RefreshRates ();
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (! RefreshRates ())
       return ;
   string text=m_symbol.Name()+ "\n" +
               "Ask " + DoubleToString (m_symbol. Ask (),m_symbol. Digits ())+ "\n" +
               "Bid " + DoubleToString (m_symbol. Bid (),m_symbol. Digits ());
   Comment (text);

  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates ( void )
  {
//--- refresh rates
   if (!m_symbol. RefreshRates ())
     {
       Print ( "RefreshRates error" );
       return ( false );
     }
//--- protection against the return value of "zero"
   if (m_symbol. Ask ()== 0 || m_symbol. Bid ()== 0 )
       return ( false );
//---
   return ( true );
  }
//+------------------------------------------------------------------+

" InpSymbol " 매개변수에 지정된 기호가 있으면 정보가 차트에 표시됩니다.

  • 기호 이름
  • 가격을 묻다
  • 입찰 가격


작동 방식은 다음과 같습니다. EURUSD에서 시작하고 설정에서 USDJPY 기호를 지정합니다. 어드바이저가 EURUSD 기호로 작업하지만 USDJPY 기호에서 정보(가격)를 받는 것으로 밝혀졌습니다.


파일:
 
Vladimir Karputov :

당신은 약간 활달하지만 추측하려고합니다. 기호 이름과 함께 입력 매개 변수가 필요합니까? 그런 다음 코드가 있습니다. " InpSymbol " 매개변수에서 원하는 기호를 설정합니다. 이 기호는 OnInit()에서 확인됩니다. 이러한 기호가 없으면 EA가 언로드되고 터미널의 "전문가" 탭(또는 테스터의 "저널" 탭)에 오류 메시지가 나타납니다. .

" InpSymbol " 매개변수에 지정된 기호가 있으면 정보가 차트에 표시됩니다.

  • 기호 이름
  • 가격 문의
  • 입찰 가격


작동 방식은 다음과 같습니다. EURUSD에서 시작하고 설정에서 USDJPY 기호를 지정합니다. 어드바이저가 EURUSD 기호로 작업하지만 미국 기호에서 정보(가격)를 받는 것으로 밝혀졌습니다.

블라디미르 카르푸토프 :

당신은 약간 활달하지만 추측하려고합니다. 기호 이름과 함께 입력 매개 변수가 필요합니까? 그런 다음 코드가 있습니다. " InpSymbol " 매개변수에서 원하는 기호를 설정합니다. 이 기호는 OnInit()에서 확인됩니다. 이러한 기호가 없으면 EA가 언로드되고 터미널의 "전문가" 탭(또는 테스터의 "저널" 탭)에 오류 메시지가 나타납니다. .

" InpSymbol " 매개변수에 지정된 기호가 있으면 정보가 차트에 표시됩니다.

  • 기호 이름
  • 가격 문의
  • 입찰 가격


작동 방식은 다음과 같습니다. EURUSD에서 시작하고 설정에서 USDJPY 기호를 지정합니다. 어드바이저가 EURUSD 기호로 작업하지만 USDJPY 기호에서 정보(가격)를 받는 것으로 밝혀졌습니다.


예, 하지만 이 예를 들면 EURUSD에서 Expert Advisor를 시작하지만 USDJPY 기호에서 정보(가격)를 얻습니다.

왜 복잡한가, 다시 말하지만, 이 예를 들면 EURUSD(또는 기타

오른쪽 쌍) 그리고 그게 다야, 우리는 이 쌍을 보고 필요한 경우 포지션을 엽니다.

사유: