거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Telegram에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
조회수:
18
평가:
(29)
게시됨:
\MQL5\Include\ \MQL5\Experts\
ebitpictest.mq5 (16.79 KB) 조회
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

픽셀 그리기를 위한 CBitPic 그래픽 제어 클래스가 포함된 IncGUI_BitPic.mqh 플러그인 파일입니다(그림 1).


그림 1. CBitPic 클래스를 사용한 그리기 예시.

다양한 크기의 점 - DrawDot(), 좌표별 선 - DrawLine(), 각도별 선 - DrawLineByAngle(), 화살표 - DrawArrow(), 직사각형 - DrawRectangle(), 삼각형 - DrawTriangle(), 원, 타원, 원, 섹터 - DrawCircle() 등 다양한 도형을 그릴 수 있습니다. 타원은 지정된 각도만큼 회전할 수 있습니다(타원 고리, 타원 섹터도 마찬가지입니다). 도형은 채우기 또는 윤곽선으로만 그릴 수 있습니다. 텍스트 인쇄가 가능합니다 - TypeText()(여러 글꼴 및 크기 옵션). 생성된 이미지는 bmp 파일에 저장할 수 있습니다 - SavePicture(), 파일에서 준비된 bmp 이미지를 로드할 수 있습니다 - LoadPicture()(파일은 압축되지 않은 24비트 또는 32비트여야 합니다).

컨트롤을 사용하려면 IncGUI_BitPic.mqh 파일을 연결해야 합니다:

#include <IncGUI_BitPic.mqh>

그런 다음, 예를 들어 p라는 이름의 클래스를 선언합니다:

CBitPic p;

이 클래스는 문서에 설명된 원칙을 사용하여 만들어집니다:

따라서 적용 원리는 기사에서 설명한 컨트롤 사용 원리와 유사합니다. 먼저 Init () 초기화 메서드가 호출되고 Show () 메서드가 가시성을 활성화하는 데 사용되며 Hide () 메서드는 작업 완료 후 숨기고 삭제하는 데 사용됩니다.

cIntBMP 클래스와는 달리 그림 그리기는 다소 다르게 수행되며, cIntBMP에서는 그림 그리기 함수에서 그림 색상이 지정되었지만 여기서는 다음과 같은 순서로 그림 그리기가 수행됩니다: 배경색 지정 - SetBGColor(), 지우기 수행 - Clear(), 그리기 전에 그리기 두께 설정 - SetDrawWidth(), 그리기 색상 SetDrawColor(), 채우기 - SetFillColor(), 채우기 필요 여부 - SetFilled() 또는 그리기 함수가 호출된 후 윤곽선으로만 그리기가 수행됩니다. 물론 필요에 따라 그리기, 채우기 등의 색상을 변경할 수 있습니다. 그리기 후에는 다시 그리기() 메서드를 호출해야 합니다.

다음 표는 클래스의 모든 메서드를 보여줍니다:

메서드
목적 및 매개변수
void Clear()지웁니다.
void DrawArrow(
int aX1,
int aY1,
int aX2,
int aY2,
bool aBoth=false
)
화살표를 그립니다. aX1, aY1 - 시작 좌표, aX2, aY2 - 끝 좌표, aBoth - 양쪽 끝의 화살표.
void DrawCircle(
int aX,
int aY,
int aR,
double aR2K=0,
double aFromAngle=0,
double aToAngle=0,
double aRatio=1,
double aRotateAngle=0
)
원, 원, 타원, 섹터를 그립니다. aX, aY - 중심 좌표, aR2K - 내부 원의 반지름(0에서 1까지), aFromAngle, aToAngle - 섹터의 초기 및 최종 각도, aRatio - 압축 계수(양수, 1 미만 - 수직 압축, 1 이상 - 수직 확장), aRotateAngle - 회전 각도입니다.
void DrawDot(
int aX,
int aY
)
점을 그립니다. aX, aY - 좌표.
void DrawLine(
int aX1,
int aY1,
int aX2,
int aY2
)
선 그리기. aX1, aY1 - 시작 좌표, aX2, aY2 - 끝 좌표.
void DrawLineByAngle(
int aX1,
int aY1 ,
double aAngle,
int aLength
)
각도로 선을 그립니다. aX1, aY1 - 시작의 좌표, aAngle - 각도, aLength - 길이.
void DrawRectangle(
int aX1,
int aY1,
int aX2,
int aY2
)
aX1, aY1 - 좌측 상단 모서리 좌표, aX2, aY2 - 우측 하단 모서리 좌표로 직사각형을 그립니다.
void DrawTriangle(
int aX1,
int aY1,
int aX2,
int aY2,
int aX3,
int aY3
)
aX1, aY1, aX2, aY2, aX3, aY3 - 꼭지점의 좌표입니다.
int Event(
const int id,
const long & lparam,
const double & dparam,
const 문자열 & sparam
)
이벤트 핸들러. OnChartEvent() 함수에서 호출됩니다.
int EventX()그래픽 객체를 마지막으로 클릭한 X 좌표입니다.
int EventY()그래픽 객체를 마지막으로 클릭한 Y 좌표입니다.
void Fill(
int aX,
int aY
)
한 색의 영역을 채우기 색으로 채웁니다. aX, aY - 좌표입니다.
void GetData(
uint & aData[])
)
이미지 데이터의 배열을 가져옵니다. aData - 데이터가 반환되는 배열입니다.
GetPixel(
int aX,
int aY
)
지정된 좌표로 픽셀의 색을 가져옵니다. aX, aY - 좌표.
int Height()그래픽 객체의 높이를 취득합니다.
void Hide()차트에서 그래픽 객체를 삭제합니다.
void Init(
string aName="CBitPic",
int aWidth=300,
int aHeight=200
)
초기화. aName - 그래픽 객체의 이름, aWidth - 너비, aHeight - 높이.
int Left()그래픽 객체의 왼쪽 가장자리의 좌표를 가져옵니다.
bool LoadPicture(
string aFileName,
bool aFileCommon=false
)
aFileName - 파일 이름, aFileCommon - 파일이 일반 MQL5/Files 폴더 또는 터미널의 MQL5/Files 폴더에 있습니다. 압축되지 않은 24비트 및 32비트 파일이 허용됩니다.
void Redraw()그래픽 객체를 다시 그립니다.
void Refresh()새로 고침 (삭제 및 생성) 합니다.
bool SavePicture(
문자열 aFileName,
bool aFileCommon=false
)
그림을 bmp 파일로 저장합니다. aFileName - 파일 이름, aFileCommon - 일반 MQL5/Files 폴더 또는 터미널의 MQL5/Files 폴더에 저장합니다.
void SetBGColor(
uchar aR=0,
uchar aG=0,
uchar aB=255
)
배경색을 설정합니다. aR, aG, aB - 컬러 컴포넌트의 값입니다.
void SetBGColor(
aColor=clrBlue
)
배경색 설정. aColor - 색상. 색상을 설정한 후 Clear() 메서드를 호출해야 합니다.
void SetData(
uint & aData[] )
)
이미지 데이터 배열을 설정합니다. aData - 데이터 배열.
void SetDrawColor(
uchar aR=255,
uchar aG=255,
uchar aB=0)
그리기 색을 설정합니다. aR, aG, aB - 색상 구성 요소의 값입니다.
void SetDrawColor(
aColor=clrYellow
)
그리기 색을 설정합니다. aColor - 색입니다.
void SetDrawWidth(
int aWidth
)
그리기 두께를 설정합니다. aWidth - 1에서 5 사이의 두께입니다.
void SetFillColour(
uchar aR=255,
uchar aG=0,
uchar aB=0
)
채우기 색을 설정합니다. aR, aG, aB - 색 구성 요소의 값입니다.
void SetFillColor(
color aColor=clrRed
)
채우기 색을 설정합니다. aColor - 색입니다.
void SetFilled(
bool aFilled=true
)
채우기 모드 설정. aFilled - 채우기 유무.
void SetFont(
int aType=3
)
글꼴을 설정합니다. aType - 유형 (0-6). 0 - 작은 글꼴 6, 1 - 작은 글꼴 7, 2 - 작은 글꼴 8, 3 - Arial 8, 4 - Arial Narrow 8, 5 - Arial Black 8, 6 - Courier New 8.
void SetPos(
int aLeft,
int aTop
)
그래픽 객체의 왼쪽 상단 모서리의 좌표를 설정합니다. aLeft - 왼쪽 가장자리로부터의 거리, aTop - 위쪽 가장자리로부터의 거리입니다.
void SetPosLeft(
int aLeft
)
그래픽 객체의 왼쪽 가장자리의 좌표를 설정합니다. aLeft - 왼쪽 가장자리로부터의 거리입니다.
void SetPosTop(
int aTop
)
그래픽 객체의 위쪽 가장자리의 좌표를 설정합니다. aTop - 상단 가장자리로부터의 거리입니다.
void SetSize(
int aWidth,
int aHeight
)
크기를 설정합니다. aWidth - 너비, aHeight - 높이.
void SetSubWindow(
int aNumber
)
서브 윈도우를 숫자로 설정합니다. aNumber - 서브 윈도우 번호.
void SetSubWindow(
문자열 aName
)
이름으로 서브 윈도우를 설정합니다. aName - 서브 윈도우 이름.
void SetTag(
문자열 aValue
)
태그를 설정합니다. aValue - 텍스트입니다.
void Show()그래픽 객체의 가시성을 활성화합니다.
void Show(
int aLeft,
int aTop
)
지정된 위치에서 그래픽 객체의 가시성을 활성화합니다. aLeft - 왼쪽 가장자리로부터의 거리, aTop - 상단 가장자리로부터의 거리.
문자열 Tag()태그를 가져옵니다.
int Top()그래픽 객체의 상단 가장자리의 좌표를 취득합니다.
void TypeText(
int aX,
int aY,
string aText,
int aDirection=0,
int aAlign=0
)
aX, aY - 좌표, aText - 텍스트, aDirection - 방향(0 - 왼쪽에서 오른쪽, 1 - 위에서 아래로, 2 - 오른쪽에서 왼쪽으로 반전, 3 - 아래에서 위로), aAligne - 정렬(0 - 텍스트의 시작, 1 - 텍스트의 끝) 텍스트를 인쇄합니다.
bool Visible()그래픽 객체의 가시성을 취득합니다.
int Width()그래픽 객체의 너비를 취득합니다.


CBitPic 클래스를 사용하는 eBitPicTest.mq5 예제에서 Expert Advisor는 그림 1과 같이 차트에 이미지를 그려서 CBitPic.bmp라는 파일에 저장합니다(터미널 데이터 폴더의 MQL5/Files 폴더에 나타나야 함). 이미지를 클릭하면 점의 좌표와 색상이 차트 주석에 표시되고 같은 위치에 "눈송이"가 그려집니다(그림 1의 오른쪽 상단 모서리와 같이).

MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/1050

ColorRVI_HTF ColorRVI_HTF

차트 주기를 차트 주기와 다른 값으로 고정하고 구름 형태로 만들어 배치할 수 있는 클래식 버전의 RVI(상대적 활력 지수) 인디케이터입니다.

Session Daylight Gradient — Ambient Forex Session Overlay Session Daylight Gradient — Ambient Forex Session Overlay

A lightweight chart overlay that paints a smooth “daylight” gradient across Pacific, Asia, London, and New York sessions—plus optional session separators, event labels, and “sunray” highlights for scheduled news. Includes UTC/Broker/PC time modes and a manual DST shift.

ColorXATR ColorXATR

평활화된 ATR은 추세의 성장 또는 약화 여부를 색상으로 표시합니다.

DCC / Piercing DCC / Piercing

DCC / 피어싱