맥박 - 페이지 32

 
Artyom Trishkin :
그래서 나는 생각했습니다. 아마도 모든 것을 단순화하고 MA로 줄이고 빠른 방법으로 조합하여 성급한 결론에 이르게 하려는 당신의 욕망이 "작동하지 않을 것입니다."라고 생각합니다. 나는 당신에게 말했습니다 - 우리는 먼저 이웃 진드기의 차이점을 고려합니다. 어레이는 가격이 아닌 가격 차이로 가득 차 있습니다. 그러나 우리는 Mashka를 찾아 아무렇지도 않게 봅니다. 나아지 다.

친애하는, 나는 이미 오랫동안이 칩을 닫았습니다. 나는 당신이 여기서 쓸모없는 지표로 끝나지 않도록 올바른 방향으로 당신을 가리키고 있습니다.

이제 당신이 결국 무엇을 얻었는지에 대해:

- 속도 평균.

가격에 대한 MA를 받지 못했는데 속도에 대한 MA를 얻었다면 무엇이 달라지나요?

평균 잼이 무엇인지 모르는 경우주의 깊게 살펴보십시오.

(5+1)/2=3 //낙하

(1+5)/2=3 //성장

자, 스스로 생각하세요, 수학자...

 
new-rena :

친애하는, 나는 이미 오랫동안이 칩을 닫았습니다. 나는 당신이 여기서 쓸모없는 지표로 끝나지 않도록 올바른 방향으로 당신을 가리키고 있습니다.

이제 당신이 결국 얻은 것에 대해:

- 속도 평균.

가격에 대한 MA를 받지 못했는데 속도에 대한 MA를 얻었다면 무엇이 달라지나요?

평균 잼이 무엇인지 모르는 경우주의 깊게 살펴보십시오.

(5+1)/2=3 //낙하

(1+5)/2=3 //성장

자, 스스로 생각하세요, 수학자...

원주민에 관해서는 - 당신은 그것을 거절했습니다, 친구. 무례함은 사람을 그리지 않습니다.

이제 무엇에 대한 공식에 무엇이 있는지 말해주십시오, 멘토 ...

추신. 나는 당신의 침략을 이해합니다-누군가 당신에게 계산을주지 않았지만 당신은 수학자 인 Mashki로서 세상의 모든 것을 고려하여 스스로 끝내지 않았습니다 ... 이것 때문에 당신은 사람들에게 자신을 던질 필요가 없습니다 - 당신은 바보처럼 보입니다.

 
Artyom Trishkin :

원주민에 관해서는 - 당신은 그것을 거절했습니다, 친구. 무례함은 사람을 그리지 않습니다.

이제 무엇에 대한 공식에 무엇이 있는지 말해주십시오, 멘토 ...

추신. 나는 당신의 침략을 이해합니다-누군가 당신에게 계산을주지 않았지만 당신은 수학자 인 Mashki로서 세상의 모든 것을 고려하여 스스로 끝내지 않았습니다 ... 이것 때문에 당신은 사람들에게 자신을 던질 필요가 없습니다 - 당신은 바보처럼 보입니다.

무례함에 관해서는 - 그것은 상호적이었습니다. 그리고 누군가가 무언가를주지 않았다는 사실은 그들이 여기서 달성하려는 창조에 영향을 미치지 않습니다. 제가 질문한 곳에서 이미 모든 것을 설명했고 그 사람은 여기뿐만 아니라 모든 포럼에서 광고하고 있습니다. 사람들은 그가 이미 그것을 칠판에 적었다고 씁니다.

이제 비즈니스로 이동합니다.

어제 여기에 링크를 게시 했으므로 이것은 사실상 지표의 주요 부분, 즉 하이라이트입니다.

즉, 동일한 시간 간격 동안 틱의 수를 결정하고, 이를 기반으로 가격 움직임의 방향을 매매 신호를 얻 습니다. 여기서 명확하지 않은 것은 무엇입니까?

가장 중요한 것은 평균을 내지 않는 것입니다.

따라서 틱 수로 변동성을 판단하고 동일한 기간 동안의 델타 합계로(위에서 올바르게 작성했듯이 델타는 인접 틱 간의 가격 차이입니다) - 가격 움직임의 방향을 판단하고, 즉. 추세에 대해. 또한 델타는 음수와 양수 모두가 될 수 있습니다. 우리는 우리가 가진 것을 모았습니다.

원칙적으로 이러한 지표를 계산하고 작동하려면 마지막 틱의 N 번째 숫자만 필요합니다. 아마도 테스트를 제외하고는 히스토리에 틱을 쓸 필요는 없습니다.

이러한 표시기의 기존 아날로그는 속도계 형태로 만들어집니다 .

 
new-rena :

무례함에 관해서는 - 그것은 상호적이었습니다. 그리고 누군가가 무언가를주지 않았다는 사실은 그들이 여기서 달성하려는 창조에 영향을 미치지 않습니다. 제가 질문한 곳에서 이미 모든 것을 설명했고 그 사람은 여기뿐만 아니라 모든 포럼에서 광고하고 있습니다. 사람들은 그가 이미 그것을 칠판에 적었다고 씁니다.

이제 비즈니스로 이동합니다.

어제 여기에 링크를 게시 했으므로 이것은 사실상 지표의 주요 부분, 즉 하이라이트입니다.

즉, 동일한 시간 간격 동안 틱의 수를 결정하고, 이를 기반으로 가격 움직임의 방향을 매매 신호를 얻 습니다. 여기서 명확하지 않은 것은 무엇입니까?

가장 중요한 것은 평균을 내지 않는 것입니다.

따라서 틱 수로 변동성을 판단하고 동일한 기간 동안의 델타 합계로(위에서 올바르게 작성했듯이 델타는 인접 틱 간의 가격 차이입니다) - 가격 움직임의 방향을 판단하고, 즉. 추세에 대해. 또한 델타는 음수와 양수 모두가 될 수 있습니다. 우리는 우리가 가진 것을 모았습니다.

원칙적으로 이러한 지표를 계산하고 작동하려면 마지막 틱의 N 번째 숫자만 필요합니다. 아마도 테스트를 제외하고는 히스토리에 틱을 쓸 필요는 없습니다.

이러한 표시기의 기존 아날로그는 속도계 형태로 만들어집니다.

이 링크인가요? https://www.mql5.com/en/forum/61389/page30#comment_1776762

추신. 상호 무례함에 관해서는 - 당신은 헛된 것입니다. 내가 먼저 당신에게 무례하지 않았습니다.

Импульс
Импульс
  • www.mql5.com
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий. - Страница 30 - Категория: автоматические торговые системы
 
Artyom Trishkin :

이 링크인가요? https://www.mql5.com/ru/forum/61389/page30#comment_1776762

추신. 상호 무례함에 관해서는 - 당신은 헛된 것입니다. 내가 먼저 당신에게 무례하지 않았습니다.

예, 하지만 4-rke에 기록되어 있습니다. 내가 이해하는 한, 우리는 5에서 한다.
 
Karputov Vladimir :

진드기를 기록하는 근거가 있습니다.


파일 이름 형식:

파일에는 4개의 열이 있습니다.


질문이 남아 있습니다 - 새 파일을 시작하는 빈도. 매시간 각 파일을 시작해야 한다고 생각합니다. 이렇게 하면 나중에 분석하기가 더 쉽습니다.

높음, 낮음 추가(또는 즉시 가격 변동 계산) - 틱을 건너뛰면(기술적 이유로) 변경됩니다.

이것은 충동의 순간과 터미널 / 컴퓨터가 다른 작업을 할 때 발생합니다 :-)

 
Karputov Vladimir :

600틱이라는 기록이 있습니다. 이 항목(각 100개)은 6개의 차트에 배포되었습니다. 차트에서 가격과 틱의 변화율(EMA10). 일반적으로 도면을 연구하는 이유가 있습니다.







당신은 조금, 즉 당신은 잘못된 것을보고 .. 그래프에서 특정 미분 오류 기능을 얻었습니다. 즉, 처음에는 속도를 미분(dx/dt)으로 간주한 다음 통합(다른 방법으로)하여 원본과 비교했습니다.

힌트: 모든 MA는 사실상의 적분 함수입니다.

힌트2: 올바른 방향으로 움직이고 있는지 확인하려면 간단한 SMA를 가져 와서 반 기간 뒤로 이동하십시오. 역사에서 유용한 것을 본다면 속도와 추진력을 헛되이 생각하고 더 깊이 파고들 수 있습니다.

 
new-rena :
예, 하지만 4-rke에 기록되어 있습니다. 내가 이해하는 한, 우리는 5에서 한다.

네, 어떤 플랫폼을 하든 상관없습니다. 나는 거기에서 Roman에게 물었고 개인 메시지로 그에게 코드를 작성했지만 여전히 그가 init()에서 배열 크기를 2백만으로 설정 한 다음 start()에서 배열 크기를 0으로 변경한 다음 시도하는 이유를 여전히 이해하지 못했습니다. 인덱스 -1( !!!)에서 채우고 그 후에야 SIZE 변수를 1만큼 증가시켜 배열을 인덱싱해야 합니다. 내가 제안한 내용은 다음과 같습니다.

 //+------------------------------------------------------------------+
//|                                                   FillArrays.mq4 |
//|              Copyright 2015, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Artem A. Trishkin, Skype artmedia70"
#property link        "https://login.mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//|   Input variables                                                |
//+------------------------------------------------------------------+
input int NumberOfStorableTicks= 20 ;       // Количество сохраняемых тиков
int numberOfStorableTicks; // Количество сохраняемых тиков
input int PeriodOfMA= 5 ;                   // Период сглаживания
int periodOfMA; // Период сглаживания
input ENUM_MA_METHOD MaMethod= MODE_SMA ;   // Метод усреднения МА

//+------------------------------------------------------------------+
//|   Global variables                                               |
//+------------------------------------------------------------------+
string symbol;     // Symbol()
int digits;       // Digits
//+------------------------------------------------------------------+
//|   Arrays                                                         |
//+------------------------------------------------------------------+
double       Mass_ticks[];
double       Mass_smoothed_values[];
//+------------------------------------------------------------------+
//|   Structures                                                     |
//+------------------------------------------------------------------+
   MqlTick struct_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   symbol= Symbol ();
   digits=( int ) SymbolInfoInteger (symbol, SYMBOL_DIGITS );
   //---
   numberOfStorableTicks=(NumberOfStorableTicks< 1 )? 1 :NumberOfStorableTicks;
   periodOfMA=(PeriodOfMA< 1 )? 1 :PeriodOfMA;
   //---
   ArrayResize (Mass_ticks,numberOfStorableTicks);
   ArrayInitialize (Mass_ticks, 0.0 );
   ArrayResize (Mass_smoothed_values,numberOfStorableTicks);
   ArrayInitialize (Mass_smoothed_values, 0.0 );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   Comment ( "" );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if ( SymbolInfoTick (symbol,struct_tick)) {
       double tick_bid=struct_tick.bid;
      FillArrays(numberOfStorableTicks,tick_bid,Mass_ticks);
      }
   string txt= "" ;
   for ( int i=numberOfStorableTicks- 1 ; i>= 0 ; i--) {
       string itxt= IntegerToString (i);
      txt+= "\nmass[" +itxt+ "]: " + DoubleToString (Mass_ticks[i],digits);
      }
   Comment (txt);
  }
//+------------------------------------------------------------------+
void FillArrays( int array_size, double price, double &mass_price[]) {
   //--- сместим данные в массиве влево
   for ( int i=array_size- 1 ; i> 0 ; i--) {
      mass_price[i]=mass_price[i- 1 ];
      }
   //--- запишем новый тик в массив
   mass_price[ 0 ]=price;
}
//+------------------------------------------------------------------+
void SmoothingDataArray( int array_size, int ma_period, int ma_shift, ENUM_MA_METHOD ma_method, double &mass_price[], double &mass_smoothing[]) {
   for ( int i=array_size- 1 ; i>= 0 ; i--) {
      mass_smoothing[i]=iMAOnArray(mass_price,array_size,ma_period,ma_shift,ma_method,i);
      }
   }
//+------------------------------------------------------------------+

그러나 iMAOnArray()는 평면화를 거부합니다. 아무리 뒤집어도 모든 것이 거꾸로 되어 있습니다. 예, 여기에서 추구하는 목적에는 필요하지 않습니다. 아마...

예, 잊었습니다. 로만이 제안한 내용은 다음과 같습니다.

 //---------------------
extern int MaxDrawTicks= 100 ;
extern int Num_Aver_of_Ticks= 5 ;  
double      xBuffer_Time []; // Массив значений   динамический
                             // В котором индекс - номер тика, значение - это бид 
int SIZE= 0 ;                 // Вспомогательная переменная для массива                                  
int tickCounter, tickCounter_Current; 
//+------------------------------------------------------------------+
int init()
  {   
//--- устанавливаем размер динамического массива
   if ( ArrayResize (xBuffer_Time, 2000000 )< 0 ) { Alert ( " Ошибка в изменении размера массива времени поступления тиков " ); return ( false );}
//--- установим индексацию для буфера как в таймсерии для динамического массива
   // ArraySetAsSeries(xBuffer_Time,true);    
//---   Возвращает количество элементов указанного массива. 
   int S= ArraySize (xBuffer_Time);
   if (S>= 0 ) Alert ( "Размер массива: " ,S);
   else Print ( "Ошибка. Массив не создан " ,S);        
   ArrayInitialize (xBuffer_Time, 0 );
   return ( 0 );
  }  
//+------------------------------------------------------------------+
int start()
  {  
   //ArrayResize(ValueArr,size);
   //ValueArr[size-1] = GetValue();
   //size++; 
 //----------------------------------------  
   ArrayResize (xBuffer_Time,SIZE);
   xBuffer_Time[SIZE- 1 ] = Bid; //NormalizeDouble((iTime (_Symbol,1,0)-_start), 2); 
  
   if ( SIZE >= 0 && ArraySize (xBuffer_Time) < 2147483647 )
      {
       Alert ( " Значение xBuffer_Time[SIZE-1] = " , DoubleToStr(xBuffer_Time[SIZE- 1 ], Digits ) );
       Alert ( " Значение SIZE = " , DoubleToStr(SIZE, 2 ) );  
      } 
    SIZE ++;   
 //---------------------------------------      
//------------
   return ( 0 );
  }
 
Artyom Trishkin :

나는 테이블로 시도 할 것입니다 :

틱 10
틱 9
틱 8
7번 체크
틱 6
틱 5
4번 체크
틱 3 틱 2
틱 1 0을 체크
미래의 진드기
X10
X9
X8
X7
X6
X5
X4
X3
X2
X1 X0
XN0
X9 X8
X7 X6 X5
X4 X3
X2
X1
X0 XN0
XN1

x0, x1, x2는 현재 상태(분홍색)를 정의하고 나머지는 과거(밝은 녹색)를 정의합니다. 배열의 데이터는 지속적으로 이동하고 제로 틱은 새로 도착한 xn0으로 대체됩니다. 따라서 이제 현재 상태가 x1, x0, xn0에서 계산되고 마지막 시간의 x2 눈금이 이전 상태를 정의하는 셀로 이동하여 해당 상태를 약간 수정합니다. 우리가 군중의 모든 것을 고려하면 첫 번째 틱 세 개 모두에 의해 수정이 이루어질 것입니다. 이는 나에게 보이는 것처럼 다소 무례합니다.

이것에 뭔가가 있습니다. 다음은 눈금 차트의 스크린샷입니다.

틱 차트 스크린샷

큰 화살표로 둘러싸인 영역에 주의하십시오.

그리고 여기에서 틱의 평균 증분(tick0, tick1, tick2)이 평균 증분(tick3, tick4, tick5, tick6, tick7, tick8, tick9, tick10)보다 크고 동시에 증분이 0보다 큽니다.

조건 처리

 
Artyom Trishkin :

네, 어떤 플랫폼을 하든 상관없습니다. 나는 거기에서 Roman에게 물었고 개인 메시지로 그에게 코드를 작성했지만 여전히 그가 init()에서 배열 크기를 2백만으로 설정 한 다음 start()에서 배열 크기를 0으로 변경한 다음 시도하는 이유를 여전히 이해하지 못했습니다. 인덱스 -1( !!!)에서 채우고 그 후에야 SIZE 변수를 1만큼 증가시켜 배열을 인덱싱해야 합니다. 내가 제안한 내용은 다음과 같습니다.

그러나 iMAOnArray()는 평면화를 거부합니다. 아무리 뒤집어도 모든 것이 거꾸로 되어 있습니다. 예, 여기에서 추구하는 목적에는 필요하지 않습니다. 아마...

알았어. 그리고 시간 간격에 대한 분석은 어디에 있으며 MA-shka가 나타난 이유는 무엇입니까?

바로 지금, 나는 또한 내 칩에서 조인트를 발견했습니다. 결국 같은 시간 간격에 같은 수의 틱이 발생하지 않습니다. 우리는 그러한 지표를 잃어버려서는 안 됩니다.

내가 틀렸을 수도 있습니다. 나는 아주 오랫동안 5-rku를 사용하지 않았습니다.