long currChart= ChartFirst ();
int i= 0 ;
while (currChart>= 0 )
{
Print (i, ChartSymbol (currChart), " ID =" ,currChart);
currChart= ChartNext (currChart); // на основании предыдущего получим новый график
i++; // не забудем увеличить счетчик
}
double GetExtremumZigZagPriceHigh( string symbol= "" , ENUM_TIMEFRAMES timeframe= 0 , int extremum_number= 0 ) //,int depth=12,int deviation=5,int backstep=3)
{
if (symbol== "" ) //Если symbol = "" , то..
symbol= Symbol (); //Присвоить переменной symbol значение текущего символа на графике.//Объявить необходимые переменные:double price[]; //Цена экстремума выбранная из массива таймсерии.//datetime time[];int count; //Счетчик цикла.int bars_quantity= 1000 ; //Количество баров на графике.int extremum_count= 0 ; //Счетчик экстремумов.ArraySetAsSeries (price, true ); //Устанавить флаг, чтобы индексация массива производилась как в таймсериях.CopyBuffer (handle, 1 , 0 ,bars_quantity,price); //Скопировать в динамический массив price[] цены указанного количества баров.for (count= 1 ; count<bars_quantity; count++) //Запустить цикл, который будет бежать по каждому бару.
{
if (price[count]!= 0 ) //Если Цена Зигзага есть, то есть не равна нулю, то..
{
extremum_count++; //Увеличить счетчик экстремумов на одну единицу.if (extremum_count>extremum_number) //Если счетчик экстремумов превысил значение указанного номера экстремума, то..return (price[count]); //Вернуть эту цену.
}
}
//Print("GetExtremumZigZagPrice(): Экстремум ЗигЗага ",extremum_number," не найден"); //А до тех пор, пока ЗигЗаг не показывает цену,return ( 0 ); //Печатать Print, и возвращать ноль.
}
표시기에서 데이터를 요청할 때 요청된 시계열이 아직 빌드되지 않았거나 서버에서 다운로드해야 하는 경우 함수는 즉시 -1을 반환하지만 로드/빌드 프로세스 자체는 시작됩니다.
Expert Advisor 또는 스크립트에서 데이터를 요청할 때 터미널에 이 데이터가 로컬에 없으면 서버에서 다운로드가 시작되고 로컬 히스토리에서 데이터를 빌드할 수 있는 경우 필요한 시계열 구성이 시작되지만 아직 준비되지 않았습니다. 이 함수는 시간 초과가 만료될 때까지 준비될 데이터의 양을 반환합니다.
설명서와 샘플 코드를 주의 깊게 읽으십시오. 주기가 잘못되었습니다.
for 및 while 루프가 같은 방식으로 작동한다고 말하지 마십시오. 문제는 이것이 아니라 선택된 라인에 있습니다.고마워, 나는 이것을 읽었다
모든 것이 내 코드에서 작동하며 MT4, 8개의 차트의 결함일 뿐이지만 7(
할 것 같지 않은. 내가 플랫폼에서 몇 번이나 죄를 지었지만, 나는 항상 나 자신이 잘못된 것으로 판명되었습니다.
어쩌면 이것을 시도
어쩌면 이것을 시도
똑같다
인쇄가 다른 이유는 무엇입니까? 다른 코드?
몇 개의 차트가 열려 있습니까? 기호, 마침표.
확장/축소?고마워, 나는 이것을 읽었다
모든 것이 내 코드에서 작동하며 MT4, 8개의 차트의 결함일 뿐이지만 7(
나는 아주 나쁘게 읽었다. 아마도 학교에서 강요하는 것처럼. 읽은 것 같지만 머리에 아무것도 꽂혀 있지 않습니다.
여기에서 예를 들어 보십시오 . 사실, 거기에는 목적이 다르지만 여전히 열려 있는 차트의 열거는 이 열거의 목적에 따라 변경되지 않습니다.
또는 여기에 코드가 있습니다.
인쇄가 다른 이유는 무엇입니까? 다른 코드?
몇 개의 차트가 열려 있습니까? 기호, 마침표.
확장/축소?나는 아주 나쁘게 읽었다. 아마도 학교에서 강요하는 것처럼. 읽은 것 같지만 머리에 아무것도 꽂혀 있지 않습니다.
여기에서 예를 들어 보십시오 . 사실, 거기에는 목적이 다르지만 여전히 열려 있는 차트의 열거는 이 열거의 목적에 따라 변경되지 않습니다.
또는 여기에 코드가 있습니다.
질문이 해결되었습니다. 터미널을 다시 시작하면 문제가 해결되었습니다.
이 코드에서 범위를 벗어나는 배열을 피하는 방법을 알려주십시오.
이 곳에서 욕
CopyBuffer
Возвращаемое значение
복사된 배열 요소의 수 또는 오류 시 -1입니다.
메모
표시기에서 데이터를 요청할 때 요청된 시계열이 아직 빌드되지 않았거나 서버에서 다운로드해야 하는 경우 함수는 즉시 -1을 반환하지만 로드/빌드 프로세스 자체는 시작됩니다.
Expert Advisor 또는 스크립트에서 데이터를 요청할 때 터미널에 이 데이터가 로컬에 없으면 서버에서 다운로드가 시작되고 로컬 히스토리에서 데이터를 빌드할 수 있는 경우 필요한 시계열 구성이 시작되지만 아직 준비되지 않았습니다. 이 함수는 시간 초과가 만료될 때까지 준비될 데이터의 양을 반환합니다.
당신은 확인해야합니다, 당신이 거기에 bar_quantity가 있다는 사실이 아닙니다