[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 143

 
BooGUY :

프랙탈에! 스톱로스로 해봤는데 병합이 되어서 프랙탈 스톱으로 해보고 싶은데 조건에서 어떻게 써야할지 모르겠네요. 또는 일반적으로 어드바이저에 작성하는 방법은 다음과 같이 입력 조건을 작성했습니다.

if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&

iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&

iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&

iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)

{...???

}


귀하의 코드에 따르면 대화가 프랙탈에 관한 것인지 의심됩니다. 4개 기간의 시가와 종가 는 얼마입니까?
 
BooGUY :

프랙탈에! 스톱로스로 해봤는데 병합이 되어서 프랙탈 스톱으로 해보고 싶은데 조건에서 어떻게 써야할지 모르겠네요. 또는 일반적으로 어드바이저에 작성하는 방법은 다음과 같이 입력 조건을 작성했습니다.

if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&

iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&

iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&

iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)

{...???

}

전략을 테스트하기 위해 프랙탈에 대한 후행 정지 기능을 찾아 어드바이저에 연결하는 것이 더 쉽습니다. 글쎄, 또는 자신을 쓰십시오.

이 기능은 각 열린 위치의 정지점을 설정에 지정된 원하는 프랙탈로 이동합니다. 그런 다음 테스트 결과를 기반으로 이 트롤을 사용하는 것이 적절한지 또는 가격이 프랙탈 수준에 도달할 때 시장에서 포지션을 마감 하는 것에 대해 이미 생각할 수 있습니다. 그리고 이것을 하는 것과 저것을 하는 것은 사소한 문제입니다.

표준 iFractals() 함수가 도움이 될 것입니다. 함수 매개변수에 지정된 프랙탈이 발견된 가격을 반환합니다.

 

도와주세요. 내 표시기는 시간 단위로 현재 시간의 최대 분 움직임을 측정합니다. 처음 6시간(막대) 동안 모든 것을 적절하게 측정한 다음 왼쪽 값이 나오기 시작합니다. 아래는 코드와 인디케이터 자체가 어디서 잘못했는지 말해줘 최소한 3바를 넘는 값은 신경 안쓰는데 첫바에 오류가 날까봐

 #property indicator_separate_window
#property indicator_buffers 1        // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_minimum 0
#property indicator_maximum 25
double Buf_0[];             // Объявление массивов (под буферы индикатора)
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer ( 0 ,Buf_0);         // Назначение массива буферу   
SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 2 ); // Стиль линии 
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
int i;                           // Индекс бара       
int Counted_bars;                 // Количество просчитанных баров
int m;
int MaxSpeed;
int Speed; 
//--------------------------------------------------------------------   
Counted_bars= IndicatorCounted (); // Количество просчитанных баров    
i= Bars -Counted_bars- 1 ;           // Индекс первого непосчитанного   
while (i>= 0 )                       // Цикл по непосчитанным барам     
 {
 
 MaxSpeed= 0 ;
 if ( Period ()== PERIOD_H1 )
  {
  m= 59 ;
   while (m>= 0 )
   {
   Speed=( iOpen ( Symbol (), PERIOD_M1 ,m+ 60 *i)- iClose ( Symbol (), PERIOD_M1 ,m+ 60 *i))/ Point ;
   if (MaxSpeed<Speed)
    {
    MaxSpeed=Speed;
    }
   m--;
   }
  }
 if ( Period ()== PERIOD_M1 )
  {
  m= 0 ;
   while (m>= 0 )
   {
   Speed=( iOpen ( Symbol (), PERIOD_M1 ,m+i)- iClose ( Symbol (), PERIOD_M1 ,m+i))/ Point ;
   if (MaxSpeed<Speed)
    {
    MaxSpeed=Speed;
    }
   m--;
   }
  }      
 Buf_0[i]=MaxSpeed;             // Значение 0 буфера на i-ом баре      
 i--;                           // Расчёт индекса следующего бара     
 }   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
표시기는 원래 달랐고, 나는 그것을 분해하고 내 코드를 "납땜"했습니다.
파일:
speed.mq4  3 kb
 
MACD의 제비뽑기 아마 누군가는 그런 썩어가는 곳이 있을 수 있다는 것을 알고 있을 것입니다????
 
LazarevDenis :

도와주세요. 내 표시기는 시간 단위로 현재 시간의 최대 분 움직임을 측정합니다. 처음 6시간(막대) 동안 모든 것을 적절하게 측정한 다음 왼쪽 값이 나오기 시작합니다. 아래는 코드와 인디케이터 자체가 어디서 잘못했는지 말해줘 최소한 3바를 넘는 값은 신경 안쓰는데 첫바에 오류가 날까봐

표시기는 원래 달랐고, 나는 그것을 분해하고 내 코드를 "납땜"했습니다.


무엇을 얻고 싶습니까?
 

비닌 :

무엇을 얻고 싶습니까?


표시기가 분 막대 중 iOpen -iClose 의 최대값을 표시하기를 원하지만 HOUR의 경우, 예를 들어 1시간의 경우 59분 막대 iOpen-iClose=3(예:) 및 1분 막대 iOpen-iClose=10 및 시간 프레임에서 편차 없이 10이 표시되어야 하고 주문을 마감하는 표시기가 필요합니다. 갑자기 1분에 비율이 잘못된 방향으로 너무 빨리 가면 어드바이저에게 이것이 마감 신호가 될 것입니다.

여기까지가 첫 판인데 지금은 왜 이러지 않는지 이상하긴 하지만 가격이 어느 방향으로 움직이는지 구분해줬으면 좋겠다.

 

그래픽 개체(예: 수평선 )를 클릭하면 열리는 창에서 "설명"을 볼 수 있습니다.

- 코드에서 "설명"을 추가할 수 있습니까?

고맙습니다!

 
chief2000 :

그래픽 개체(예: 수평선)를 클릭하면 열리는 창에서 "설명"을 볼 수 있습니다.

- 코드에서 "설명"을 추가할 수 있습니까?

고맙습니다!

https://docs.mql4.com/ru/objects/ObjectSetText
 

필요한 것! 고맙습니다!

 

라자레프데니스

처음에는 59개의 막대가 고려되는데 이는 잘못된 것입니다. 분 단위의 간격이 있을 수 있으며 마지막 시간 표시줄 자체에 더 적은 분이 포함될 수 있습니다.

시간별 막대의 여는 시간과 닫는 시간(시간[i])을 구해야 합니다. 이 시간을 기준으로 iBarShift 분에 대한 오프셋을 계산한 다음 이 오프셋 범위에서 최대값을 계산합니다.

그건 그렇고, 표시기는 분 기간에 무엇을 표시해야합니까?

조언자에게는 중요하지 않지만 분의 마지막 값을 얻는 것으로 충분합니다. 숫자가 양수이면 가격이 올라가고 음수가 내려가면 숫자를 모듈로 반환하여 알아냅니다. 운동의 힘.

사유: