장점 정리???? - 페이지 4

 
Vladimir Mikhailov # :

아니요, 그렇게 아름답지는 않습니다. 속도를 위해 모든 것이 최소한입니다.


좋은 생각이 들었습니다.

MT5는 거래 명령을 실행하여 많은 죄를 지었고,

그래서 나는 내 자신의 터미널(장식 없음)을 만들고 싶었습니다.

터미널은 DLL-로봇을 연결하기로 되어 있었는데 끝내지 못하고 시간이 없다.

그리고 자격은 동일하지 않습니다.

 
브로커에게 사과드립니다. 내가 가지고 있던 창에 있는 막대의 역사가 작고 매일 바뀌었기 때문에 결과적으로 이러한 잼이 있는 것으로 나타났습니다. 이제 모든 것을 수정하고 새 모델을 다시 만들었습니다. 월요일에 모델이 어떻게 작동하는지 볼 수 있습니다 !!!!!
 
Vladimir Mikhailov # :

아니요, 그렇게 아름답지는 않습니다. 속도를 위해 모든 것이 최소한입니다.


불행히도 재미도 없다

 
Vladimir Mikhailov # :

아니요, 그렇게 아름답지는 않습니다. 속도를 위해 모든 것이 최소한입니다.


일반적으로 10,000 루블의 진드기를 모으는 것이 합리적입니다. 달마다?

 
prostotrader # :

일반적으로 10,000 루블의 진드기를 모으는 것이 합리적입니다. 달마다?

시세 수집은 보조 기능이며 기본 기능은 거래입니다.
데이터가 수집되는 방식을 알고 볼 때 데이터에 대한 신뢰가 더 높아집니다.
또한 직접 연결되는 타사 소프트웨어 형태의 최소한의 중개자가 있습니다.

MT5 히스토리에서 거래 알고리즘을 테스트할 때 결과는 하늘을 나는 손가락과 같습니다.
수집된 이력에 대한 자체 테스터는 좋은 결과를 보여주며 모든 거래는 실제 거래의 두 번째 거래와 정확히 일치합니다.

내 거래 알고리즘은 일중 거래를 위해 설계되었으며 들어오는 데이터에 매우 민감합니다.
그러나 장기간 거래를 하면 직접 연결이 필요하지 않고 히스토리에 대한 요구 사항이 그렇게 중요하지 않을 수 있습니다.
 
Vladimir Mikhailov # :

시세 수집은 보조 기능이며 기본 기능은 거래입니다.
데이터가 수집되는 방식을 알고 볼 때 데이터에 대한 신뢰가 더 높아집니다.
또한 직접 연결되는 타사 소프트웨어 형태의 최소한의 중개자가 있습니다.

MT5 히스토리에서 거래 알고리즘을 테스트할 때 결과는 하늘을 나는 손가락과 같습니다.
수집된 이력에 대한 자체 테스터는 좋은 결과를 보여주며 모든 거래는 실제 거래의 두 번째 거래와 정확히 일치합니다.

내 거래 알고리즘은 일중 거래를 위해 설계되었으며 들어오는 데이터에 매우 민감합니다.
그러나 장기간 거래를 하면 직접 연결이 필요하지 않고 히스토리에 대한 요구 사항이 그렇게 중요하지 않을 수 있습니다.

하나의 악기를 거래합니까?

추가됨

게시한 스크린샷으로 판단하면 이는 QUIK에서도 잘 작동하는 Classic Arbitrage(GAZR-12.21 vs GAZP)와 매우 유사합니다.

 
prostotrader # :

하나의 악기를 거래합니까?

추가됨

게시한 스크린샷으로 판단하면 이는 QUIK에서도 잘 작동하는 Classic Arbitrage(GAZR-12.21 vs GAZP)와 매우 유사합니다.

나는 하나 이상의 상품을 거래합니다. 예, 이 알고리즘은 고전적인 차익 거래를 기반으로 합니다.

 
Vladimir Mikhailov # :

나는 하나 이상의 상품을 거래합니다. 예, 이 알고리즘은 고전적인 차익 거래를 기반으로 합니다.

나는 스피드 트레이딩을 하는 단 하나의 이유를 봅니다 - 밀도에서 징징으로 트레이딩,

다른 경우에는 속도가 필요하지 않습니다.

그러나 이 경우에는 분석이 전혀 필요하지 않습니다.

그러나 당신은 볼 수 있습니다 ...

추가됨

내 기억이 맞다면 CGate에서 주식 시세를 받아들일 수 있지만 여기에서는

주문을 보낼 수 없습니다.

당신이 "현명한"것 ...

 
prostotrader # :

나는 스피드 트레이딩을 하는 단 하나의 이유를 본다 - 밀도에서 징징으로 트레이딩,

다른 경우에는 속도가 필요하지 않습니다.

그러나 이 경우에는 분석이 전혀 필요하지 않습니다.

그러나 당신은 볼 수 있습니다 ...

추가됨

내 기억이 맞다면 CGate에서 주식 시세를 받아들일 수 있지만 여기에서는

주문을 보낼 수 없습니다.

당신은 "현명한"무엇입니까 ...

맞습니다, 거래는 단 하나의 수단으로 이루어집니다.
알고리즘은 차익 거래를 기반으로 하지만 선물 거래만 가능합니다.

 
Vladimir Mikhailov # :

그렇습니다. 거래는 하나의 도구에서만 수행됩니다.
알고리즘은 차익 거래를 기반으로 하지만 선물 거래만 가능합니다.

MT5가 따옴표를 올바르게 전송하고 있는지 의심하게 만들었습니다.

GAZR-12.21에 대한 진드기를 수집하고 있으므로 2021년 10월 15일 금요일에 대한 파일을 제공할 수 있습니까?

차이점이 있는지 확인하고 싶습니다.

약 5년 전에 KVIK와 비교했는데, 차이가 없었습니다.

추가됨

자신을 비교할 수 있습니다

//+------------------------------------------------------------------+
//|                                                      G_ticks.mq5 |
//|                                     Copyright 2021, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, prostotrader"
#property link      " https://www.mql5.com "
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
  MqlTick g_ticks[];
  string t_date;
  string t_time;
  string c_flags;
  int result = CopyTicksRange(Symbol(), g_ticks, COPY_TICKS_ALL, ulong(D'15.10.2021 07:00:00') * 1000, ulong(D'15.10.2021 23:50:00') * 1000);
  if(result > 0)
  {
    int f_handle=FileOpen("g_ticks.csv",FILE_WRITE|FILE_CSV); 
    if(f_handle!=INVALID_HANDLE)
    {
      FileWrite(f_handle,"Иструмент:", Symbol());
      FileWrite(f_handle,"Всего записей:", string(result));
      FileWrite(f_handle, "Номер", "Дата", "Время", "Флаги", "Цена(Last)", "Объем", "Предложение", "Спрос");
      for(int i=0;i<result;i++)
      {
        t_date = TimeToString(g_ticks[i].time, TIME_DATE);
        t_time = TimeToString(g_ticks[i].time, TIME_SECONDS) + "." + string( ulong(g_ticks[i].time_msc) - ulong(g_ticks[i].time)*1000);
        c_flags = "";
        if((g_ticks[i].flags&TICK_FLAG_BID) == TICK_FLAG_BID) c_flags += " TICK_FLAG_BID,"; 
        if((g_ticks[i].flags&TICK_FLAG_ASK) == TICK_FLAG_ASK) c_flags += " TICK_FLAG_ASK,";
        if((g_ticks[i].flags&TICK_FLAG_LAST) == TICK_FLAG_LAST) c_flags += " TICK_FLAG_LAST, ";
        if((g_ticks[i].flags&TICK_FLAG_VOLUME) == TICK_FLAG_VOLUME) c_flags += " TICK_FLAG_VOLUME,";
        if((g_ticks[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) c_flags += " TICK_FLAG_BUY.";
        if((g_ticks[i].flags&TICK_FLAG_SELL) == TICK_FLAG_SELL) c_flags += " TICK_FLAG_SELL,";
        int f_len = StringLen(c_flags);
        if(f_len > 1)
        {
          StringSetCharacter(c_flags, f_len - 1, ushort(" "));
          StringTrimRight(c_flags);          
        }
        if(c_flags == "")
        {
          FileWrite(f_handle, string(i + 1), t_date, t_time, string(g_ticks[i].flags), DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                      DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits()));
        }
        else FileWrite(f_handle, string(i + 1), t_date, t_time, c_flags, DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                      DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits())); 
      }
      FileClose(f_handle);
    }  
  }
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }

//+------------------------------------------------------------------+

추가됨

그리고 아마도 다른 프로그램은 하나의 플래그가 아니라 여러 개의 틱을 어떻게든 분리합니다.


파일:
1_g_ticks.zip  781 kb