포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 1174

 

iCustom을 통해 표시기를 호출 하는 방법에 대해 질문이 있습니다.

1. iCustom에 전달된 매개변수 목록에서 일부 지표 매개변수를 제외할 수 있습니다. 예를 들어, 문자열 매개변수나 다른 매개변수를 전달하고 싶지 않습니다. EA에서 호출할 때 sinput 수정자가 있는 표시기의 외부 매개변수도 iCustom에서 지정해야 합니까?

2. 지표에 많은 매개변수(약 100개)가 있는 경우 가장 최적의 솔루션은 무엇입니까? 기성품 솔루션이 있습니까? 그러한 지표를 호출하는 방법은 무엇입니까?

고맙습니다.

 

가격이 MA를 넘는 순간에 어드바이저가 오픈 포지션 을 청산해야 합니다.

이를 구현하는 방법을 조언해 주십시오.

감사해요

 
RichLux :

가격이 MA를 넘는 순간에 어드바이저가 오픈 포지션 을 청산해야 합니다.

이를 구현하는 방법을 조언해 주십시오.

감사해요

 void CheckForClose_MA()
  {
   double MA= iMA ( NULL , 0 , ma_period , ma_shift , MODE_SMMA , PRICE_MEDIAN , 0 );

   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== false )         break ;
         //---- check order type 
       if ( OrderType ()== OP_BUY )
        {
         if ( Low [ 1 ]>=MA) OrderClose ( OrderTicket (), OrderLots (), Bid , 3 ,White);
         break ;
        }
     }
//----


이중 iMA (
            기호 , // 기호 이름
    정수    타임프레임 , // 타임프레임
    정수    ma_period , // 기간
정수            ma_shift , // 평균의 이동
정수            ma_method , // 평균화 방법
정수            apply_price , // 가격 유형
정수            옮기다               // 옮기다
);

 

iCustom을 통해 Expert Advisor에 전달되는 매개변수를 찾는 방법. iCustom에 지정된 버퍼에서 잘못된 값을 얻었습니다. iCustom을 호출 한 후 올바른 데이터가 표시기에 "도달"했는지 확인하고 싶습니다.

어떻게 디버깅할 수 있습니까?

 
Александр :

기능이 있습니다.


함수 호출 은 XX 변수를 변경하고 XX가 외부여야 하지만(필요한 논리에 따라) 각 함수 호출은 XX가 0인 상태에서 시작하므로 return(XX) 값을 반환합니다. 테.이. XX 변수를 외부로 만드는 방법을 이해하지 못하며 이 함수는 별도로 "독립 실행형"이라고 부를 수 있습니다. MQ4를 통해 이루어집니다. 고맙습니다!


나는 그것을 여러 번 읽었지만 여전히 당신이 필요로하는 것을 이해하지 못합니다.

아마도 이것은:

 double XX = 0 ;


double x()
{
   double rez = XX;
   XX++;
   return rez;
}
 
모든 막대가 차트에 로드되었는지 어떻게 확인할 수 있습니까?
이는 모든 것이 완전히 로드된 경우에만 표시기가 다시 계산되도록 하는 데 필요합니다.

상태
 if (time[ 0 ] > TimeCurrent () - 60 * ChartPeriod ())
문제 해결에 도움이 되지 않습니다.
 

몇 초 이내에 값이 "증가"하지 않으면 "도착"한 총 막대 수를 기억하고 확인하십시오.

그런 다음 다시 계산하면

rates_total-prev_calculated > 1
 
Koldun Zloy :

나는 그것을 여러 번 읽었지만 여전히 당신이 필요로하는 것을 이해하지 못합니다.

아마도 이것은:

기능이 있습니다 (이것은 고문의 표시기입니다. 나는 이런 식으로 필요하고 논쟁의 여지가 없으며 칠면조이며 새로운 피크에서 작동 (카운팅)을 시작합니다 ). 칠면조에는 끊임없이 변화하는 몇 가지 매개 변수가 있습니다. 왜냐하면 루프를 피하고 값을 잃지 않도록 이러한 매개변수를 외부(함수 외부)로 만들고 싶습니다. 그리고 새로운 함수를 호출 하면 표시기 값의 변화만 볼 수 있습니다. 그리고 이전 "인스턴스"가 계속 작동하고 값을 변경하는 동안 새 상단에서 칠면조의 새 "인스턴스" 가 필요합니다. 클래스, 구조 및 기타 상속에 대해 잘 알지 못하기 때문에 표준 MQ4 방법을 사용하여 이를 달성하고 싶습니다. 고맙습니다!
 
Александр :
기능이 있습니다 (이것은 고문의 표시기입니다. 나는 이런 식으로 필요하고 논쟁의 여지가 없으며 칠면조이며 새로운 피크에서 작동 (카운팅)을 시작합니다 ). 칠면조에는 끊임없이 변화하는 몇 가지 매개 변수가 있습니다. 왜냐하면 루프를 피하고 값을 잃지 않도록 이러한 매개변수를 외부(함수 외부)로 만들고 싶습니다. 그리고 새로운 함수를 호출 하면 표시기 값의 변화만 볼 수 있습니다. 그리고 이전 "인스턴스"가 계속 작동하고 값을 변경하는 동안 새 상단에서 칠면조의 새 "인스턴스" 가 필요합니다. 클래스, 구조 및 기타 상속에 대해 잘 알지 못하기 때문에 표준 MQ4 방법을 사용하여 이를 달성하고 싶습니다. 고맙습니다!

도움이되지 않았습니다.

용어가 혼동되지 않도록 언어를 배워야 합니다.

모든 사람이 외부 변수라고 부르는 것과 "자율적으로 함수를 호출하는 것"이 무엇을 의미하는지 이해한다고 생각하지 마십시오.

그리고 당신에게만 분명한 이유 때문에 다시 사용하고 싶지 않은 사이클은 어느 쪽입니까?

글쎄, 나는 더 이상 당신을 이해하기를 희망하지 않습니다.


 
//+------------------------------------------------------------------+
//|           Проверка нажатия клавиш на клавиатуре                  |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
//---
   if (id== CHARTEVENT_KEYDOWN )
     {
     Alert (lparam);
     }
   }

예를 들어 Shift + A !?와 같은 조합을 확인하는 방법을 알려주십시오.