그러나 실용적인 측면에서 알고리즘 거래만을 위해 Kohonen 네트워크를 사용하는 것은 단 하나의 접근 방식, 즉 EA 최적화 결과를 위해 구축된 토폴로지 맵의 동일한 시각적 분석으로 제한되었습니다. 이 경우 가치 판단, 또는 그림에서 합리적인 결론을 도출하는 자신의 비전과 능력이 아마도 중요한 요소로 드러날 것입니다. 이는 너트와 볼트 문제의 관점에서 데이터를 나타내는 것과 관련된 네트워크 속성을 제외하는 것입니다.
즉, 신경망 알고리즘의 기능을 최대한 활용하지 않고, 자동으로 지식을 추출하거나 특정 권장 사항으로 의사 결정을 지원하지 않고 사용되었습니다. 이 논문에서 우리는 로봇 매개변수의 최적 집합을 보다 정형화된 방식으로 정의하는 문제를 고려합니다. 또한 경제 범위를 예측하는 데 코호넨 네트워크를 적용할 것입니다. 그러나 이러한 적용된 문제를 진행하기 전에 기존 소스 코드를 수정하고 수정하고 일부 개선해야 합니다.
'네트워크', '계층', '뉴런'('노드'), '링크', '가중치', '학습률' 등의 용어에 익숙하지 않다면 위의 글을 먼저 읽어보시길 적극 권장합니다. , '학습 범위' 및 Kohonen 네트워크와 관련된 기타 개념. 그런 다음 우리는 이 문제에 대해 충분히 이해해야 하므로 기본 개념을 다시 가르치면 이 출판물이 상당히 길어질 것입니다.
MetaTrader 5 플랫폼 업데이트는 2019년 2월 21일에 출시됩니다. 새 버전에는 다음과 같은 변경 사항이 있습니다.
터미널: 내장 경제 달력을 완전히 수정했습니다.
경제 달력 은 우리의 독점 솔루션입니다. 여기에는 미국, 유럽 연합, 일본, 영국, 캐나다, 호주, 중국 등 13대 글로벌 경제와 관련된 600개 이상의 금융 뉴스 및 지표가 있습니다. 관련 데이터는 오픈 소스에서 실시간으로 수집됩니다.
새 버전에는 업데이트된 콘텐츠와 고급 이벤트 필터(시간, 우선 순위, 통화 및 국가별)가 있습니다.
이제 MQL5 프로그램에서 캘린더 데이터에 액세스할 수 있습니다. 자세한 내용은 아래를 참조하십시오.
터미널: 새로운 유형의 MQL5 애플리케이션인 서비스가 추가되었습니다. 이 새로운 유형을 통해 터미널에 대한 맞춤형 가격 피드를 생성할 수 있습니다. 즉, 브로커의 거래 서버에서 구현되는 것처럼 실시간으로 외부 시스템에서 가격 전달을 구현할 수 있습니다.
Expert Advisors, 지표 및 스크립트와 달리 서비스는 특정 차트에 연결되지 않습니다. 이러한 응용 프로그램은 백그라운드에서 실행되며 터미널이 시작될 때 자동으로 실행됩니다(해당 응용 프로그램이 강제로 중지된 경우 제외).
서비스는 네비게이터 창의 새 섹션에서 관리할 수 있습니다.
서비스를 만드는 방법 서비스 템플릿을 생성하려면 해당 MQL5 마법사 옵션을 사용하십시오. 서비스에는 스크립트와 유사한 하나의 OnStart 진입점이 있습니다. 이때 네트워크 기능 을 사용하여 데이터 수신 및 처리 주기를 무한대로 구현할 수 있습니다.
서비스를 시작하는 방법 매개변수가 다른 여러 Expert Advisor 또는 지표 복사본을 실행하려면 다른 차트에서 실행해야 합니다. 이 경우 다른 프로그램 인스턴스가 생성된 다음 독립적으로 작동합니다. 서비스는 차트에 연결되지 않으므로 서비스 인스턴스 생성을 위한 특별한 메커니즘이 구현되었습니다.
네비게이터에서 서비스를 선택하고 컨텍스트 메뉴에서 "서비스 추가"를 클릭하십시오. 그러면 거래를 활성화/비활성화하고 신호 설정에 액세스하고 다양한 매개변수를 설정할 수 있는 표준 MQL5 프로그램 대화 상자가 열립니다.
적절한 인스턴스 메뉴를 사용하여 서비스 인스턴스를 시작 및 중지할 수 있습니다. 모든 인스턴스를 관리하려면 서비스 메뉴를 사용하세요.
터미널: 학습 프로그램이 추가되었습니다.
새로운 기능은 초보자가 플랫폼과 상호 작용하는 방법을 배우는 데 도움이 됩니다. 주요 플랫폼 기능과 관련된 100개 이상의 대화형 팁을 추가했습니다.
팁은 도구 모음에 진행률 표시줄로 매끄럽게 표시되므로 사용자의 주의를 산만하게 하지 않습니다.
팁은 플랫폼에서 수행한 적이 없는 작업에 대해서만 나타납니다.
모든 팁에는 관련 인터페이스 요소로 이동할 수 있는 대화형 링크가 포함되어 있습니다. 예를 들어, 거래 대화 상자나 원하는 프로그램이 있는 메뉴를 팁에서 바로 실행할 수 있습니다.
적절한 작업을 수행하고 교육을 계속할 때마다 진행률 표시줄의 채워진 영역이 늘어납니다.
터미널: 거래 계좌 내역 을 포지션으로 제시할 수 있습니다. 플랫폼은 포지션(오픈, 볼륨 증가, 부분 또는 전체 마감)과 관련된 거래에 대한 데이터를 수집하고 정보를 단일 레코드로 그룹화합니다. 따라서 오픈 및 클로즈 시간, 거래량, 가격 및 결과와 같은 위치 세부 정보에 액세스할 수 있습니다. 이 효율적인 프레젠테이션 양식은 이제 파일로 내보낸 기록 보고서에서 사용할 수 있습니다.
터미널: R 언어를 사용하는 애플리케이션을 통해 MetaTrader 5 터미널 데이터를 요청할 수 있는 새로운 API가 추가되었습니다.
특별한 MetaTrader 패키지를 준비했습니다. 여기에는 R과 MetaTrader 5 터미널, 문서 및 보조 r 파일 간의 상호 작용을 위한 DLL이 포함되어 있습니다. CRAN 저장소에서 패키지 등록을 완료하고 나면 다운로드 및 설치가 가능합니다.
패키지는 다음과 같은 특수 명령을 사용하여 설치할 수 있습니다.
R CMD INSTALL --build MetaTrader
데이터 요청과 관련된 다음 명령을 사용할 수 있습니다.
MT5Initialize는 MetaTrader 5 터미널을 초기화하고 연결을 설정합니다. 필요한 경우 명령 실행 중에 터미널이 실행됩니다.
MT5Shutdown은 MetaTrader 5를 초기화 해제하고 연결을 끊습니다.
MT5Version은 MetaTrader 5 터미널 버전을 가져옵니다.
MT5TerminalInfo는 브로커의 서버에 대한 터미널 연결 상태 및 매개변수(계정 번호 및 서버 주소)를 가져옵니다.
MT5WaitTerminal은 MetaTrader 5 터미널이 브로커 서버에 연결될 때까지 기다립니다.
MT5CopyTicksFrom(symbol, from, count, flags)은 지정된 날짜부터 시작하여 지정된 틱 수를 복사합니다. 날짜는 1970년 1월 1일부터 밀리초 단위로 지정됩니다.
MT5CopyTicksRange(symbol, from, to, flags)는 지정된 기간 내에서 틱을 복사합니다. 날짜는 1970년 1월 1일부터 밀리초 단위로 지정됩니다.
MT5CopyRatesFrom(symbol, timeframe, from, count)는 지정된 날짜부터 시작하여 지정된 수의 1분 막대를 복사합니다. 날짜는 1970년 1월 1일부터 초 단위로 지정됩니다.
MT5CopyRatesFromPos(symbol, timeframe, start_pos, count)는 마지막 막대를 기준으로 지정된 위치에서 1분 막대를 복사합니다.
MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to)는 지정된 기간 내에서 막대를 복사합니다. 날짜는 1970년 1월 1일부터 초 단위로 지정됩니다.
지원되는 명령 목록이 더 확장됩니다.
터미널: 반대 위치로 위치를 마감하는 데 사용되는 최적화된 닫기 기준 대화 상자입니다. 이제 많은 수의 열린 위치가 있어도 대화가 느려지지 않습니다.
CalendarValueHistoryByEvent — 이벤트 식별자별로 지정된 기간의 값 배열을 가져옵니다.
bool CalendarValueHistoryByEvent(
ulong event_id, // event ID
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // period beginning datedatetime datetime_to= 0 // period end date
);
CalendarValueHistory — 국가 및/또는 통화별로 필터링된 모든 이벤트에 대해 지정된 기간의 값 배열을 가져옵니다.
bool CalendarValueHistory(
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // beginning of perioddatetime datetime_to= 0 , // end of periodstring country_code=NULL, // country codestring currency=NULL // currency
);
CalendarValueLastByEvent — 식별자별로 마지막 이벤트 값의 배열을 가져옵니다. 이 기능은 이전 요청 이후에 나타난 값의 요청을 가능하게 합니다. 이 작업에는 입/출력 매개변수 "change_id"가 추가로 사용됩니다.
달력 데이터베이스가 변경될 때마다 "change_id" 속성(마지막 변경 식별자)이 업데이트됩니다. 데이터 요청 중에 "change_id"를 지정하면 터미널은 그 시간 이후에 발생한 이벤트와 다음 요청에 사용할 수 있는 현재 "change_id" 값을 반환합니다. 첫 번째 함수 호출 중에 "change_id"를 0으로 지정합니다. 함수는 이벤트를 반환하지 않지만 추가 요청에 대해 현재 "change_id"를 반환합니다.
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[] // array of values
);
CalendarValueLast — 국가 및/또는 통화별로 필터링된 모든 이벤트의 마지막 값 배열을 가져옵니다. 이 기능은 이전 요청 이후에 나타난 값의 요청을 가능하게 합니다. CalendarValueLastByEvent와 유사하게 "change_id" 속성이 요청에 사용됩니다.
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[], // array of valuesstring country_code=NULL, // country codestring currency=NULL // currency
);
새로운 구조
MqlCalendarCountry — 국가 설명.
struct MqlCalendarCountry
{
ulong id; // country ID in ISO 3166-1string name; // text name of the countrystring code; // code name of the country in ISO 3166-1 alpha-2string currency; // country currency codestring currency_symbol; // country currency symbol/signstring url_name; // country name used in URL on mql5.com
};
MqlCalendarEvent — 이벤트 설명입니다.
struct MqlCalendarEvent
{
ulong id; // event ID
ENUM_CALENDAR_EVENT_TYPE type; // event type
ENUM_CALENDAR_EVENT_SECTOR sector; // sector to which the event belongs
ENUM_CALENDAR_EVENT_FREQUENCY frequency; // event release frequency
ENUM_CALENDAR_EVENT_TIMEMODE time_mode; // event release time modeulong country_id; // country ID
ENUM_CALENDAR_EVENT_UNIT unit; // unit for the event values
ENUM_CALENDAR_EVENT_IMPORTANCE importance; // event importance
ENUM_CALENDAR_EVENT_MULTIPLIER multiplier; // event importance multiplieruint digits; // number of decimal places in the event valuestring source_url; // source URLstring event_code; // event codestring name; // text name of the event in the terminal language
};
MqlCalendarValue — 이벤트 값 설명.
struct MqlCalendarValue
{
ulong id; // value IDulong event_id; // event IDdatetime time; // event date and timedatetime period; // period, for which the event is publishedint revision; // published indicator revision in relation to the reported periodlong actual_value; // current event valuelong prev_value; // previous event valuelong revised_prev_value; // revised previous event valuelong forecast_value; // forecast event value
ENUM_CALENDAR_EVENT_IMPACRT impact_type; // potential impact on the currency rate
};
새로운 열거
enum ENUM_CALENDAR_EVENT_FREQUENCY
{
CALENDAR_FREQUENCY_NONE = 0 , // not used
CALENDAR_FREQUENCY_WEEK = 1 , // weekly
CALENDAR_FREQUENCY_MONTH = 2 , // monthly
CALENDAR_FREQUENCY_QUARTER = 3 , // quarterly
CALENDAR_FREQUENCY_YEAR = 4 , // yearly
CALENDAR_FREQUENCY_DAY = 5 , // daily
};
enum ENUM_CALENDAR_EVENT_TYPE
{
CALENDAR_TYPE_EVENT = 0 , // event (meeting, speech, etc.)
CALENDAR_TYPE_INDICATOR = 1 , // indicator
CALENDAR_TYPE_HOLIDAY = 2 , // holiday
};
enum ENUM_CALENDAR_EVENT_SECTOR
{
CALENDAR_SECTOR_NONE = 0 , // no
CALENDAR_SECTOR_MARKET = 1 , // market
CALENDAR_SECTOR_GDP = 2 , // GDP
CALENDAR_SECTOR_JOBS = 3 , // jobs
CALENDAR_SECTOR_PRICES = 4 , // prices
CALENDAR_SECTOR_MONEY = 5 , // money
CALENDAR_SECTOR_TRADE = 6 , // trade
CALENDAR_SECTOR_GOVERNMENT = 7 , // government
CALENDAR_SECTOR_BUSINESS = 8 , // business
CALENDAR_SECTOR_CONSUMER = 9 , // consumer
CALENDAR_SECTOR_HOUSING = 10 , // housing
CALENDAR_SECTOR_TAXES = 11 , // taxes
CALENDAR_SECTOR_HOLIDAYS = 12 , // holidays
};
enum ENUM_CALENDAR_EVENT_IMPORTANCE
{
CALENDAR_IMPORTANCE_LOW = 0 , // no
CALENDAR_IMPORTANCE_NONE = 1 , // low
CALENDAR_IMPORTANCE_MODERATE = 2 , // moderate
CALENDAR_IMPORTANCE_HIGH = 3 , // high
};
enum ENUM_CALENDAR_EVENT_UNIT
{
CALENDAR_UNIT_NONE = 0 , // no
CALENDAR_UNIT_PERCENT = 1 , // percent
CALENDAR_UNIT_CURRENCY = 2 , // national currency
CALENDAR_UNIT_HOUR = 3 , // number of hours
CALENDAR_UNIT_JOB = 4 , // number of jobs
CALENDAR_UNIT_RIG = 5 , // number of rigs
CALENDAR_UNIT_USD = 6 , // US dollar
CALENDAR_UNIT_PEOPLE = 7 , // number of people
CALENDAR_UNIT_MORTGAGE = 8 , // number of mortgages
CALENDAR_UNIT_VOTE = 9 , // number of votes
CALENDAR_UNIT_BARREL = 10 , // number of barrels
CALENDAR_UNIT_CUBICFEET = 11 , // volume in cubic feet
CALENDAR_UNIT_POSITION = 12 , // number of job positions
CALENDAR_UNIT_BUILDING = 13// number of buildings
};
enum ENUM_CALENDAR_EVENT_MULTIPLIER
{
CALENDAR_MULTIPLIER_NONE = 0 , // no
CALENDAR_MULTIPLIER_THOUSANDS = 1 , // thousands
CALENDAR_MULTIPLIER_MILLIONS = 2 , // millions
CALENDAR_MULTIPLIER_BILLIONS = 3 , // billions
CALENDAR_MULTIPLIER_TRILLIONS = 4 , // trillions
};
enum ENUM_CALENDAR_EVENT_IMPACRT
{
CALENDAR_IMPACT_NA = 0 , // not available
CALENDAR_IMPACT_POSITIVE = 1 , // positive
CALENDAR_IMPACT_NEGATIVE = 2 , // negative
};
enum ENUM_CALENDAR_EVENT_TIMEMODE
{
CALENDAR_TIMEMODE_DATETIME = 0 , // the source publishes the exact time
CALENDAR_TIMEMODE_DATE = 1 , // the event takes the whole day
CALENDAR_TIMEMODE_NOTIME = 2 , // the source does not publish the event time
CALENDAR_TIMEMODE_TENTATIVE = 3 , // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
};
새로운 오류 코드
ERR_CALENDAR_MORE_DATA = 5400 , // the array is small for the whole result (values which fit in the array were passed)
ERR_CALENDAR_TIMEOUT = 5401 , // timed out waiting for a response to the calendar data request
ERR_CALENDAR_NO_DATA = 5402 , // data not found
bool ArrayRemove(
void & array[], // array of any typeuint start, // the index to start removaluint count=WHOLE_ARRAY // number of elements
);
ArrayInsert는 지정된 인덱스부터 시작하여 소스 배열에서 지정된 수의 요소를 수신기 배열에 삽입합니다.
bool ArrayInsert(
void & dst_array[], // receiver arrayconstvoid & src_array[], // source arrayuint dst_start, // index in the receiver array where to insertuint src_start= 0 , // index in the source array to start copyinguint count=WHOLE_ARRAY // number of inserted elements
);
ArrayReverse는 지정된 인덱스로 시작하는 지정된 수의 요소를 배열에서 반전시킵니다.
bool ArrayReverse(
void & array[], // array of any typeuint start= 0 , // index to start reversinguint count=WHOLE_ARRAY // number of elements
);
MQL5: 사용자 정의 기호에 대한 시장 깊이의 상태를 전달하기 위해 CustomBookAdd 기능을 추가했습니다. 이 기능을 사용하면 가격이 브로커의 서버에서 도착한 것처럼 Depth of Market을 방송할 수 있습니다.
int CustomBookAdd(
conststring symbol, // symbol nameconst MqlBookInfo& books[] // an array with the DOM elements descriptionsuint count=WHOLE_ARRAY // number of elements to be used
);
MQL5: CustomSymbolCreate 함수 오버로딩이 추가되었습니다. 이를 통해 기존 기호를 기반으로 사용자 지정 거래 기호를 만들 수 있습니다. 생성 후 해당 기능을 사용하여 모든 기호 속성을 편집할 수 있습니다.
boolCustomSymbolCreate (
conststring symbol_name, // custom symbol nameconststring symbol_path= "" , // name of the group in which the symbol will be createdconststring symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
);
사용자 정의 기호의 속성을 복사해야 하는 기호의 이름은 "symbol_origin" 매개변수에 지정됩니다.
날짜/시간이 포함된 문자열을 날짜/시간 값으로 변환하는 StringToTime 함수가 업데이트되었습니다. 이제 다음 날짜 형식을 지원합니다.
yyyy.mm.dd [hh:mi]
yyyy.mm.dd [hh:mi:ss]
yyyymmdd [hh:mi:ss]
yyyymmdd [hhmiss]
yyyy/mm/dd [hh:mi:ss]
yyyy-mm-dd [hh:mi:ss]
MQL5: ENUM_TERMINAL_INFO_INTEGER 열거의 새 TERMINAL_VPS 속성. 터미널이 MetaTrader 가상 호스팅 서버(MetaTrader VPS)에서 실행되고 있음을 보여줍니다. 응용 프로그램이 호스팅 서버에서 실행 중인 경우 가상 서버에는 그래픽 사용자 인터페이스가 없기 때문에 모든 시각적 기능을 비활성화할 수 있습니다.
테스터: TesterStop 기능 추가 - 테스트 에이전트에서 Expert Advisor의 일상적인 조기 종료. 이제 지정된 손실 거래 수, 사전 설정된 하락 수준 또는 기타 기준에 도달한 후 테스트를 강제로 중지할 수 있습니다.
이 기능을 사용하여 완료된 테스트는 성공한 것으로 간주됩니다. 함수 호출 후 테스트 중에 얻은 거래 내역과 모든 거래 통계가 터미널로 전달됩니다.
테스터: 실제 틱 모드에서 MQL5 Cloud Network 를 통해 Expert Advisors를 테스트하고 최적화하는 기능을 비활성화했습니다. 이 모드는 로컬 에이전트 및 로컬 네트워크 팜에서만 사용할 수 있습니다.
테스터: 시각적 테스트 중 표시기 작업이 개선되었습니다. 이제 최대 시각화 속도에서도 가격 차트와 표시선이 동기식으로 그려집니다.
테스터: 최적화되고 상당히 가속화된 테스트 및 최적화.
테스터: 기록 데이터의 표시기 디버깅을 수정했습니다. 이제 OnInit 및 OnDeinit 표시기 기능을 적절하게 디버깅할 수 있습니다.
테스터: 다중 통화 Expert Advisors를 테스트할 때 과거 데이터에 대한 더 빠른 액세스를 구현했습니다.
테스터: 기록 데이터에서 디버깅하는 동안 시각적 테스터가 가끔 멈추는 문제를 수정했습니다.
테스터: 에이전트가 작업 패키지를 처리할 때 최적화 패스의 더 빠른 시작을 구현했습니다.
테스터: 테스팅 에이전트에 작업 패키지 배포 정책이 변경되었습니다. 패키지 크기가 증가하여 네트워크 작업에 대한 리소스 소비가 크게 감소했습니다.
테스터: 로컬, 네트워크 및 클라우드 에이전트를 사용할 수 있는 옵션의 동작이 변경되었습니다. 이제 옵션을 끄면 에이전트가 수신된 작업의 처리를 완료하고 더 이상 새 작업이 제공되지 않습니다. 이전 버전에서 동작은 에이전트 작업을 즉시 중지하는 "사용 안 함" 명령과 유사했습니다.
MetaEditor: 디버거에서 ANSI가 아닌 문자에 대한 지원을 추가했습니다. 이제 변수 이름을 키릴 문자로 지정해도 표현식이 제대로 표시됩니다.
상인을 위한 LifeHack: "조용한" 최적화 또는 무역 분포 플로팅 전략 테스터에서 다중 통화 EA를 실행하여 흥미로운 결과를 얻을 수도 있습니다. 예를 들어 CodeBase의 무료 Multicurrency Expert 가 사용되었습니다. 또한 "#include <DistributionOfProfits.mqh>" 파일을 지정하고 EA 헤더에 "CDistributionOfProfits ExtDistribution" 변수를 선언했으며 코드 끝에 "OnTester()" 함수를 추가했다. 단일 실행 후 "TestAnalysis.htm" 통계가 수신되었습니다.
상관 관계는 둘 이상의 무작위 변수(또는 어느 정도 허용 가능한 정확도로 무작위로 간주될 수 있는 양) 간의 통계적 관계입니다. 하나 이상의 변수가 변경되면 다른 관련 변수가 체계적으로 변경됩니다. 두 확률 변수의 상관 관계에 대한 수학적 측정은 상관 계수입니다. 한 랜덤 변수의 변경이 다른 랜덤 변수의 규칙적인 변경으로 이어지지 않고 이 랜덤 변수의 다른 통계적 특성의 변경으로 이어지는 경우 이러한 관계는 통계적이지만 상관 관계로 간주되지 않습니다.
안녕
잘라내기 및 붙여넣기 전략을 따르고 싶은 초보자입니다. 어떻게 시작할까요? 단계별 접근이 필요합니다
제발
안녕
잘라내기 및 붙여넣기 전략을 따르고 싶은 초보자입니다. 어떻게 시작할까요? 단계별 접근이 필요합니다
제발
어디서부터 시작합니까?
https://www.mql5.com/en/forum/212020
--------------------------------
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
Metatrader 5로 시작하는 방법
세르게이 골루베프 , 2013.09.20 08:21
요약:
====
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
시그널에 대한 몇 가지 질문
세르게이 골루베프 , 2016.12.30 20:14
신호 서비스에 대한 몇 가지 정보:
이것은 어디서부터 시작해야 하는지에 대한 정보입니다.
----------
규칙 에서 -
Kohonen 신경망의 주제는 MetaTrader 5에서 Self-Organizing Feature Maps(Kohonen Maps) 사용 및 Self-Organizing Feature Maps(Kohonen Maps) - 주제 재방문 과 같은 mql5.com 웹 사이트의 일부 기사에서 접근했습니다. 그들은 독자들에게 이러한 유형의 신경망을 구축하고 이러한 지도를 사용하여 시장의 경제적 수치를 시각적으로 분석하는 일반적인 원칙을 소개했습니다.
그러나 실용적인 측면에서 알고리즘 거래만을 위해 Kohonen 네트워크를 사용하는 것은 단 하나의 접근 방식, 즉 EA 최적화 결과를 위해 구축된 토폴로지 맵의 동일한 시각적 분석으로 제한되었습니다. 이 경우 가치 판단, 또는 그림에서 합리적인 결론을 도출하는 자신의 비전과 능력이 아마도 중요한 요소로 드러날 것입니다. 이는 너트와 볼트 문제의 관점에서 데이터를 나타내는 것과 관련된 네트워크 속성을 제외하는 것입니다.
즉, 신경망 알고리즘의 기능을 최대한 활용하지 않고, 자동으로 지식을 추출하거나 특정 권장 사항으로 의사 결정을 지원하지 않고 사용되었습니다. 이 논문에서 우리는 로봇 매개변수의 최적 집합을 보다 정형화된 방식으로 정의하는 문제를 고려합니다. 또한 경제 범위를 예측하는 데 코호넨 네트워크를 적용할 것입니다. 그러나 이러한 적용된 문제를 진행하기 전에 기존 소스 코드를 수정하고 수정하고 일부 개선해야 합니다.
'네트워크', '계층', '뉴런'('노드'), '링크', '가중치', '학습률' 등의 용어에 익숙하지 않다면 위의 글을 먼저 읽어보시길 적극 권장합니다. , '학습 범위' 및 Kohonen 네트워크와 관련된 기타 개념. 그런 다음 우리는 이 문제에 대해 충분히 이해해야 하므로 기본 개념을 다시 가르치면 이 출판물이 상당히 길어질 것입니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
새로운 MetaTrader 5 플랫폼 빌드 2005: 경제 캘린더, 서비스로서의 MQL5 애플리케이션 및 R 언어 API
MetaQuotes Software Corp. , 2019.02.20 17:20
MetaTrader 5 플랫폼 업데이트는 2019년 2월 21일에 출시됩니다. 새 버전에는 다음과 같은 변경 사항이 있습니다.
- 터미널: 내장 경제 달력을 완전히 수정했습니다.
- 터미널: 새로운 유형의 MQL5 애플리케이션인 서비스가 추가되었습니다. 이 새로운 유형을 통해 터미널에 대한 맞춤형 가격 피드를 생성할 수 있습니다. 즉, 브로커의 거래 서버에서 구현되는 것처럼 실시간으로 외부 시스템에서 가격 전달을 구현할 수 있습니다.
- 터미널: 학습 프로그램이 추가되었습니다.
- 터미널: 거래 계좌 내역 을 포지션으로 제시할 수 있습니다. 플랫폼은 포지션(오픈, 볼륨 증가, 부분 또는 전체 마감)과 관련된 거래에 대한 데이터를 수집하고 정보를 단일 레코드로 그룹화합니다. 따라서 오픈 및 클로즈 시간, 거래량, 가격 및 결과와 같은 위치 세부 정보에 액세스할 수 있습니다. 이 효율적인 프레젠테이션 양식은 이제 파일로 내보낸 기록 보고서에서 사용할 수 있습니다.
- 터미널: R 언어를 사용하는 애플리케이션을 통해 MetaTrader 5 터미널 데이터를 요청할 수 있는 새로운 API가 추가되었습니다.
R CMD INSTALL --build MetaTrader
- MT5Initialize는 MetaTrader 5 터미널을 초기화하고 연결을 설정합니다. 필요한 경우 명령 실행 중에 터미널이 실행됩니다.
- MT5Shutdown은 MetaTrader 5를 초기화 해제하고 연결을 끊습니다.
- MT5Version은 MetaTrader 5 터미널 버전을 가져옵니다.
- MT5TerminalInfo는 브로커의 서버에 대한 터미널 연결 상태 및 매개변수(계정 번호 및 서버 주소)를 가져옵니다.
- MT5WaitTerminal은 MetaTrader 5 터미널이 브로커 서버에 연결될 때까지 기다립니다.
- MT5CopyTicksFrom(symbol, from, count, flags)은 지정된 날짜부터 시작하여 지정된 틱 수를 복사합니다. 날짜는 1970년 1월 1일부터 밀리초 단위로 지정됩니다.
- MT5CopyTicksRange(symbol, from, to, flags)는 지정된 기간 내에서 틱을 복사합니다. 날짜는 1970년 1월 1일부터 밀리초 단위로 지정됩니다.
- MT5CopyRatesFrom(symbol, timeframe, from, count)는 지정된 날짜부터 시작하여 지정된 수의 1분 막대를 복사합니다. 날짜는 1970년 1월 1일부터 초 단위로 지정됩니다.
- MT5CopyRatesFromPos(symbol, timeframe, start_pos, count)는 마지막 막대를 기준으로 지정된 위치에서 1분 막대를 복사합니다.
- MT5CopyRatesFromRange(symbol, timeframe, date_from, date_to)는 지정된 기간 내에서 막대를 복사합니다. 날짜는 1970년 1월 1일부터 초 단위로 지정됩니다.
- 터미널: 반대 위치로 위치를 마감하는 데 사용되는 최적화된 닫기 기준 대화 상자입니다. 이제 많은 수의 열린 위치가 있어도 대화가 느려지지 않습니다.
- 터미널: 때때로 데이터를 건너뛸 수 있었던 합성 기호 계산 오류를 수정했습니다.
- 터미널: 사용자 지정 기호 가 삭제되면 해당 눈금 및 막대 기록이 저장된 파일도 삭제됩니다. 이렇게 하면 사용하지 않는 데이터가 하드 디스크에 축적되는 것을 방지할 수 있습니다.
- 터미널: 높은 DPI 화면에서 검색 결과가 표시되는 문제를 수정했습니다.
- MQL5: MQL5 프로그램에서 경제 캘린더 데이터에 대한 액세스를 구현했습니다.
- MQL5: 눈금 및 막대 기록과 관련된 수정 사항 및 작업 속도 개선 사항.
- MQL5: 사용자 지정 거래 기호, CustomTicks* 및 CustomRates* 의 눈금 및 막대 기록 수정 기능과 관련된 수정 사항 및 상당한 작업 속도 향상.
- MQL5: 새로운 데이터 변환 기능.
- ushort, uint 및 ulong 값의 바이트 순서를 변경하기 위한 MathSwap 기능이 추가되었습니다.
- MQL5: 시스템 소켓을 통해 원격 호스트에 대한 TCP 연결을 생성하기 위한 네트워크 기능 추가:
- SocketCreate는 지정된 플래그로 소켓을 만들고 핸들을 반환합니다.
- SocketClose는 소켓을 닫습니다.
- SocketConnect는 시간 초과 제어를 사용하여 서버에 연결합니다.
- SocketIsConnected는 소켓이 현재 연결되어 있는지 확인합니다.
- SocketIsReadable은 소켓에서 읽을 수 있는 바이트 수를 가져옵니다.
- SocketIsWritable은 현재 시간에 이 소켓에 데이터 쓰기가 가능한지 확인합니다.
- SocketTimeouts는 시스템 소켓 개체에 대한 데이터 수신 및 전송 시간 제한을 설정합니다.
- SocketRead는 소켓에서 데이터를 읽습니다.
- SocketSend는 소켓에 데이터를 씁니다.
- SocketTlsHandshake는 TLS 핸드셰이크 프로토콜을 사용하여 지정된 호스트와의 보안 TLS(SSL) 연결을 시작합니다.
- SocketTlsCertificate는 보안 네트워크 연결에 사용되는 인증서에 관한 정보를 수신합니다.
- SocketTlsRead는 보안 TLS 연결에서 데이터를 읽습니다.
- SocketTlsReadAvailable은 보안 TLS 연결에서 사용 가능한 모든 데이터를 읽습니다.
- SocketTlsSend는 보안 TLS 연결을 사용하여 데이터를 보냅니다.
네트워크 기능을 사용하여 연결이 설정된 호스트 의 주소는 터미널 설정에서 허용된 주소 목록에 명시적으로 추가되어야 합니다.
- ERR_NETSOCKET_INVALIDHANDLE (5270): 유효하지 않은 소켓 핸들이 함수에 전달되었습니다.
- ERR_NETSOCKET_TOO_MANY_OPENED(5271): 너무 많은 소켓이 열려 있습니다(최대 128).
- ERR_NETSOCKET_CANNOT_CONNECT (5272): 원격 호스트에 연결하는 동안 오류가 발생했습니다.
- ERR_NETSOCKET_IO_ERROR (5273): 소켓에서 데이터를 송수신하는 동안 오류가 발생했습니다.
- ERR_NETSOCKET_HANDSHAKE_FAILED(5274): 보안 연결 설정 오류(TLS 핸드셰이크)
- ERR_NETSOCKET_NO_CERTIFICATE (5275) — 보안 연결에 사용된 인증서에 대한 데이터가 없습니다.
- MQL5: 문자열 작업을 위한 새 기능 추가:
- MQL5: 배열 작업을 위한 새 기능 추가:
- MQL5: CustomRatesUpdate , CustomRatesReplace , CustomTicksAdd 및 CustomTicksReplace 함수에 새로운 "단위 개수" 매개변수가 추가되었습니다. 전달된 배열의 요소 수를 지정할 수 있으며 이러한 기능에 사용할 수 있습니다. WHOLE_ARRAY 값은 기본적으로 매개변수에 사용됩니다. 이는 전체 어레이가 활용됨을 의미합니다.
- MQL5: 사용자 정의 기호에 대한 시장 깊이의 상태를 전달하기 위해 CustomBookAdd 기능을 추가했습니다. 이 기능을 사용하면 가격이 브로커의 서버에서 도착한 것처럼 Depth of Market을 방송할 수 있습니다.
- MQL5: CustomSymbolCreate 함수 오버로딩이 추가되었습니다. 이를 통해 기존 기호를 기반으로 사용자 지정 거래 기호를 만들 수 있습니다. 생성 후 해당 기능을 사용하여 모든 기호 속성을 편집할 수 있습니다.
- 날짜/시간이 포함된 문자열을 날짜/시간 값으로 변환하는 StringToTime 함수가 업데이트되었습니다. 이제 다음 날짜 형식을 지원합니다.
- yyyy.mm.dd [hh:mi]
- yyyy.mm.dd [hh:mi:ss]
- yyyymmdd [hh:mi:ss]
- yyyymmdd [hhmiss]
- yyyy/mm/dd [hh:mi:ss]
- yyyy-mm-dd [hh:mi:ss]
- MQL5: ENUM_TERMINAL_INFO_INTEGER 열거의 새 TERMINAL_VPS 속성. 터미널이 MetaTrader 가상 호스팅 서버(MetaTrader VPS)에서 실행되고 있음을 보여줍니다. 응용 프로그램이 호스팅 서버에서 실행 중인 경우 가상 서버에는 그래픽 사용자 인터페이스가 없기 때문에 모든 시각적 기능을 비활성화할 수 있습니다.
- MQL5: ENUM_SYMBOL_INFO_INTEGER 열거형의 새 SYMBOL_EXIST 속성은 이 이름 아래의 기호가 존재함을 의미합니다.
- MQL5: 템플릿 함수 사전 선언을 사용할 때 입력이 수정되었습니다.
- MQL5: 거래 계정을 변경할 때 표시기의 재초기화를 추가했습니다.
- MQL5: 최적화된 StringSplit 기능.
- MQL5: 표준 라이브러리 작업의 오류를 수정했습니다.
- 테스터: TesterStop 기능 추가 - 테스트 에이전트에서 Expert Advisor의 일상적인 조기 종료. 이제 지정된 손실 거래 수, 사전 설정된 하락 수준 또는 기타 기준에 도달한 후 테스트를 강제로 중지할 수 있습니다.
- 테스터: 실제 틱 모드에서 MQL5 Cloud Network 를 통해 Expert Advisors를 테스트하고 최적화하는 기능을 비활성화했습니다. 이 모드는 로컬 에이전트 및 로컬 네트워크 팜에서만 사용할 수 있습니다.
- 테스터: 시각적 테스트 중 표시기 작업이 개선되었습니다. 이제 최대 시각화 속도에서도 가격 차트와 표시선이 동기식으로 그려집니다.
- 테스터: 최적화되고 상당히 가속화된 테스트 및 최적화.
- 테스터: 기록 데이터의 표시기 디버깅을 수정했습니다. 이제 OnInit 및 OnDeinit 표시기 기능을 적절하게 디버깅할 수 있습니다.
- 테스터: 다중 통화 Expert Advisors를 테스트할 때 과거 데이터에 대한 더 빠른 액세스를 구현했습니다.
- 테스터: 기록 데이터에서 디버깅하는 동안 시각적 테스터가 가끔 멈추는 문제를 수정했습니다.
- 테스터: 에이전트가 작업 패키지를 처리할 때 최적화 패스의 더 빠른 시작을 구현했습니다.
- 테스터: 테스팅 에이전트에 작업 패키지 배포 정책이 변경되었습니다. 패키지 크기가 증가하여 네트워크 작업에 대한 리소스 소비가 크게 감소했습니다.
- 테스터: 로컬, 네트워크 및 클라우드 에이전트를 사용할 수 있는 옵션의 동작이 변경되었습니다. 이제 옵션을 끄면 에이전트가 수신된 작업의 처리를 완료하고 더 이상 새 작업이 제공되지 않습니다. 이전 버전에서 동작은 에이전트 작업을 즉시 중지하는 "사용 안 함" 명령과 유사했습니다.
- MetaEditor: 디버거에서 ANSI가 아닌 문자에 대한 지원을 추가했습니다. 이제 변수 이름을 키릴 문자로 지정해도 표현식이 제대로 표시됩니다.
- MetaEditor: 높은 DPI 화면에서 검색 결과의 표시를 수정했습니다.
- 크로아티아어로 사용자 인터페이스 번역을 추가했습니다.
- 문서가 업데이트되었습니다.
업데이트는 LiveUpdate 시스템을 통해 제공됩니다.경제 달력 은 우리의 독점 솔루션입니다. 여기에는 미국, 유럽 연합, 일본, 영국, 캐나다, 호주, 중국 등 13대 글로벌 경제와 관련된 600개 이상의 금융 뉴스 및 지표가 있습니다. 관련 데이터는 오픈 소스에서 실시간으로 수집됩니다.
새 버전에는 업데이트된 콘텐츠와 고급 이벤트 필터(시간, 우선 순위, 통화 및 국가별)가 있습니다.
이제 MQL5 프로그램에서 캘린더 데이터에 액세스할 수 있습니다. 자세한 내용은 아래를 참조하십시오.
Expert Advisors, 지표 및 스크립트와 달리 서비스는 특정 차트에 연결되지 않습니다. 이러한 응용 프로그램은 백그라운드에서 실행되며 터미널이 시작될 때 자동으로 실행됩니다(해당 응용 프로그램이 강제로 중지된 경우 제외).
서비스는 네비게이터 창의 새 섹션에서 관리할 수 있습니다.
서비스를 만드는 방법
서비스 템플릿을 생성하려면 해당 MQL5 마법사 옵션을 사용하십시오. 서비스에는 스크립트와 유사한 하나의 OnStart 진입점이 있습니다. 이때 네트워크 기능 을 사용하여 데이터 수신 및 처리 주기를 무한대로 구현할 수 있습니다.
서비스를 시작하는 방법
매개변수가 다른 여러 Expert Advisor 또는 지표 복사본을 실행하려면 다른 차트에서 실행해야 합니다. 이 경우 다른 프로그램 인스턴스가 생성된 다음 독립적으로 작동합니다. 서비스는 차트에 연결되지 않으므로 서비스 인스턴스 생성을 위한 특별한 메커니즘이 구현되었습니다.
네비게이터에서 서비스를 선택하고 컨텍스트 메뉴에서 "서비스 추가"를 클릭하십시오. 그러면 거래를 활성화/비활성화하고 신호 설정에 액세스하고 다양한 매개변수를 설정할 수 있는 표준 MQL5 프로그램 대화 상자가 열립니다.
적절한 인스턴스 메뉴를 사용하여 서비스 인스턴스를 시작 및 중지할 수 있습니다. 모든 인스턴스를 관리하려면 서비스 메뉴를 사용하세요.새로운 기능은 초보자가 플랫폼과 상호 작용하는 방법을 배우는 데 도움이 됩니다. 주요 플랫폼 기능과 관련된 100개 이상의 대화형 팁을 추가했습니다.
- 팁은 도구 모음에 진행률 표시줄로 매끄럽게 표시되므로 사용자의 주의를 산만하게 하지 않습니다.
- 팁은 플랫폼에서 수행한 적이 없는 작업에 대해서만 나타납니다.
- 모든 팁에는 관련 인터페이스 요소로 이동할 수 있는 대화형 링크가 포함되어 있습니다. 예를 들어, 거래 대화 상자나 원하는 프로그램이 있는 메뉴를 팁에서 바로 실행할 수 있습니다.
적절한 작업을 수행하고 교육을 계속할 때마다 진행률 표시줄의 채워진 영역이 늘어납니다.특별한 MetaTrader 패키지를 준비했습니다. 여기에는 R과 MetaTrader 5 터미널, 문서 및 보조 r 파일 간의 상호 작용을 위한 DLL이 포함되어 있습니다. CRAN 저장소에서 패키지 등록을 완료하고 나면 다운로드 및 설치가 가능합니다.
패키지는 다음과 같은 특수 명령을 사용하여 설치할 수 있습니다.
데이터 요청과 관련된 다음 명령을 사용할 수 있습니다.
지원되는 명령 목록이 더 확장됩니다.
새로운 기능
CalendarCountryById — 식별자로 국가 설명을 가져옵니다.
CalendarEventById — 식별자로 이벤트 설명을 가져옵니다.
CalendarValueById — 식별자로 이벤트 값 설명을 가져옵니다.
CalendarEventByCountry — 해당 국가에서 사용 가능한 이벤트의 배열을 가져옵니다.
CalendarEventByCurrency — 영향을 받는 통화에 대해 사용 가능한 이벤트 배열을 가져옵니다.
CalendarValueHistoryByEvent — 이벤트 식별자별로 지정된 기간의 값 배열을 가져옵니다.
CalendarValueHistory — 국가 및/또는 통화별로 필터링된 모든 이벤트에 대해 지정된 기간의 값 배열을 가져옵니다.
CalendarValueLastByEvent — 식별자별로 마지막 이벤트 값의 배열을 가져옵니다. 이 기능은 이전 요청 이후에 나타난 값의 요청을 가능하게 합니다. 이 작업에는 입/출력 매개변수 "change_id"가 추가로 사용됩니다.
달력 데이터베이스가 변경될 때마다 "change_id" 속성(마지막 변경 식별자)이 업데이트됩니다. 데이터 요청 중에 "change_id"를 지정하면 터미널은 그 시간 이후에 발생한 이벤트와 다음 요청에 사용할 수 있는 현재 "change_id" 값을 반환합니다. 첫 번째 함수 호출 중에 "change_id"를 0으로 지정합니다. 함수는 이벤트를 반환하지 않지만 추가 요청에 대해 현재 "change_id"를 반환합니다.
CalendarValueLast — 국가 및/또는 통화별로 필터링된 모든 이벤트의 마지막 값 배열을 가져옵니다. 이 기능은 이전 요청 이후에 나타난 값의 요청을 가능하게 합니다. CalendarValueLastByEvent와 유사하게 "change_id" 속성이 요청에 사용됩니다.
새로운 구조
MqlCalendarCountry — 국가 설명.
MqlCalendarEvent — 이벤트 설명입니다.
MqlCalendarValue — 이벤트 값 설명.
새로운 열거
새로운 오류 코드
CharArrayToStruct 는 uchar 배열을 POD 구조에 복사합니다.
StructToCharArray 는 POD 구조를 uchar 배열에 복사합니다.
네트워크 기능을 사용하는 작업에 대해 새로운 오류 코드 가 추가되었습니다.
StringReserve는 지정된 크기의 문자열 메모리 버퍼를 예약합니다.
StringSetLength는 지정된 문자열 길이를 문자로 설정합니다.
ArrayRemove는 지정된 인덱스로 시작하는 지정된 수의 요소를 배열에서 제거합니다.
ArrayInsert는 지정된 인덱스부터 시작하여 소스 배열에서 지정된 수의 요소를 수신기 배열에 삽입합니다.
ArrayReverse는 지정된 인덱스로 시작하는 지정된 수의 요소를 배열에서 반전시킵니다.
사용자 정의 기호의 속성을 복사해야 하는 기호의 이름은 "symbol_origin" 매개변수에 지정됩니다.
이 기능을 사용하여 완료된 테스트는 성공한 것으로 간주됩니다. 함수 호출 후 테스트 중에 얻은 거래 내역과 모든 거래 통계가 터미널로 전달됩니다.
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MetaTrader R 패키지 - 요약
세르게이 골루베프 , 2019.02.22 06:47
주요 연구
기사
포럼
----------------
팔로우 더 ..
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
유용한 링크/스레드/도구
세르게이 골루베프 , 2017.10.05 12:33
MT5의 다중 통화 전문가 고문 - 백테스팅 및 최적화
스레드/게시물
기사
전략 테스터에서 다중 통화 EA를 실행하여 흥미로운 결과를 얻을 수도 있습니다. 예를 들어 CodeBase의 무료 Multicurrency Expert 가 사용되었습니다. 또한 "#include <DistributionOfProfits.mqh>" 파일을 지정하고 EA 헤더에 "CDistributionOfProfits ExtDistribution" 변수를 선언했으며 코드 끝에 "OnTester()" 함수를 추가했다. 단일 실행 후 "TestAnalysis.htm" 통계가 수신되었습니다.
Market Watch에서 선택한 모든 기호 에 대해 최적화
선적 서류 비치
.. 그리고 이것은 CodeBase의 코드 예입니다 -
----------------
Multicurrency iMA Trend - MetaTrader 5 전문가
The multi-symbol adviser uses the MA Trend 2 adviser as the base advisor, while the advisor itself is rewritten as a class.
이 Advisor는 첫 번째 버전의 클래스 형식이므로 현재로서는 기호("EURUSD", "USDCAD", "USDJPY")가 코드에 명시되어 있습니다. 또한 모든 입력 매개변수는 세 가지 기호(손절매, 이익실현 등) 각각에 대해 동일합니다.
좋은 글이 올라왔습니다 -
----------------
거래에서 상관관계의 실제 적용
상관 관계는 둘 이상의 무작위 변수(또는 어느 정도 허용 가능한 정확도로 무작위로 간주될 수 있는 양) 간의 통계적 관계입니다. 하나 이상의 변수가 변경되면 다른 관련 변수가 체계적으로 변경됩니다. 두 확률 변수의 상관 관계에 대한 수학적 측정은 상관 계수입니다. 한 랜덤 변수의 변경이 다른 랜덤 변수의 규칙적인 변경으로 이어지지 않고 이 랜덤 변수의 다른 통계적 특성의 변경으로 이어지는 경우 이러한 관계는 통계적이지만 상관 관계로 간주되지 않습니다.
목차
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
어디서부터 시작합니까?
세르게이 골루베프 , 2018.09.20 15:43
사용 팁 - HowTo에 대한 지침
=========
----------------
----------------
----------------
포럼에 하나의 스레드가 있습니다.
캔버스의 가능성 .
매우 유용한 스레드입니다.
그리고 이것은 이 스레드와 완전히 관련된 매우 흥미로운 도구 중 하나입니다.
----------------
각 막대의 선형 대수 방정식 시스템 - MetaTrader 5에 대한 표시
This work has 3 goals: