또 다른 질문: 현재 양초를 비교할 필요가 없다면 0이 아닌 1부터 계정을 시작해야 하지 않습니까?
또는 여기에서 0은 양초 1, 1은 양초 2 등이라는 것을 이해해야 합니까?
여기서 0은 배열의 시작입니다. 그리고 배열에서 우리는 "to"가 아니라 첫 번째부터 ...까지, 그러나 우리가 필요한 양만큼 양초를 씁니다.
int copied= CopyRates ( Symbol (), PERIOD_CURRENT , 1 ,copy_bars,array);
1은 복사를 시작할 촛불의 번호이고 copy_bars는 복사할 촛불의 번호입니다.
따라서 array[] 배열에서 인덱스가 0인 셀에 필요한 양초(1 또는 1+copy_bars-1)가 있습니다. array[] 배열의 인덱싱 방향에 따라 (ArraySetAsSeries() 는 인덱싱 방향을 설정합니다 . 이는 ArrayGetAsSeries(), ArrayIsSeries()를 사용하여 확인할 수 있습니다.
여기서 0은 배열의 시작입니다. 그리고 배열에서 우리는 "to"가 아니라 첫 번째부터 ...까지, 그러나 우리가 필요한 양만큼 양초를 씁니다.
1은 복사를 시작할 촛불의 번호이고 copy_bars는 복사할 촛불의 번호입니다.
따라서 array[] 배열에서 인덱스가 0인 셀에 필요한 양초(1 또는 1+copy_bars-1)가 있습니다. array[] 배열의 인덱싱 방향에 따라 (ArraySetAsSeries() 는 인덱싱 방향을 설정합니다 . 이는 ArrayGetAsSeries(), ArrayIsSeries()를 사용하여 확인할 수 있습니다.
아, 프로그래밍이군요. 숲속으로 더....
나는 먼저 Alert를 통해 그것이 무엇을 제공하는지 확인했습니다. 그 반대가 사실로 밝혀졌습니다. 현재 촛불에 가장 가까운 촛불이 최대 수를 가집니다.
그런 다음 다음과 같이 확인했습니다.
부울 시리즈=ArrayIsSeries(dataCandle);
경고(시리즈);
스크립트가 "거짓"을 반환했습니다.
내 논리에 따르면 거짓이면 잘못된 끝에서 나온 것이고 참은 필요한 것에서 나온 것입니다.
나는 썼다:
ArraySetAsSeries(dataCandle, true);//방향 전환
부울 시리즈=ArrayIsSeries(dataCandle);// 무슨 일이 있었는지 다시 확인
나는 먼저 Alert를 통해 그것이 무엇을 제공하는지 확인했습니다. 그 반대가 사실로 밝혀졌습니다. 현재 촛불에 가장 가까운 촛불이 최대 수를 가집니다.
그런 다음 다음과 같이 확인했습니다.
부울 시리즈=ArrayIsSeries(dataCandle);
경고(시리즈);
스크립트가 "거짓"을 반환했습니다.
내 논리에 따르면 거짓이면 잘못된 끝에서 나온 것이고 참은 필요한 것에서 나온 것입니다.
나는 썼다:
ArraySetAsSeries(dataCandle, true);//방향 전환
부울 시리즈=ArrayIsSeries(dataCandle);// 무슨 일이 일어났는지 다시 확인
경고(시리즈);// 결과를 화면에 표시합니다.
그러나 여전히 나는 "거짓"을 얻습니다.
내 잼은 무엇입니까?
dataCandles는 구조체입니다. 우리가 기록에서 촛불 자체를 작성하는 배열 - array[]. 따라서 인덱싱이 차트의 양초 인덱싱과 일치하도록 시계열로 수행해야 합니다. 즉, array[] 배열의 0 셀은 현재 날짜에 가장 가까운 양초에 해당합니다.
즉, 1. 양초를 array[] 배열에 복사하고, 2. 그것을 시계열로 만든 다음, 그 값을 구조로 읽어옵니다.
array[] 배열 없이도 가능합니다. 차트에서 직접 구조로 데이터를 쓰는 것이 가능하지만 5개와의 호환성을 위해 이것을 제안했습니다. high[i], low를 사용하여 표시기에서만 직접 복사할 수 있습니다. [i] 및 기타 데이터를 사용하지만 스크립트 또는 Expert Advisor에서 원하는 히스토리 세그먼트를 먼저 어레이에 복사해야 합니다.
글쎄, 나는이 모든 것을 함수에 넣고 필요할 때 그것을 호출 할 것입니다 - 적어도 모든 틱 (정당화되고 필요한 경우), 적어도 새 촛불이 열릴 때 - 한 시간에 한 번, 예를 들어 우리가 일하는 경우 H1에.
기능이 있어서 당연히 편리합니다. 코드가 무엇인지 알아 냈습니다. 이제 명확해졌습니다. 내가 원하는 목표에 어떻게 가져갈지 고민하고 필요한 데이터를 언제, 어떤 단계에서 추출할지 이해하겠습니다.
바로 '무모함의 극치'라면 금지다.
WinAPI는 MQL의 가능성을 크게 확장합니다. 그리고 dll 없이도 어리석은 일을 할 수 있습니다.
다음은 클립보드에 문자열을 전달하는 예입니다.
훌륭하고 의견이 있습니다.
덕분에.
질문 하나 더.
주어진 좌표에서 "마우스" 클릭을 에뮬레이션할 수 있습니까?
훌륭하고 의견이 있습니다.
덕분에.
질문 하나 더.
주어진 좌표에서 "마우스" 클릭을 에뮬레이션할 수 있습니까?
훌륭하고 의견이 있습니다.
덕분에.
질문 하나 더.
주어진 좌표에서 "마우스" 클릭을 에뮬레이션할 수 있습니까?
할 수 있다.
글쎄, 나는이 모든 것을 함수에 넣고 필요할 때 그것을 호출 할 것입니다 - 적어도 모든 틱 (정당화되고 필요한 경우), 적어도 새 촛불이 열릴 때 - 한 시간에 한 번, 예를 들어 우리가 일하는 경우 H1에.
Artem, 나는 우리가 순환하는 경우: for(int i=0; i<copy_bars; i++) 및 중첩 for(int j=0; j<copy_bars; j++) , 여기서 if(j= =i) 계속된다는 것을 정확히 이해합니다. ; ,
그러면 이것은 계산이 병렬로 진행되고 대략 5개의 양초가 있는 경우 비교가 진행됨을 의미합니다.
1 대 1 - 버리십시오.
1은 2, 1은 3, 1은 4, 1은 5입니다.
다음과 같은 위치에서 주기가 시작됩니다.
1위에서 2위, 3위에서 2위, 4위에서 2위, 5위에서 2위.
등.
똑같을까요?
Artem, 나는 우리가 순환하는 경우: for(int i=0; i<copy_bars; i++) 및 중첩 for(int j=0; j<copy_bars; j++) , 여기서 if(j= =i) 계속된다는 것을 정확히 이해합니다. ; ,
그러면 이것은 계산이 병렬로 진행되고 대략 5개의 양초가 있는 경우 비교가 진행됨을 의미합니다.
1 대 1 - 버리십시오.
2위부터 1위, 3위부터 1위, 4위부터 1위, 5위부터 1위.
다음과 같은 위치에서 주기가 시작됩니다.
1위에서 2위, 3위에서 2위, 4위에서 2위, 5위에서 2위.
등.
똑같을까요?
네.
또 다른 질문: 현재 양초를 비교할 필요가 없다면 0이 아닌 1부터 계정을 시작해야 하지 않습니까?
또는 여기에서 0은 양초 1, 1은 양초 2 등이라는 것을 이해해야 합니까?
또 다른 질문: 현재 양초를 비교할 필요가 없다면 0이 아닌 1부터 계정을 시작해야 하지 않습니까?
또는 여기에서 0은 양초 1, 1은 양초 2 등이라는 것을 이해해야 합니까?
여기서 0은 배열의 시작입니다. 그리고 배열에서 우리는 "to"가 아니라 첫 번째부터 ...까지, 그러나 우리가 필요한 양만큼 양초를 씁니다.
1은 복사를 시작할 촛불의 번호이고 copy_bars는 복사할 촛불의 번호입니다.
따라서 array[] 배열에서 인덱스가 0인 셀에 필요한 양초(1 또는 1+copy_bars-1)가 있습니다. array[] 배열의 인덱싱 방향에 따라 (ArraySetAsSeries() 는 인덱싱 방향을 설정합니다 . 이는 ArrayGetAsSeries(), ArrayIsSeries()를 사용하여 확인할 수 있습니다.
여기서 0은 배열의 시작입니다. 그리고 배열에서 우리는 "to"가 아니라 첫 번째부터 ...까지, 그러나 우리가 필요한 양만큼 양초를 씁니다.
1은 복사를 시작할 촛불의 번호이고 copy_bars는 복사할 촛불의 번호입니다.
따라서 array[] 배열에서 인덱스가 0인 셀에 필요한 양초(1 또는 1+copy_bars-1)가 있습니다. array[] 배열의 인덱싱 방향에 따라 (ArraySetAsSeries() 는 인덱싱 방향을 설정합니다 . 이는 ArrayGetAsSeries(), ArrayIsSeries()를 사용하여 확인할 수 있습니다.
아, 프로그래밍이군요. 숲속으로 더....
나는 먼저 Alert를 통해 그것이 무엇을 제공하는지 확인했습니다. 그 반대가 사실로 밝혀졌습니다. 현재 촛불에 가장 가까운 촛불이 최대 수를 가집니다.
그런 다음 다음과 같이 확인했습니다.
부울 시리즈=ArrayIsSeries(dataCandle);
경고(시리즈);
스크립트가 "거짓"을 반환했습니다.
내 논리에 따르면 거짓이면 잘못된 끝에서 나온 것이고 참은 필요한 것에서 나온 것입니다.
나는 썼다:
ArraySetAsSeries(dataCandle, true); //방향 전환
부울 시리즈=ArrayIsSeries(dataCandle); // 무슨 일이 있었는지 다시 확인
경고(시리즈); // 결과를 화면에 표시합니다.
그러나 그 후에도 나는 "거짓"을 얻습니다.
내 잼은 무엇입니까?
아, 프로그래밍이군요. 숲속으로 더....
나는 먼저 Alert를 통해 그것이 무엇을 제공하는지 확인했습니다. 그 반대가 사실로 밝혀졌습니다. 현재 촛불에 가장 가까운 촛불이 최대 수를 가집니다.
그런 다음 다음과 같이 확인했습니다.
부울 시리즈=ArrayIsSeries(dataCandle);
경고(시리즈);
스크립트가 "거짓"을 반환했습니다.
내 논리에 따르면 거짓이면 잘못된 끝에서 나온 것이고 참은 필요한 것에서 나온 것입니다.
나는 썼다:
ArraySetAsSeries(dataCandle, true); //방향 전환
부울 시리즈=ArrayIsSeries(dataCandle); // 무슨 일이 일어났는지 다시 확인
경고(시리즈); // 결과를 화면에 표시합니다.
그러나 여전히 나는 "거짓"을 얻습니다.
내 잼은 무엇입니까?
dataCandles는 구조체입니다. 우리가 기록에서 촛불 자체를 작성하는 배열 - array[]. 따라서 인덱싱이 차트의 양초 인덱싱과 일치하도록 시계열로 수행해야 합니다. 즉, array[] 배열의 0 셀은 현재 날짜에 가장 가까운 양초에 해당합니다.
즉, 1. 양초를 array[] 배열에 복사하고, 2. 그것을 시계열로 만든 다음, 그 값을 구조로 읽어옵니다.
array[] 배열 없이도 가능합니다. 차트에서 직접 구조로 데이터를 쓰는 것이 가능하지만 5개와의 호환성을 위해 이것을 제안했습니다. high[i], low를 사용하여 표시기에서만 직접 복사할 수 있습니다. [i] 및 기타 데이터를 사용하지만 스크립트 또는 Expert Advisor에서 원하는 히스토리 세그먼트를 먼저 어레이에 복사해야 합니다.