멀티 화폐를 만들려고 합니다. 지금까지 Nikolai Kositsin이 " 다양한 상품을 거래하는 전문가 고문 만들기 "라는 기사에서 제안한 계획에 정착했습니다. 다른 도구에서 동일한 매개변수로 테스트를 실행하면 결과가 다를 때 문제가 발생했습니다. 포럼을 살펴보니 많은 사람들이 OnTimer() 함수를 사용하여 이 문제를 해결할 수 있다는 결론에 도달했습니다. Andrey Khatimlyansky는 다음과 같이 조언 했습니다 .
Отвяжитесь от тиков конкретного инструмента ( OnTick ) - это же мультивалютник! Работайте по таймеру или ловите момент образования бара на всех рабочих инструментах, это будет надежнее.
모든 악기에서 소절이 형성되는 순간을 잡으려고 노력했지만 원하는 결과를 얻지 못했습니다.
예를 들어:
새로운 막대를 정의하도록 설계된 함수에서는 기호와 기간을 명시적으로 지정합니다.
bool isNewBar( string Symbol_, ENUM_TIMEFRAMES Timeframe)
{
// В статической переменной будем помнить время открытия последнего бараstaticdatetime last_time = 0 ;
// Текущее времяdatetime lastbar_time = ( ENUM_SERIES_INFO_INTEGER ) SeriesInfoInteger (Symbol_,Timeframe, SERIES_LASTBAR_DATE );
// Если это первый вызов функцииif (last_time == 0 )
{
// Установим время и выйдем
last_time = lastbar_time;
return ( false );
}
// Если время отличаетсяif (last_time != lastbar_time)
{
// Запомним время и вернем true
last_time = lastbar_time;
return ( true );
}
// Дошли до этого места - значит бар не новый, вернем falsereturn ( false );
}
OnTick() 함수에서 Nikolai Kositsin이 제안한 방식입니다.
예를 들어:
voidOnTick ()
{
// Объявление массивов переменных для торговых сигналов staticbool UpSignal[ 2 ], DnSignal[ 2 ];
// Получение торговых сигналов
TradeSignalCounter( 0 , остальные параметры);
TradeSignalCounter( 1 , остальные параметры);
// Совершение торговых операций
TradePerformer( 0 , остальные параметры);
TradePerformer( 1 , остальные параметры);
}
isNewBar(Symbol,Timeframe) 함수는 거래가 수행되는 함수, 즉 TradePerformer(parameters) 에서 호출됩니다.
각 진드기에 대한 무조건적이고 어리석은 (무지에서) 지표 재생성과 지표의 합리적인 (희귀하고 필연적인) 생성을 혼동하지 마십시오. 첫 번째 경우에는 백 배 브레이크와 리소스 누출이 발생하고 두 번째 경우에는 이상적인 작업입니다.
나는 Karlson 이 무의식적으로 실수를 저질렀다는 것을 완벽하게 이해하고, 이 실수의 본질도 이해합니다.
그러나 그의 문제를 해결하기 위한 합리적인 계획을 제시하십시오. 사람은 표시기에 작성된 코드를 사용해야 하지만 이 코드의 매개변수는 표시기 데이터에 대한 각 호출 전에 동적으로 결정됩니다.
dll이 포함되어 있지만 솔루션이 있지만 순수한 mql을 옹호하고 있으므로 mql에서 솔루션을 제공하십시오.
ZY 이벤트에서 OnCalculate() 및 계산에 대해 이미 언급했지만 이벤트를 통해 3개의 매개변수를 전달할 수 있습니다. 내 솔루션에서 dll은 매개변수가 있는 배열의 주소를 long을 통해 전송하는 구조로 제공되며 표시기 데이터는 이 주소에서 얻습니다.
mql에 솔루션이 있는 경우 손가락을 가리키기만 하면 사람들이 여기에서 이해하고 있습니다.
나는 Karlson 이 무의식적으로 실수를 저질렀다는 것을 완벽하게 이해하고, 이 실수의 본질도 이해합니다.
그러나 그의 문제를 해결하기 위한 합리적인 계획을 제시하십시오. 사람은 표시기에 작성된 코드를 사용해야 하지만 이 코드의 매개변수는 표시기 데이터에 대한 각 호출 전에 동적으로 결정됩니다.
얼마나 많은 다른 지표를 생성해야 합니까? 확실히 10개를 넘지 않아야 합니다. 그렇지 않으면 리소스 낭비일 뿐입니다.
확실히 매개변수에 변경 사항이 있으므로 필요한 지표가 필요에 따라 추가되는 지표 컬렉션을 간단히 생성할 수 있습니다. 표시기가 분명히 10개 미만이고 명시적 의미(초기, 확인, 수정 등)가 있는 경우 필요한 매개변수를 사용하여 명명된 핸들 변수를 생성할 수 있습니다.
그러나 그의 문제를 해결하기 위한 합리적인 계획을 제시하십시오. 사람은 표시기에 작성된 코드를 사용해야 하지만 이 코드의 매개변수는 표시기 데이터에 대한 각 호출 전에 동적으로 결정됩니다.
조금 생각했다. 코드 매개변수가 표시기 데이터에 대한 각 호출 전에 동적으로 결정되는 경우 이러한 매개변수를 결정하는 절차를 표시기 코드에도 푸시하지 않는 이유는 무엇입니까? 즉, 모든 것, 절대적으로 모든 계산이 지표에 있습니다.
아니면 그러한 캠페인이 근본적으로 불가능한 상황이 있습니까?
조금 생각했다. 코드 매개변수가 표시기 데이터에 대한 각 호출 전에 동적으로 결정되는 경우 이러한 매개변수를 결정하는 절차를 표시기 코드에도 푸시하지 않는 이유는 무엇입니까? 즉, 모든 것, 절대적으로 모든 계산이 지표에 있습니다.
아니면 그러한 캠페인이 근본적으로 불가능한 상황이 있습니까?
예를 들어 매개변수가 다른 지표에 의해 계산되어 조언자에게 반환되고, 예를 들어 뉴런을 기반으로 한 조언자가 사용할 모델을 결정하는 경우와 같은 상황이 있습니다. 어떤 매개변수 세트가 적용될지 미리 알지 못합니다.
왜 그런 간단한 지표에서 0(오른쪽에서 첫 번째) 막대가 주간 그래프를 제외한 모든 곳에서 계산되지 않는지 알려주십시오.
죄송합니다) 여기에 대체됨: SimpleMAOnBuffer(e,prev_calculated,PERIOD+ 1 ,p,vect,mabuf); e-rates_total 대신 모든 것이 작동함)
멀티 화폐를 만들려고 합니다. 지금까지 Nikolai Kositsin이 " 다양한 상품을 거래하는 전문가 고문 만들기 "라는 기사에서 제안한 계획에 정착했습니다. 다른 도구에서 동일한 매개변수로 테스트를 실행하면 결과가 다를 때 문제가 발생했습니다. 포럼을 살펴보니 많은 사람들이 OnTimer() 함수를 사용하여 이 문제를 해결할 수 있다는 결론에 도달했습니다. Andrey Khatimlyansky는 다음과 같이 조언 했습니다 .
Отвяжитесь от тиков конкретного инструмента ( OnTick ) - это же мультивалютник! Работайте по таймеру или ловите момент образования бара на всех рабочих инструментах, это будет надежнее.
모든 악기에서 소절이 형성되는 순간을 잡으려고 노력했지만 원하는 결과를 얻지 못했습니다.
예를 들어:
새로운 막대를 정의하도록 설계된 함수에서는 기호와 기간을 명시적으로 지정합니다.
OnTick() 함수에서 Nikolai Kositsin이 제안한 방식입니다.
예를 들어:
isNewBar(Symbol,Timeframe) 함수는 거래가 수행되는 함수, 즉 TradePerformer(parameters) 에서 호출됩니다.
예를 들어:
즉, 각각의 악기에 대해 개별적으로 매번 새로운 막대를 확인합니다. 새 막대가 없으면 다음 기호를 확인합니다. 매 틱마다 그렇습니다. 그러나 이 옵션은 작동하지 않습니다.
제시된 계획에서 다중 통화 Expert Advisor의 새 막대 확인을 올바르게 구현하는 방법을 알려주시겠습니까?
닉네임이 Expert 인 사람의 실수를 편집하십시오. 이것은 유머 주제에서 필요합니다.