거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
라이브러리

EAX_Mysql - MySQL library - MetaTrader 5용 라이브러리

게시자:
Michael Schoen
조회수:
19
평가:
(42)
게시됨:
eax_mysql.mqh (29.79 KB) 조회
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

우연히 MQL5를 접하게 되어 MySQL 라이브러리를 가져와야 했습니다. 어떤 라이브러리든 예제를 통해 라이브러리를 어떻게 사용할 수 있는지 알 수 있기를 바랍니다. 어떤 라이브러리든 실제로 가장 중요한 것은 사용 방법 예제입니다.)

예제:

데이터 읽기

#include <EAX\EAX_Mysql.mqh>

EAX_Mysql *db = new EAX_Mysql();

db.connect("myhost.mydomain.com", "myusername", "mypassword", "mydatabase", "mytable");

int iResults = db.read_rows("SELECT password, COUNT(*) as Hits FROM users GROUP BY password");
for (int i=0; i < iResults; i++) {
   string password = (string) db.get("password",i);
   int    hits     = (int) db.get("Hits", i);
}


데이터 공급하기

#include <EAX\EAX_Mysql.mqh>

// 글로벌
EAX_Mysql *db = new EAX_Mysql();

void OnInit() {
    db.connect("myhost.mydomain.com", "myusername", "mypassword", "metatrader", "Ticks";
}

void OnTick() {
    MqlTick tick;
    SymbolInfoTick(_Symbol,tick);
    // 테이블 Ticks에 대한 새 데이터 집합 추가
    db.AddNew("Ticks");
    // 값으로 채우기...
    db.set("symbol", _Symbol);
    // MySQL이 숫자를 변환할 수 있는 경우 숫자를 숫자로 DB 필드로 보낼 수 있습니다.
    db.set("ask", tick.ask);
    db.set("bid", tick.bid);
    db.set("last", tick.last);
    db.set("time", TimeToString(tick.time,TIME_DATE) + " " + TimeToString(tick.time,TIME_SECONDS));
    db.set("volume", tick.volume);
    db.write();

}

void OnDeinit() {
   // 메모리 정리
   delete db;
}


데이터와 상호 작용하기

EAX_Mysql *db = new EAX_Mysql();

db.connect("myhost.mydomain.com", "myusername", "mypassword", "metatrader", "mytable")

(올바른 기본 키를 식별하는 데 필요함) // 테이블 AgentsOnline을 선택합니다.
db.select("AgentsOnline");
// 기본 키 5로 데이터 세트 읽기
db.read("5");
// 열을 수정합니다,
db.set("lastupdate", (string) TimeLocal());
// 다시 쓰기
db.write();

설치하기:

  • MQL5 데이터 디렉토리(MQL5)를 확인합니다.
  • 메타트레이더 환경(32 또는 64비트)에 맞는 커넥터/C(libmysql )를 다운로드하고 libymsql.dll을 "MQL5\Libraries"에 넣습니다.
  • 포함 아래에 EAX 폴더를 만듭니다.
  • "MQL5\Include\EAX"에 EAX_Mysql.mqh를 넣습니다.

문제:

  • 내부적으로 공유 연결 포인터를 사용하기 때문에 라이브러리가 한 번에 하나 이상의 DB 연결을 처리할 수 없습니다(연결 풀링을 추가/마이그레이션할 필요가 없었습니다).
  • 실제 오류(mysql) 처리, DB 연결 끊김 없음.
  • DB에 대한 오류 처리/재연결 없음(=> DB 풀링).
  • 여러 열 기본 키를 지원하지 않습니다.
  • 아직 베타 버전 - 베타/테스트를 원하시면 이메일을 보내주세요.
  • 데이터 유형이 처리되지 않음(내부적으로 문자열만 처리됨) 코드/데이터베이스에 있어야 합니다.
  • 데이터베이스 통신은 ISO입니다 - 포인터/ 문자열 연산을 UTF-8에 맞게 조정하기에는 너무 느립니다.

크레딧:

  • http://mqlmagazine.com/mql-programming/mql5-connecting-to-mysql/
  • https://www.mql5.com/ko/articles/364

MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/855

ExtObjects ExtObjects

객체 속성을 읽고 쓰는 전용 함수입니다.

Candle ZigZag Candle ZigZag

캔들 지그재그는 캔들 스틱 색상이 변하면 다리가 바뀌는 인디케이터입니다.

지오쇼오픈데이레벨 지오쇼오픈데이레벨

모든 TF에서 그날의 오픈 레벨을 표시하는 표시기

iMy iMy

그래픽 표현에서 차트 분석은 캔들 오른쪽에 있는 추세선(녹색)을 나타냅니다. 분석 이후에는 빨간색 선을 따라 움직인다고 가정합니다.