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

TicksShort - MetaTrader 5용 라이브러리

fxsaber
fxsaber
Посты по улучшениям: https://www.mql5.com/ru/search#!keyword=uluchshenie&amp%3Bauthor=fxsaber&amp%3Bmethod=2&method=2 Посты по ошибкам: https://www.mql5.com/ru/search#!keyword=oshibka&amp%3Bauthor=fxsaber&amp%3Bmethod=2&method=2 Blog
| Korean English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
조회수:
223
평가:
(8)
게시됨:
업데이트됨:
\MQL5\Include\fxsaber\TicksShort\
Table.mqh (50 KB) 조회
TickShort.mqh (3.19 KB) 조회
\MQL5\Scripts\fxsaber\
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

이 라이브러리는 크기 대비 성능(읽기/쓰기)이 좋은 틱 스토리지 포맷으로 작업을 구현합니다.


형식:

원본 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천만 틱 이상의 속도로 원본 정보를 보존하면서 쓰기 및 읽기가 수행됩니다.


대안.

https://www.mql5.com/en/code/30791

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

T3 지표를 기반으로 한 트레이딩 신호 모듈 T3 지표를 기반으로 한 트레이딩 신호 모듈

포지션을 개설하는 신호는 가격이 T3 지표선을 교차할 때 발생합니다.

T3 T3

가격 데이터열에 다중 지수 평활화를 적용한 T3 이동평균.

Auto Tp Auto Tp

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

Fibonacci retracement Fibonacci retracement

이 지표는 사용자가 지정한 바 수에 대해 피보나치 되돌림 수준을 그래프로 표시합니다.