mrequest.type_filling=ORDER_FILLING_RETURN을 지정하면 터미널에서 잘못된 mrequest.type_filling 메서드( 주문 실행 정책 )를 지정하고 있다고 보고합니다. 그런 다음 주문이 열렸지만 프로그래밍 방식으로 주문을 닫을 수 없는 경우 터미널은 잘못된 방법이 사용되고 있다고 보고합니다. 나는 BCS Forex 서버에서 Expert Advisor를 실행하고 다른 서버에서는 모든 것이 정상입니다. 특정 브로커를 위한 거래 로봇을 개발할 때 사용할 수 있는 실행 정책을 누구나 작성할 수 있습니까? 고맙습니다.
При тестировании в эксперте можно обрабатывать пользовательские события с помощью функции OnChartEvent() , но в индикаторах эта функция в тестере не вызывается. Даже если индикатор имеет обработчик OnChartEvent() и этот индикатор используется в тестируемом эксперте, то сам индикатор не будет получать никаких пользовательских событий.
현재 이 명령문은 관련이 없습니다. 표시기에서 이 함수가 테스터에서 호출되고 적어도 하나의 표시기는 테스터의 다른 표시기에 의해 생성된 이벤트를 수신할 수 있습니다.
문제는 이 함수에 대한 호출을 수신하면 표시기가 전역 수준에서 선언된 변수에 저장된 데이터에 액세스할 수 없으며 그 반대의 경우도 마찬가지입니다. 이 기능에서 수행된 모든 변경 사항은 전역 액세스 수준의 변수에 저장되지 않습니다 .
예:
1. 객체는 전역 수준에서 선언되고 OnInit 함수에서 초기화됩니다. OnCalculate 함수에서 액세스할 수 있지만 OnChartEvent 함수에서 오류 메시지가 나타납니다. 잘못된 포인터입니다.
2. 변수의 내용을 기록하는 기능이 있습니다(변수는 전역 수준에서 선언됨). OnCalculate에서 이 함수를 호출할 때 예상 값을 얻고 OnChartEvent에서 동일한 함수를 호출할 때 넌센스를 얻습니다.
이벤트, 특히 표시기 의 OnChartEvent() 함수 를 사용할 때 문제가 발생했습니다. Expert Advisor에서 사용할 때 문제가 없었다면 표시기의 이벤트에 대해 제대로 작동하지 않을 수 있습니다. 즉, 이벤트가 발생하지만 이벤트의 기존 필드는 변경되지 않습니다. 예시:
//------------------------------------------------ ---------------------------------------------- 정수 k; int OnInit () { k = 0; ihandleDE = iCustom(_Symbol, _Period, "DrawExtremums"); //< ... > 반환(INIT_SUCCESSED); }
int OnCalculate (const int Rates_total, const int prev_calculated, const 날짜/시간 및 시간[], const 이중 및 열기[], const 더블 & 하이[], const 더블 & 로우[], const 이중 및 닫기[], const long &tick_volume[], const 긴 볼륨[], const int &spread[]) { Print("OnCalculate(): k =", k); //< ... > 반환(요금 합계);
}
무효 OnChartEvent (const int id, const long &lparam, const 이중 &dparam, const 문자열(&sparam) { 문자열 nameEv = "EXTR_UP"; if (sparam == nameEv) { Print("OnChartEvent(): k = ", k); k++; }
이벤트, 특히 표시기 의 OnChartEvent() 함수 를 사용할 때 문제가 발생했습니다. Expert Advisor에서 사용할 때 문제가 없었다면 표시기의 이벤트에 대해 제대로 작동하지 않을 수 있습니다. 즉, 이벤트가 발생하지만 이벤트의 기존 필드는 변경되지 않습니다. 예시:
//------------------------------------------------ ---------------------------------------------- 정수 k; int OnInit () { k = 0; ihandleDE = iCustom(_Symbol, _Period, "DrawExtremums"); //< ... > 반환(INIT_SUCCESSED); }
int OnCalculate (const int Rates_total, const int prev_calculated, const 날짜/시간 및 시간[], const 이중 및 열기[], const 더블 & 하이[], const 더블 & 로우[], const 이중 및 닫기[], const long &tick_volume[], const 긴 볼륨[], const int &spread[]) { Print("OnCalculate(): k =", k); //< ... > 반환(요금 합계);
}
무효 OnChartEvent (const int id, const long &lparam, const 이중 &dparam, const 문자열(&sparam) { 문자열 nameEv = "EXTR_UP"; if (sparam == nameEv) { Print("OnChartEvent(): k = ", k); k++; }
이것은 어떻게 그리고 왜?!? 어떻게 든 고칠 수 있습니까? 누군가가 이해한다면 나는 대답에 대해 매우 감사 할 것입니다.
추신: 이러한 불의는 전략 테스터 에서만 발생하며 실시간으로 모든 것이 제대로 작동합니다.
좋은 저녁이에요. 한 번에 서비스 데스크는 이에 대해 매우 명확한 답변을 제공했습니다. 터미널과 전략 테스터는 두 개의 다른 프로그램이며 테스터와 터미널의 고문/지표 작업은 크게 다를 수 있습니다. 종종 터미널에서 작동하는 것이 테스터에서 작동하지 않습니다. 서비스 데스크에 편지를 쓰고 증거를 제공하고 수리하도록 하십시오.
Tapochun : 좋은 저녁이에요. 한 번에 서비스 데스크는 이에 대해 매우 명확한 답변을 제공했습니다. 터미널과 전략 테스터는 두 개의 다른 프로그램이며 테스터와 터미널의 고문/지표 작업은 크게 다를 수 있습니다. 종종 터미널에서 작동하는 것이 테스터에서 작동하지 않습니다. 서비스 데스크에 편지를 쓰고 증거를 제공하고 수리하도록 하십시오.
이(아래)가 작동하지 않습니다. 탐색기에 F_Path를 입력하고 엔터를 클릭하면 파일이 열립니다. WinApi의 정보가 다음과 같이 표시됩니까?
누가 쓰고 읽을 때 FILE_COMMON 플래그가 사용되는 것을 방지합니까? 파일은 시스템에 설치된 모든 터미널에서 사용할 수 있습니다. 모든 터미널의 공유 폴더에 있습니다.
ME 파일 --> 공유 데이터 폴더 열기
누가 쓰고 읽을 때 FILE_COMMON 플래그가 사용되는 것을 방지합니까? 파일은 시스템에 설치된 모든 터미널에서 사용할 수 있습니다. 모든 터미널의 공유 폴더에 있습니다.
ME 파일 --> 공유 데이터 폴더 열기
안녕하세요, 매개변수가 있는 거래 요청을 생성할 때 이러한 문제가 발생한 사람이 있습니까?
다음 매개변수를 설정하는 경우:
mrequest.action=TRADE_ACTION_DEAL;mrequest.type_filling=ORDER_FILLING_FOK;
mrequest.type=ORDER_TYPE_BUY;
mrequest.type_filling=ORDER_FILLING_RETURN을 지정하면 터미널에서 잘못된 mrequest.type_filling 메서드( 주문 실행 정책 )를 지정하고 있다고 보고합니다. 그런 다음 주문이 열렸지만 프로그래밍 방식으로 주문을 닫을 수 없는 경우 터미널은 잘못된 방법이 사용되고 있다고 보고합니다. 나는 BCS Forex 서버에서 Expert Advisor를 실행하고 다른 서버에서는 모든 것이 정상입니다. 특정 브로커를 위한 거래 로봇을 개발할 때 사용할 수 있는 실행 정책을 누구나 작성할 수 있습니까? 고맙습니다.경보 기능이 있는 mq4 표시기가 있습니다.
예를 들어:
하위 창의 왼쪽 상단 모서리 (표시기의 이름과 매개변수가 일반적으로 표시되는 곳)에서 또는 다른 방법으로 경고가 켜져 있는지 여부를 나타내도록 어떻게 만들 수 있습니까( extern bool AlertMode= true ;) 아니면 꺼져?경보 기능이 있는 mq4 표시기가 있습니다.
예를 들어:
하위 창의 왼쪽 상단 모서리 (표시기의 이름과 매개변수가 일반적으로 표시되는 곳)에서 또는 다른 방법으로 경고가 켜져 있는지 여부를 나타내도록 어떻게 만들 수 있습니까( extern bool AlertMode= true ;) 아니면 꺼져?문서에서는 다음과 같이 말합니다.
При тестировании в эксперте можно обрабатывать пользовательские события с помощью функции OnChartEvent() , но в индикаторах эта функция в тестере не вызывается. Даже если индикатор имеет обработчик OnChartEvent() и этот индикатор используется в тестируемом эксперте, то сам индикатор не будет получать никаких пользовательских событий.
현재 이 명령문은 관련이 없습니다. 표시기에서 이 함수가 테스터에서 호출되고 적어도 하나의 표시기는 테스터의 다른 표시기에 의해 생성된 이벤트를 수신할 수 있습니다.
문제는 이 함수에 대한 호출을 수신하면 표시기가 전역 수준에서 선언된 변수에 저장된 데이터에 액세스할 수 없으며 그 반대의 경우도 마찬가지입니다. 이 기능에서 수행된 모든 변경 사항은 전역 액세스 수준의 변수에 저장되지 않습니다 .
예:
1. 객체는 전역 수준에서 선언되고 OnInit 함수에서 초기화됩니다. OnCalculate 함수에서 액세스할 수 있지만 OnChartEvent 함수에서 오류 메시지가 나타납니다. 잘못된 포인터입니다.
2. 변수의 내용을 기록하는 기능이 있습니다(변수는 전역 수준에서 선언됨). OnCalculate에서 이 함수를 호출할 때 예상 값을 얻고 OnChartEvent에서 동일한 함수를 호출할 때 넌센스를 얻습니다.
안녕하세요!
이벤트, 특히 표시기 의 OnChartEvent() 함수 를 사용할 때 문제가 발생했습니다. Expert Advisor에서 사용할 때 문제가 없었다면 표시기의 이벤트에 대해 제대로 작동하지 않을 수 있습니다. 즉, 이벤트가 발생하지만 이벤트의 기존 필드는 변경되지 않습니다. 예시:
//------------------------------------------------ ----------------------------------------------
정수 k;
int OnInit ()
{
k = 0;
ihandleDE = iCustom(_Symbol, _Period, "DrawExtremums");
//< ... >
반환(INIT_SUCCESSED);
}
int OnCalculate (const int Rates_total,
const int prev_calculated,
const 날짜/시간 및 시간[],
const 이중 및 열기[],
const 더블 & 하이[],
const 더블 & 로우[],
const 이중 및 닫기[],
const long &tick_volume[],
const 긴 볼륨[],
const int &spread[])
{
Print("OnCalculate(): k =", k);
//< ... >
반환(요금 합계);
}
무효 OnChartEvent (const int id,
const long &lparam,
const 이중 &dparam,
const 문자열(&sparam)
{
문자열 nameEv = "EXTR_UP";
if (sparam == nameEv)
{
Print("OnChartEvent(): k = ", k);
k++;
}
}
//------------------------------------------------ ----------------------------------------------
결과적으로 다음을 얻습니다.
"OnCalculate(): k = 0" - 항상.
"OnChartEvent(): k = 0,...,123332" - 0에서 ...까지 계산
이것은 어떻게 그리고 왜?!? 어떻게 든 고칠 수 있습니까? 누군가가 이해한다면 나는 대답에 대해 매우 감사 할 것입니다.
추신: 이러한 불의는 전략 테스터 에서만 발생하며 실시간으로 모든 것이 제대로 작동합니다.
안녕하세요!
이벤트, 특히 표시기 의 OnChartEvent() 함수 를 사용할 때 문제가 발생했습니다. Expert Advisor에서 사용할 때 문제가 없었다면 표시기의 이벤트에 대해 제대로 작동하지 않을 수 있습니다. 즉, 이벤트가 발생하지만 이벤트의 기존 필드는 변경되지 않습니다. 예시:
//------------------------------------------------ ----------------------------------------------
정수 k;
int OnInit ()
{
k = 0;
ihandleDE = iCustom(_Symbol, _Period, "DrawExtremums");
//< ... >
반환(INIT_SUCCESSED);
}
int OnCalculate (const int Rates_total,
const int prev_calculated,
const 날짜/시간 및 시간[],
const 이중 및 열기[],
const 더블 & 하이[],
const 더블 & 로우[],
const 이중 및 닫기[],
const long &tick_volume[],
const 긴 볼륨[],
const int &spread[])
{
Print("OnCalculate(): k =", k);
//< ... >
반환(요금 합계);
}
무효 OnChartEvent (const int id,
const long &lparam,
const 이중 &dparam,
const 문자열(&sparam)
{
문자열 nameEv = "EXTR_UP";
if (sparam == nameEv)
{
Print("OnChartEvent(): k = ", k);
k++;
}
}
//------------------------------------------------ ----------------------------------------------
결과적으로 다음을 얻습니다.
"OnCalculate(): k = 0" - 항상.
"OnChartEvent(): k = 0,...,123332" - 0에서 ...
이것은 어떻게 그리고 왜?!? 어떻게 든 고칠 수 있습니까? 누군가가 이해한다면 나는 대답에 대해 매우 감사 할 것입니다.
추신: 이러한 불의는 전략 테스터 에서만 발생하며 실시간으로 모든 것이 제대로 작동합니다.
좋은 저녁이에요. 한 번에 서비스 데스크는 이에 대해 매우 명확한 답변을 제공했습니다. 터미널과 전략 테스터는 두 개의 다른 프로그램이며 테스터와 터미널의 고문/지표 작업은 크게 다를 수 있습니다. 종종 터미널에서 작동하는 것이 테스터에서 작동하지 않습니다. 서비스 데스크에 편지를 쓰고 증거를 제공하고 수리하도록 하십시오.