"Opening"에서 MetaTrader 5를 사용한 경험 - 페이지 16

 
또 다른 질문, 이것은 어떤 빌드입니까? 803?
 

빌드 803. 실제 계정 10267.

제가 알기론 질문이 너무 많아서 'nj'는 저만 관찰하는건가요?

불과 3~4주 전만 해도 테스터는 확산 측면에서 조금 더 정확했다. 하지만 행동 면에서...

문제는 다음과 같습니다. 거의 모든 양초가 20틱 안에 형성되었습니다. 그런 다음 50-100 틱 또는 극단적으로 가격이 10 포인트 위/아래로 또는 종가 근처에서 뛰어 넘습니다. 그리고 이 심장박동은 스캘퍼를 최적화한 테스터가 쉽게 찾았습니다.

일반적으로 테스터는 스캘핑/피핑 전략에 전혀 적합하지 않습니다.

틱 테스터의 느림은 다 이해합니다만.. 교환의 경우, 제 생각에는 테스터 없이는 할 수 없습니다

 
dimeon :
그러나 그것을 하는 방법?

차트를 엽니다. 데이터 창을 엽니다. 그래프를 스크롤하여 원하는 시점으로 이동합니다. 차트 위로 마우스를 이동하고 데이터 창에서 스프레드 값을 봅니다.

나는 이미 보았다. 많은 수의 막대에서 - 제로 스프레드. 즉, 데이터가 불완전합니다. 스프레드가 0이면 0이 아닌 마지막 값이 사용됩니다.

Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
Документация по MQL5: Доступ к таймсериям и индикаторам / Bars
  • www.mql5.com
Доступ к таймсериям и индикаторам / Bars - Документация по MQL5
 
테스터에서는 상황이 다릅니다. 시각화 도우미는 하루 중 전반기에 스프레드가 규모에서 벗어나고 점심 식사 후에는 평균 20-50포인트이며 저녁 세션에서는 다시 규모를 벗어남을 보여줍니다.
 

테스터에 무슨 일이 일어나고 있는지 사진으로 설명하겠습니다.

테스터는 스프레드를 테스트하고 분석하기 전에 최소한 전년도의 과거 데이터를 다운로드합니다. 테스트가 2013.01.01부터 시작되면 2012년의 마지막 0이 아닌 스프레드는 2012.12.10 10:09에 고정되었으며 2990 포인트였습니다.


0이 아닌 다음 스프레드는 2013.03.15 18:49에 1190으로 고정되었습니다.


이 시간 사이의 스프레드는 0입니다. 즉, 2013년 1월 1일부터 3월 15일 저녁까지 2990년의 마지막 알려진 스프레드(내가 "0이 아닌 마지막 값"이라고 부름)가 사용되었습니다. 마지막으로 0이 아닌 값은 1190입니다.

이후 다시 0의 스프레드 값이 나오므로 1190 값을 사용하였습니다.2013.03.18 18:46까지


3분 더


추가 0 값은 연초보다 훨씬 작아졌습니다. 그럼에도 불구하고 일련의 0은 남아있었습니다.

이것은 일련의 동일한 스프레드를 설명합니다.

상황이 좋지 않으므로 처리하겠습니다. 테스터의 스프레드는 적절할 것입니다.

 

브로커가 상세한 스프레드를 기록으로 가져 오지 않은 경우에도 스프레드를 처리하고 올바르게 설정합니다.

이렇게 하면 정상적으로 테스트할 수 있습니다.

 
stringo :

테스터가 무슨 일이 일어나고 있는지 사진으로 설명하겠습니다.

테스터는 스프레드를 테스트하고 분석하기 전에 최소한 전년도의 과거 데이터를 다운로드합니다. 테스트가 2013.01.01부터 시작되면 2012년의 마지막 0이 아닌 스프레드는 2012.12.10 10:09에 고정되었으며 2990 포인트였습니다.


0이 아닌 다음 스프레드는 2013.03.15 18:49에 1190으로 수정되었습니다.


이 시간 사이의 스프레드는 0입니다. 즉, 2013년 1월 1일부터 3월 15일 저녁까지 2990년의 마지막 알려진 스프레드(내가 "0이 아닌 마지막 값"이라고 부름)가 사용되었습니다. 마지막으로 0이 아닌 값은 1190입니다.

이후 다시 0의 스프레드 값이 나오므로 1190 값을 사용하였습니다.2013.03.18 18:46까지


3분 더


추가 0 값은 연초보다 훨씬 작아졌습니다. 그럼에도 불구하고 일련의 0은 남아있었습니다.

이것은 일련의 동일한 스프레드를 설명합니다.

상황이 좋지 않으므로 처리하겠습니다. 테스터의 스프레드가 적절할 것입니다.

모두가 3월에 거래했기 때문에 연초부터 선물을 테스트하는 것은 의미가 없습니다.

제 생각에는 올바른 반올림으로 평균 스프레드를 어떻게든 계산하는 것이 더 현명할 것입니다.

테스터용 볼륨도 줄여주세요. 대부분의 진드기는 실제로 가격이 전혀 움직이지 않을 때 발생합니다. 테스터에서 가격은 극한에 여러 번 부딪히며 이는 부적절한 테스트에 표시됩니다. 예, 최적화 시간이 단축됩니다 ...

 

1. a) 접착된 선물에 관해서... 나는 정말로 이해하지 못했지만 내 생각에 테스터는 그것들과 작동하지 않습니다(단일 거래가 아니라 터미널에 있는 표준 Expert Advisors를 테스트하려고 했습니다).

b) 주요 블루칩의 결합된 선물은 BCS의 MT5에 이미 나타났습니다. 뒤쳐지지 마십시오.

c) 테스터에서 스프레드를 수동으로 설정할 수 있으면 좋을 것이고 전략을 최적화하는 것이 훨씬 쉬울 것입니다.

 

2. a) 테이프의 경우.. 퀵(물론 연결과 분리가 가능한 도구로) 처럼 트레이드 테이블의 형태로 가지고 있으면 나쁘지 않을 것입니다. 퀵에서와 같이 테이블에 필터를 설정하려면(예를 들어, 100로티의 거래량이 통과할 때 매수 또는 매도 방식으로 대량 거래만 보고 싶습니다.) ... 반복합니다. 필요한.

b) 그러나 결과 MqlTick 구조 (SymbolInfoTick(_Symbol,latest_price) 형식)에 거래가 입찰 또는 요청에 의해 진행되는 방식에 대한 매개변수를 추가하는 것이 필요하다고 생각합니다. 별도의 시장 정보 요청 시 이 정보는 거래소에서 전송되며 광산을 비롯한 많은 로봇에 필요합니다. 거래가 구매인지 판매인지 계산하는 것은 현실적이지 않습니다 ... 왜냐하면. 시장을 직접 움직이지 않는 대량의 장외 거래 및 기타 많은 뉘앙스가 있습니다 ... 이 매개 변수를 구조에 추가하는 것이 개발자에게는 어렵지 않을 것이라고 생각합니다. 혜택.

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен - Документация по MQL5
 

3. EA가 보류 주문 을 하려고 하면 "요청에 잘못된 주문 만료 날짜" 오류가 발생합니다. 예를 들어 지연만 설정하고 다른 것은 하지 않는 어드바이저를 만들었습니다... Forex의 MT5에서는 지연을 정상적으로 설정하지만 FORTS에서는 오류가 발생합니다. 주문의 유효기간이 적당합니다 - 화면에 표시하여 확인했습니다. 저만 이 문제가 있습니까? 이유는 무엇입니까? 아래의 어드바이저 코드


#property copyright "Copyright 2013, MetaQuotes Software Corp."

#property link      "http://www.mql5.com"

#property version   "1.00"

input int tp=150;

input int Deviation=5;

MqlTradeRequest mrequest; 

MqlTradeResult mresult;   

int OnInit()

  {

   return(0);

  }

void OnDeinit(const int reason)

  {

  }


void OnTick()

  {

   Open_Pending_Order(1,SymbolInfoDouble(_Symbol,SYMBOL_BID)+NormalizeDouble(tp*_Point,_Digits), 1, 111);

   Sleep(500);

  return;

  }

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

void Open_Pending_Order(int type, double prise, double lot, long magic)

  {

   ZeroMemory(mrequest);

   mrequest.action = TRADE_ACTION_PENDING;                               

   mrequest.magic = magic;                                              

   mrequest.symbol = _Symbol;                                            

   mrequest.type_filling = ORDER_FILLING_RETURN;                            

   mrequest.deviation=NormalizeDouble(Deviation*_Point,_Digits);                                                

   mrequest.type_time=ORDER_TIME_SPECIFIED;

   mrequest.expiration=TimeCurrent()+6000;                                    

   mrequest.volume = lot; 

   mrequest.sl = 0;  

   mrequest.tp = 0; 

   mrequest.price = prise;

   Print(" время экспирации ",mrequest.expiration," тип экспирации  ",mrequest.type_time," цена ",mrequest.price);

    if(type==1)

      {                                    

       mrequest.type = ORDER_TYPE_BUY_STOP;                              

       OrderSend(mrequest,mresult);

       // анализируем код возврата торгового сервера

       if(mresult.retcode==10009 || mresult.retcode==10008) Print("Ордер Buy по символу ",_Symbol, " с маджиком ",magic," успешно помещен, тикет ордера #:",mresult.order," !!");  

       else Print("Запрос на установку ордера Buy по символу ",_Symbol, " с маджиком ",magic," не выполнен - ответ сервера:" , mresult.retcode," код ошибки " ,GetLastError());

      }

    if(type==2)

      {                                    

       mrequest.type = ORDER_TYPE_SELL_LIMIT;     

       OrderSend(mrequest,mresult);

       // анализируем код возврата торгового сервера

       if(mresult.retcode==10009 || mresult.retcode==10008) Print("Ордер Sell по символу ",_Symbol, " с маджиком ",magic," успешно помещен, тикет ордера #:",mresult.order,"!!");

       else Print("Запрос на установку ордера Sell  по символу ",_Symbol, " с маджиком ",magic," не выполнен - код ошибки:" , mresult.retcode,"  " ,GetLastError());                         

      }

   return; 

  }

 

그는 다음과 같이 씁니다(나는 만료 시간을 변경하려고 했습니다).

2013.04.24 17:40:05 udalit (SBRF-6.13,M1) 매직 111이 있는 SBRF-6.13 기호에 대한 구매 주문 요청 실패 - 서버 응답: 10022 오류 코드 4756

2013.04.24 17:40:05 udalit (SBRF-6.13,M1) 만료 시간 2013.04.25 17:00:00 만료 유형 2 가격 10016.0