저에게 매우 유용한 기사입니다. 라이브러리를 사용하면 모든 것이 훨씬 쉬워집니다!
개발자에게 요청: High[i] , Low[i]로 작업할 클래스를 작성하세요. Open[i], Close[i]. 이 클래스는 모두에게 유용할 것 같아요! 나는이 문제를 스스로 해결했지만 테스트에 많은 시간이 걸리기 때문에 그것이 올바른지 확실하지 않습니다....
#include <Indicators\Series.mqh> double High[]; CiHigh z;
이 코드에서 오류가 발생하는 이유
'1.mq5' 1.mq5 1 1
'Series.mqh' Series.mqh 1 1
'ArrayObj.mqh' ArrayObj.mqh 1 1
'Array.mqh' Array.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'ArrayDouble.mqh' ArrayDouble.mqh 1 1
'CiHigh' - 타입이 없는 선언 1.mq5 12 2
1 오류(들), 0 경고(들) 2 1
얻는 방법을 작성하는 것이 어렵지 않은 경우
Print High[2]를 예로 들 수 있습니다.
이 코드에서 오류가 발생하는 이유
어렵지 않다면 다음과 같이 작성하십시오.
Print High[2]를 예로 들어 보겠습니다.
문서에 잘못된 인쇄가 있습니다. 이 클래스는 TimeSeries.mqh 파일에 있습니다.
사용 예(스크립트는 현재 차트의 마지막 세 개의 고점을 인쇄합니다):
#include <Indicators\TimeSeries.mqh> //+------------------------------------------------------------------+ //| 스크립트 프로그램 시작 기능| //+------------------------------------------------------------------+ void OnStart() { //--- double High[]; CiHigh z; int count=3; if(z.Create(_Symbol,_Period)==true) { if(z.GetData(0,count,High)==count) { for(int i=0; i<count; i++) Print(i,"=",High[i]); } else Print("검색에 실패했습니다.",count,"시계열 데이터."); } else Print("시계열을 만드는 동안 오류가 발생했습니다."); } //+------------------------------------------------------------------+
문서에 잘못 인쇄된 부분이 있습니다. 이 클래스는 TimeSeries.mqh 파일에 있습니다.
사용 예(스크립트는 현재 차트의 마지막 세 개의 고점을 출력합니다):
나는 모든 사람이 자신과 자신의 필요를 위해 프로그래밍한다는 것을 이해하지만 기본적으로 모두 기능보다 하나의 메소드와 설명 부분으로 구성되어 있고 일반적으로 특정 악기에 대한 모든 시계열이 필요하기 때문에 기본적으로 시계열 클래스 그룹을 좋아하지 않으며, 필요한 악기에 대한 모든 시계열이있는 하나의 클래스를 만들었고, 대략 다음과 같이 역사가 펌핑되는 메소드에서:
struct str_bars{ datetime time[]; // 현재 차트의 각 막대의 시작 시간을 포함하는 시계열 배열 double open[]; // 현재 차트의 각 막대의 시가를 포함하는 시계열 배열입니다. double close[]; // 현재 차트의 각 막대 종가를 포함하는 시계열 배열입니다. double high[]; // 현재 차트의 각 막대의 최대 가격이 포함된 시계열 배열입니다. double low[]; // 현재 차트의 각 막대의 최소 가격이 포함된 시계열 배열입니다. }; struct str_info{ double point; // 현재 상품 포인트 크기를 견적 통화로 표시 int spread; // 현재 스프레드 }; //____________________________________________________________________ class currency { public: //---- данные MqlTick TICK; // 틱 데이터 str_bars BAR; // 시계열 데이터 str_info INFO; // 도구 정보 int error; //---- методы int create(string sym,ENUM_TIMEFRAMES period, int numbars); int refresh(void); private: string symbol; ENUM_TIMEFRAMES per; int num; datetime lastbar_time; int tmpint1,tmpint2; int ch_load(void); }; //____________________________________________________________________
나는 이미 준비된 데이터의 일부에서만 내 클래스로 작업하고 물론 클래스 자체는 새로 고침 () 메서드를 호출하여 데이터를 수신합니다.
기사에 부정확한 내용이 있습니다.
double lot_price = myaccount.MarginCheck(_Symbol,otype,Lot); // 로트 가격/필요 마진 수
이 있어야 합니다.
double lot_price=myaccount.MarginCheck(_Symbol,otype,Lot,price); //--- 로트 가격/필요 마진 수
훌륭한 기사입니다. 작성자에게 감사드립니다. 주문하기 전에 Stop_Level 확인과 스프레드 값 확인도 작성하고 싶습니다. 문제는 스프레드가 변동하면 높은 값에서는 수익성이 없기 때문에 시장에 진입 할 수 없다는 것입니다. 이것은 전문 고문이 뉴스 중에 거래하지 않는 데 도움이 될 것입니다. 또한 편차를 확인하고 싶습니다. 추론은 비슷합니다. 그리고 라이브러리에 대한 질문도 있습니다 : 함수 란 무엇입니까 (어떤 종류의 프로세스를 나타내고 설명합니까)?
FreezeLevel
| int FreezeLevel() const |
간단한 언어로 설명해 주세요 - 알고 계신다면 설명해 주세요.
그리고 질문이 하나 더 있습니다. 예를 들어 현재 시점(10포인트)에서 Stop_Level과 같은 한도를 알아낼 수 있습니다. SL=10 포인트로 지정가 주문을 합니다. 예를 들어 한 시간 후에 가격이 주문에 지정한 가격에 도달하지만 현재 Stop_Level은 예를 들어 15핍입니다. 어떻게 될까요 - 지정가 주문이 체결될까요 아니면 거부될까요? 또한 가격이 주문에 지정된 가격에 도달했지만 스프레드가 변경된 경우 - 주문을 시작할 당시의 예상 가격과 비교하여 더 나쁜 가격으로 진입 또는 출구가 가능하거나 주문이 전혀 작동하지 않음을 의미합니까?
제가 뭘 잘못하고 있나요? 입찰이 인쇄되지 않는 이유는 무엇인가요?
작업 로그는 다음과 같습니다.
2011.01.31 20:20:18 00(EURUSD,M1) EURUSD 0
다음은 코드입니다.
#include <Trade\SymbolInfo.mqh> //--- CSymbolInfo 클래스 CSymbolInfo my_symbol; //--- CSymbolInfo 클래스의 객체 //+------------------------------------------------------------------+ //| 전문가 초기화 기능| //+------------------------------------------------------------------+ int OnInit() { return(0); } //+------------------------------------------------------------------+ //| 전문가 초기화 기능| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| 전문가 틱 기능| //+------------------------------------------------------------------+ void OnTick() { my_symbol.Name(_Symbol); my_symbol.Refresh(); Print(_Symbol," ",my_symbol.Bid()); } //+------------------------------------------------------------------+
새로운 기고글 Expert Advisor 작성시 MQL5 Standard Trade Class 라이브러리 사용 가 게재되었습니다:
`이 글에서는 거래를 하기 전에 포지션 청산 및 수정, 주문 보류 및 삭제 및 마진 확인을 구현하는 Expert Advisors를 작성하는 데 MQL5 표준 라이브러리 거래 클래스의 주요 함수를 사용하는 방법을 설명합니다. 또한 트레이드 클래스를 사용하여 주문 및 거래 세부 정보를 얻는 방법을 시연했습니다.
지금까지 Expert Advisor 작성시 Trade 클래스 라이브러리를 사용하는 방법을 살펴보았습니다. 다음은 전략 테스터로 Expert Advisor를 테스트하고 성능을 확인하는 것입니다.
EA 코드를 컴파일 한 다음 전략 테스터에로드합니다.
그림 3. Expert Advisor 컴파일 보고서
기본 설정: 이익 실현-270, 손절매-100 및 트레일 포인트 (TP/SL) - 32를 사용하는 GBPUSD 일일 차트에 다음과 같은 결과가 있습니다.
그림 4. Expert Advisor 테스트 보고서 - GBPUSD 일일 차트
작성자: Samuel Olowoyo