당사 팬 페이지에 가입하십시오
- 조회수:
- 16
- 평가:
- 게시됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
이 라이브러리는 크기 대비 성능(읽기/쓰기)이 좋은 틱 스토리지 포맷으로 작업을 구현합니다.
형식:
원본 MqlTick의다음 필드만 저장됩니다:
struct MqlTick { datetime time; // 마지막 가격 업데이트 시간 double bid; // 현재 가격 입찰 double ask; // 현재 요청 가격 double last; // 마지막 거래의 현재 가격(마지막) ulong volume; // 현재 가격의 볼륨 마지막 long time_msc; // 마지막 가격 업데이트 시간(밀리초) uint flags; // 틱 플래그 double volume_real; // 정확도가 향상된 현재 가격의 볼륨 지속 };
예.
메타에디터에서 단축키 ALT+M으로 라이브러리 메서드를 볼 수 있습니다. 다음은 몇 가지 사용 예입니다.
파일을 통해 쓰기/읽기.
#property script_show_inputs input datetime inFrom = D'2024.12.01'; #include <fxsaber\TicksShort\TicksShort.mqh> // 짧은 틱 저장 형식. void OnStart() { MqlTick Ticks[]; // 소스 틱의 경우. if (CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL,(ulong)inFrom * 1000) > 0) { FileSave("Ticks.bin", Ticks); // 파일 크기를 비교할 수 있도록 일반 틱을 저장했습니다. TICKS_SHORT::Save("TicksShort.bin", Ticks); // 틱을 압축된 형식으로 저장합니다. MqlTick Ticks2[]; // 진드기가 뭉개진 경우. TICKS_SHORT::Load("TicksShort.bin", Ticks2); // 압축된 형식의 틱을 다운로드했습니다. Print("Ratio = " + DoubleToString((double)FileGetInteger("Ticks.bin", FILE_SIZE) / FileGetInteger("TicksShort.bin", FILE_SIZE), 3)); Print("Correct = " + (string)TICKS_SHORT::IsEqual(Ticks, Ticks2)); // 비교. } }
위의 스크립트는 틱을 새 형식의 파일에 저장하고 파일에서 로드합니다.
결과.
TicksShort_SaveLoad (EURUSD,M1) Ratio = 10.000 TicksShort_SaveLoad (EURUSD,M1) Correct = true
로그에 대한 출력은 압축률이 10배라는 것을 보여줍니다. 압축을 해제하면 틱이 원본과 일치합니다.
성능.
#property script_show_inputs input datetime inFrom = D'2024.12.01'; #include <fxsaber\TicksShort\TicksShort.mqh> // 짧은 틱 저장 형식. // 배열의 크기를 바이트 단위로 반환합니다. template <typename T> ulong GetSize( const T &Array[] ) { return((ulong)sizeof(T) * ArraySize(Array)); } // 압축 포맷 성능 기준. template <typename T1, typename T2> double Criterion( const T1 &Decompression[], const T2 &Compression[], const ulong Interval ) { const double Performance = (double)ArraySize(Decompression) / Interval; return(Performance * ((double)GetSize(Decompression) / GetSize(Compression))); } void OnStart() { MqlTick Ticks[]; // 소스 틱의 경우. if (CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL,(ulong)inFrom * 1000) > 0) { TICK_SHORT Ticks2[]; // 압축된 틱의 경우. ulong Interval = GetMicrosecondCount(); TICKS_SHORT::Compress(Ticks, Ticks2); // 압착. Interval = GetMicrosecondCount() - Interval; const double Performance = (double)ArraySize(Ticks) / Interval; Print("Compress performance: " + DoubleToString(Performance, 1) + " Ticks (millions)/sec."); Print("Compress performance criterion: " + DoubleToString(Criterion(Ticks, Ticks2, Interval), 1)); MqlTick Ticks3[]; // 진드기가 뭉개진 경우. ulong Interval2 = GetMicrosecondCount(); TICKS_SHORT::Decompress(Ticks2, Ticks3); // 언클렌치. Interval2 = GetMicrosecondCount() - Interval2; const double Performance2 = (double)ArraySize(Ticks3) / Interval2; Print("Decompress performance: " + DoubleToString((double)ArraySize(Ticks3) / Interval2, 1) + " Ticks (millions)/sec."); Print("Decompress performance criterion: " + DoubleToString(Criterion(Ticks3, Ticks2, Interval2), 1)); Print("Correct = " + (string)TICKS_SHORT::IsEqual(Ticks, Ticks3)); // 비교. } }
이 스크립트는 소스 틱 배열을 압축된 배열로 변환한 후 다시 변환합니다. 성능/효율 데이터가 출력됩니다.
결과.
TicksShort_Performance (EURUSD,M1) Compress performance: 67.7 Ticks (millions)/sec. TicksShort_Performance (EURUSD,M1) Compress performance criterion: 677.1 TicksShort_Performance (EURUSD,M1) Decompress performance: 42.1 Ticks (millions)/sec. TicksShort_Performance (EURUSD,M1) Decompress performance criterion: 420.9 TicksShort_Performance (EURUSD,M1) Correct = true
초당 4천만 틱 이상의 속도로 원본 정보를 보존하면서 쓰기 및 읽기가 수행됩니다.
대안.
MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/61126

자동 TP 및 SL 설정: "자동 TP 및 SL 설정"(이익실현 및 손절매) 기능은 모든 트레이딩 전략에서 중요한 도구로, 위험 및 보상 관리를 자동화하도록 설계되었습니다. 이 기능을 사용하면 수익 확보(TP) 또는 손실 제한(SL)을 위해 거래를 자동으로 청산해야 하는 고정 가격 수준을 정의할 수 있으므로 지속적인 수동 모니터링이 필요 없습니다. 이 기능을 활성화하면 특정 핍 수, 잔고 비율 또는 기술 수준 등 사용자 지정 매개변수에 따라 각 포지션에 사전 정의된 이익실현 및 손절매 수준이 자동으로 포함됩니다. 이렇게 하면 시간을 절약할 수 있을 뿐만 아니라 갑작스러운 시장 움직임과 감정적인 의사결정으로부터 트레이딩을 보호할 수 있습니다.

The Value Area Retracement indicator, is a powerful volume profile-based tool designed to identify key trading levels—Point of Control (POC), Value Area High (VAH), Value Area Low (VAL), and Profile High/Low—across different timeframes. It helps traders spot potential retracement opportunities to the POC, breakout zones, and value areas, making it useful for intraday, swing, and position trading.