초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1290 1...128312841285128612871288128912901291129212931294129512961297...1503 새 코멘트 Kira27 2021.02.13 17:24 #12891 Vitaly Muzichenko : --- 추신이지만 일반적으로 예를 들어 동일한 어레이에서 많은 것들이 잘못되었습니다. 도움과 팁 감사합니다!!! 이것이 컴파일 방법입니다 //+------------------------------------------------------------------+ //| Funct.mq5 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int UP; //Глобальная переменная //_____________________________________Массивы для Handleлов____________________________________ double HandleFractalDown_W1[],HandleFractalUP_W1[]; // одномерный динамический массив //_____________________________________Массивы для фракталов____________________________________ double FractalDown_W1[],FractalUP_W1[]; // одномерный динамический массив //----------------------------------------------------------------------------------------------- int Fractal_W1= iFractals ( Symbol (), PERIOD_W1 ); //Хендл индикатора //---------------------------------------------------------------------- void OnStart () { CopyBuffer (Fractal_W1, 0 , TimeCurrent (), Bars ( Symbol (), PERIOD_W1 ),HandleFractalUP_W1); // заполнение масива FractalUp[] верхними фракталами на дневном графике CopyBuffer (Fractal_W1, 1 , TimeCurrent (), Bars ( Symbol (), PERIOD_W1 ),HandleFractalDown_W1); // заполнение масива FractalUp[] нижними фракталами на дневном графике //--- индексация как в таймсериях ArraySetAsSeries (FractalUP_W1, true ); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии ArraySetAsSeries (FractalDown_W1, true ); //Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях. Search_Fractal( PERIOD_W1 , HandleFractalUP_W1, FractalUP_W1); //Пользовательская функция заполнения массива FractalUP_W1 значениями //верхних фракталов } //+------------------------------------------------------------------+ //+-----------------------Функция заполнения массива-------------------------------------------+ void Search_Fractal( ENUM_TIMEFRAMES period, double &handle[], double &fract_mass[]) { UP = 0 ; //Глобальная переменная int i= Bars ( Symbol (),period); //Колличество баров на W1 графике for ( int n= 0 ; n< i; n++) { //--- если непустое значение, пишем в массив fract_mass[UP] цену фрактала if (handle[n]!= EMPTY_VALUE ) { UP++; fract_mass[UP] = handle[n]; } } } //+------------------------------------------------------------------+ Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5 2021.02.13www.mql5.com MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций Kira27 2021.02.13 19:09 #12892 약간 조정하면 51.20까지 오류와 함께 충돌이 발생할 때까지 거의 정상적으로 작동합니다. 배열 기능(BRN, W1)이 범위를 벗어남 //+------------------------------------------------------------------+ //| Funct.mq5 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int UP; //Глобальная переменная //_____________________________________Массивы для Handleлов____________________________________ double HandleFractalDown_W1[],HandleFractalUP_W1[]; // одномерный динамический массив //_____________________________________Массивы для фракталов____________________________________ double FractalDown_W1[],FractalUP_W1[]; // одномерный динамический массив //----------------------------------------------------------------------------------------------- int Fractal_W1= iFractals ( Symbol (), PERIOD_W1 ); //Хендл индикатора //---------------------------------------------------------------------- void OnStart () { CopyBuffer (Fractal_W1, 0 , TimeCurrent (), Bars ( Symbol (), PERIOD_W1 ),HandleFractalUP_W1); // заполнение масива FractalUp[] верхними фракталами на дневном графике CopyBuffer (Fractal_W1, 1 , TimeCurrent (), Bars ( Symbol (), PERIOD_W1 ),HandleFractalDown_W1); // заполнение масива FractalUp[] нижними фракталами на дневном графике //--- индексация как в таймсериях ArraySetAsSeries (HandleFractalUP_W1, true ); //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии ArraySetAsSeries (HandleFractalDown_W1, true ); //Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях. Search_Fractal( PERIOD_W1 , HandleFractalUP_W1, FractalUP_W1); //Пользовательская функция заполнения массива FractalUP_W1 значениями //верхних фракталов } //+------------------------------------------------------------------+ //+-----------------------Функция заполнения массива-------------------------------------------+ void Search_Fractal( ENUM_TIMEFRAMES period, double &handle[], double &fract_mass[]) { UP = 0 ; //Глобальная переменная int i= Bars ( Symbol (),period); //Колличество баров на W1 графике for ( int n= 0 ; n< i; n++) { //--- если непустое значение, пишем в массив fract_mass[UP] цену фрактала if (handle[n]!= EMPTY_VALUE ) { UP++; fract_mass[UP] = handle[n]; Alert ( "Frakt= " ,fract_mass[UP]); } } } //+------------------------------------------------------------------+ 무엇이 될 수 있습니까? Vitaly Muzichenko 2021.02.13 19:47 #12893 Kira27 : 약간 조정하면 51.20까지 오류와 함께 충돌이 발생할 때까지 거의 정상적으로 작동합니다. 배열 기능(BRN, W1)이 범위를 벗어남 무엇이 될 수 있습니까? 이것을 시도하십시오. 배열 크기가 설정되어 있지 않습니다. void Search_Fractal( ENUM_TIMEFRAMES period, double &handle[], double &fract_mass[]) { UP = 0 ; //Глобальная переменная int i= Bars ( Symbol (),period); //Колличество баров на W1 графике ArrayResize (fract_mass,i+ 1 ); for ( int n= 0 ; n< i; n++) { //--- если непустое значение, пишем в массив fract_mass[UP] цену фрактала if (handle[n]!= EMPTY_VALUE ) { UP++; fract_mass[UP] = handle[n]; Alert ( "Frakt= " ,fract_mass[UP]); } } } 일반적으로 이것은 최상의 솔루션이 아닙니다. Kira27 2021.02.13 19:48 #12894 Kira27 : 약간 조정하면 51.20까지 오류와 함께 충돌이 발생할 때까지 거의 정상적으로 작동합니다. 배열 기능(BRN, W1)이 범위를 벗어남 무엇이 될 수 있습니까? 충돌 문제를 해결한 라인 ArrayResize (handle,i, 0 ); //*------Строчка решившая проблему //+-----------------------Функция заполнения массива-------------------------------------------+ void Search_Fractal( ENUM_TIMEFRAMES period, double &handle[], double &fract_mass[]) { UP = 0 ; //Глобальная переменная int i= Bars ( Symbol (),period); //Колличество баров на W1 графике //*************************** ArrayResize (handle,i, 0 ); //*------Строчка решившая проблему //*************************** for ( int n= 0 ; n< i; n++) { //--- если непустое значение, пишем в массив fract_mass[UP] цену фрактала if (handle[n]!= EMPTY_VALUE ) { UP++; fract_mass[UP] = handle[n]; Alert ( "Frakt= " ,fract_mass[UP]); } } } //+------------------------------------------------------------------+ 지금 바로? 어렵지 않다면 수정합니다. Vitaly Muzichenko 2021.02.13 19:52 #12895 Kira27 : 약간 조정하면 51.20까지 오류와 함께 충돌이 발생할 때까지 거의 정상적으로 작동합니다. 배열 기능(BRN, W1)이 범위를 벗어남 무엇이 될 수 있습니까? 동시에 HandleFractalUP_W 1 배열에 특정 개수의 요소를 복사하지만 정확히 몇 개를 제어할 수는 없습니다. 다음으로 int i=Bars(Symbol(),period); //W1 차트의 막대 수 결과적으로 다시 array 에서 벗어나지 만 이미 handle[n] 에 있습니다. 채우는 논리로 조금 이해하고 서두르지 마십시오. ---- 키라27 : 충돌 문제를 해결한 라인 지금 바로? 어렵지 않다면 수정합니다. 그래서 모든 것이 까다 롭지 만 성공할 것입니다. Kira27 2021.02.13 19:58 #12896 Kira27 : 충돌 문제를 해결한 라인 지금 바로? 어렵지 않다면 수정합니다. 주간 차트 창에는 막대보다 프랙탈이 적고 배열이 프랙탈 가격 값으로 채워지면 90셀만 채워지고 나머지 메모리 마크업은 중복됩니다. 먼저 프랙탈 수를 계산한 다음 ArrayResize를 적용하여 메모리를 예약해야 합니까? Kira27 2021.02.14 10:05 #12897 Vitaly Muzichenko : 동시에 HandleFractalUP_W 1 배열에 특정 개수의 요소를 복사하지만 정확히 몇 개를 제어할 수는 없습니다. 다음으로 int i=Bars(Symbol(),period); //W1 차트의 막대 수 결과적으로 다시 array 에서 벗어나지 만 이미 handle[n] 에 있습니다. 채우는 논리로 조금 이해하고 서두르지 마십시오. ---- 그래서 모든 것이 까다 롭지 만 성공할 것입니다. 감사해요!!! seleand 2021.02.15 06:09 #12898 좋은 오후에요 여러분. 볼륨 기록을 가져올 수 없는 이유를 알아낼 수 있도록 도와주세요. 2가지 방법으로 해보았습니다. 첫 번째 방법: MqlRates mrate5[]; if(CopyRates(_Symbol,PERIOD_M5,1,bars_used,mrate5)<0) { Alert("М5에 대한 기록 데이터 복사 오류 - 오류:",GetLastError(),"!!"); 반품; } for (int i=0;i<bars_used;i++) { 인쇄(mrate5[i].real_volume) } 두 번째 방법: 긴 볼륨5[]; if(CopyRealVolume(_Symbol,PERIOD_M5,1,bars_used,volumes5)<0) { Alert("М5의 볼륨 복사 오류 - 오류:",GetLastError(),"!!"); 반품; } for (int i=0;i<bars_used;i++) { 인쇄(volumes5[i]) } 두 경우 모두 볼륨 배열에는 항상 0만 포함됩니다. 의미있는 정보는 단순히 얻을 수 없습니다 ... Questions from Beginners MQL5 [경고, 주제 닫힘!] 포럼을 CryptEncode Alexey Viktorov 2021.02.15 06:16 #12899 seleand : 좋은 오후에요 여러분. 볼륨 기록을 가져올 수 없는 이유를 알아낼 수 있도록 도와주세요. 2가지 방법으로 해보았습니다. 첫 번째 방법: MqlRates mrate5[]; if ( CopyRates ( _Symbol , PERIOD_M5 , 1 ,bars_used,mrate5)< 0 ) { Alert ( "Ошибка копирования исторических данных для М5 - ошибка:" , GetLastError (), "!!" ); return ; } for ( int i= 0 ;i<bars_used;i++) { Print (mrate5[i].real_volume) } 두 번째 방법: long volumes5[]; if ( CopyRealVolume ( _Symbol , PERIOD_M5 , 1 ,bars_used,volumes5)< 0 ) { Alert ( "Ошибка копирования объемов для М5 - ошибка:" , GetLastError (), "!!" ); return ; } for ( int i= 0 ;i<bars_used;i++) { Print (volumes5[i]) } 두 경우 모두 볼륨 배열에는 항상 0만 포함됩니다. 의미있는 정보는 단순히 얻을 수 없습니다 ... 코딩을 배우십시오. Forex에는 단어의 실제 볼륨이 전혀 없습니다. seleand 2021.02.15 06:24 #12900 고맙습니다. 틱 볼륨 이 있다는 것을 올바르게 이해하고 있습니까? 예를 들어 Finam 웹 사이트에서 Forex의 시세 이력을 다운로드했을 때 시가, 고가, 저가, 종가 외에도 vol. 이 볼륨이 정확히 무엇인지 지정하지 않고. 이것은 틱 볼륨입니까? 1...128312841285128612871288128912901291129212931294129512961297...1503 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
---
추신이지만 일반적으로 예를 들어 동일한 어레이에서 많은 것들이 잘못되었습니다.
도움과 팁 감사합니다!!! 이것이 컴파일 방법입니다
배열 기능(BRN, W1)이 범위를 벗어남
무엇이 될 수 있습니까?약간 조정하면 51.20까지 오류와 함께 충돌이 발생할 때까지 거의 정상적으로 작동합니다.
배열 기능(BRN, W1)이 범위를 벗어남
무엇이 될 수 있습니까?이것을 시도하십시오. 배열 크기가 설정되어 있지 않습니다.
일반적으로 이것은 최상의 솔루션이 아닙니다.
약간 조정하면 51.20까지 오류와 함께 충돌이 발생할 때까지 거의 정상적으로 작동합니다.
배열 기능(BRN, W1)이 범위를 벗어남
무엇이 될 수 있습니까?충돌 문제를 해결한 라인
지금 바로? 어렵지 않다면 수정합니다.
약간 조정하면 51.20까지 오류와 함께 충돌이 발생할 때까지 거의 정상적으로 작동합니다.
배열 기능(BRN, W1)이 범위를 벗어남
무엇이 될 수 있습니까?동시에 HandleFractalUP_W 1 배열에 특정 개수의 요소를 복사하지만 정확히 몇 개를 제어할 수는 없습니다.
다음으로 int i=Bars(Symbol(),period); //W1 차트의 막대 수
결과적으로 다시 array 에서 벗어나지 만 이미 handle[n] 에 있습니다.
채우는 논리로 조금 이해하고 서두르지 마십시오.
----
충돌 문제를 해결한 라인
지금 바로? 어렵지 않다면 수정합니다.
그래서 모든 것이 까다 롭지 만 성공할 것입니다.
충돌 문제를 해결한 라인
지금 바로? 어렵지 않다면 수정합니다.
주간 차트 창에는 막대보다 프랙탈이 적고 배열이 프랙탈 가격 값으로 채워지면 90셀만 채워지고 나머지 메모리 마크업은 중복됩니다. 먼저 프랙탈 수를 계산한 다음 ArrayResize를 적용하여 메모리를 예약해야 합니까?
동시에 HandleFractalUP_W 1 배열에 특정 개수의 요소를 복사하지만 정확히 몇 개를 제어할 수는 없습니다.
다음으로 int i=Bars(Symbol(),period); //W1 차트의 막대 수
결과적으로 다시 array 에서 벗어나지 만 이미 handle[n] 에 있습니다.
채우는 논리로 조금 이해하고 서두르지 마십시오.
----
그래서 모든 것이 까다 롭지 만 성공할 것입니다.
감사해요!!!
좋은 오후에요 여러분. 볼륨 기록을 가져올 수 없는 이유를 알아낼 수 있도록 도와주세요. 2가지 방법으로 해보았습니다.
첫 번째 방법:
MqlRates mrate5[];
if(CopyRates(_Symbol,PERIOD_M5,1,bars_used,mrate5)<0)
{
Alert("М5에 대한 기록 데이터 복사 오류 - 오류:",GetLastError(),"!!");
반품;
}
for (int i=0;i<bars_used;i++) {
인쇄(mrate5[i].real_volume)
}
두 번째 방법:
긴 볼륨5[];
if(CopyRealVolume(_Symbol,PERIOD_M5,1,bars_used,volumes5)<0)
{
Alert("М5의 볼륨 복사 오류 - 오류:",GetLastError(),"!!");
반품;
}
for (int i=0;i<bars_used;i++) {
인쇄(volumes5[i])
}
두 경우 모두 볼륨 배열에는 항상 0만 포함됩니다. 의미있는 정보는 단순히 얻을 수 없습니다 ...
좋은 오후에요 여러분. 볼륨 기록을 가져올 수 없는 이유를 알아낼 수 있도록 도와주세요. 2가지 방법으로 해보았습니다.
첫 번째 방법:
두 번째 방법:
두 경우 모두 볼륨 배열에는 항상 0만 포함됩니다. 의미있는 정보는 단순히 얻을 수 없습니다 ...
고맙습니다. 틱 볼륨 이 있다는 것을 올바르게 이해하고 있습니까?
예를 들어 Finam 웹 사이트에서 Forex의 시세 이력을 다운로드했을 때 시가, 고가, 저가, 종가 외에도 vol. 이 볼륨이 정확히 무엇인지 지정하지 않고. 이것은 틱 볼륨입니까?