Leo59 : 테이블(*.csv)의 데이터를 3차원 정적 배열로 밀어 넣는 방법을 설명하십시오. 테이블의 첫 번째 열 - 배열의 첫 번째 차원에 대한 인덱스, 두 번째 - 배열의 두 번째 차원에 의한 인덱스, 세 번째 및 추가 열 - 배열의 세 번째 차원에 따른 값 자체.
다음에 쓰여진 것을 잊어 버리십시오. 전역 변수 수준에서 적절한 유형의 배열을 선언하십시오. arr[][][3] 두 번째 차원의 차원을 직접 정의합니다.
void AAA()
{
int Handle; // Файловый описательstring File_Name = "AAA.csv" ; // Имя открываемого файлаstring str_1 = "" ; // 1 Номер индекса по первому измерениюstring str_2 = "" ; // 2 Номер индекса по второму измерениюstring str_3 = "" ; // 3 Значениеstring str_4 = "" ; // 4 Значениеstring str_5 = "" ; // 5 Значение
Handle= FileOpen (File_Name, FILE_READ , ";" ); // Открытие файлаwhile ( FileIsEnding (Handle)== false ) // До тех пор, пока файловый...
{ // ...указатель не в конце файла// Чтение данных из строки до файлового разделителя
str_1 = FileReadString (Handle); // 1 Номер индекса по первому измерению
str_2 = FileReadString (Handle); // 2 Номер индекса по второму измерению
str_3 = FileReadString (Handle); // 3 Значение
str_4 = FileReadString (Handle); // 4 Значение
str_5 = FileReadString (Handle); // 5 Значение
// А здесь заполнение массива
arr[str_1][str_2][0] = str_3;
arr[str_1][str_2][1] = str_3;
arr[str_1][str_2][2] = str_4;
if ( FileIsEnding (Handle)== true ) // Файловый указатель в конце файлаbreak ; // Выход из цикла чтения
????????????????????????????????????????????????????
}
FileClose (Handle); // Закрываем файлreturn ; // Выход из функции
}
모든 객체를 삭제할 것이라는 사실. Advisor/indicator에 속하지 않는 것들도 마찬가지입니다. 그리고 사람이 차트에서 오랫동안 자신의 마크업을 만들어 왔다면? 그런 다음 타사 표시기에서 이 코드를 실행했습니까? 그는 이 좋은 코드의 작성자에 대해 나중에 어떻게 그리고 무엇을 말할 것입니까?
실제로 모든 것은 다음 명령으로 시작되었습니다. ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE);
그런 다음 다른 옵션이 ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE)을 시도했습니다.
친애하는 읽기 도움말 :)
지정된 명령을 사용하는 칠면조가 Alfa-Forex에서 올바르게 작동하는 이유를 이해할 수 없지만 Saxo Bank에서 개체가 더 이상 삭제되지 않습니다.
그런 다음 스크립트에 대한 실험이 시작되었고 스크립트는 모든 터미널에서 개체 삭제를 중지했습니다.
첫 번째는 기본 차트 창에서 검색하고 두 번째는 모두 검색합니다. 결론 - 1) 창 인덱스를 사용하여 함수가 삭제된 개체를 찾기 위해 거치는 개체 수를 줄입니다. 2) 이름으로 삭제하는 경우(이름의 일부, 한 mql 프로그램은 일반적으로 일종의 개인 접두사로 객체의 이름을 지정하기 때문에) 마지막(생성 시 가장 오래된) 객체에서 검색 주기를 사용합니다.
실제로 객체를 삭제하는 데 문제가 있지만 객체가 많고 0에서 ObjectTotal()-1까지 반복하면 객체의 일부가 삭제되지 않습니다. 개발에 대한 질문, 아마도 할당된 버퍼 메모리가 충분하지 않을 수 있습니다.
예시:
void DeleteObjects( int chartID, string prefix_obj_name) {
string obj_nm= "" ;
int obj= ObjectsTotal ();
// for(int k=0; k<obj; k++){ // неправильный вариант
for ( int k=obj- 1 ; k>= 0 ; k--){
obj_nm = ObjectName (k);
if ( StringFind (obj_nm,prefix_obj_name)>= 0 )
{
ResetLastError ();
if (! ObjectDelete (chartID,obj_nm))
{
Print ( __FUNCTION__ ,
": не удалось удалить объект " ,obj_nm, " Код ошибки = " ,GetLastError());
}
}
}
}
// prefix_obj_name = "Obj_MQLname_"; Имена объектов создаваемых программой "Obj_MQLname_Close_"+DoubleToStr(Close[0],Digits), "Obj_MQLname_Open_"+DoubleToStr(Open[0],Digits) и т.д.
말해 주세요. Win 8은 MT 4 및 MT 5와 호환됩니까? 나는 양귀비를 가지고 있어서 어떤 OS로 컴퓨터를 살지 궁금합니다. 한 사람은 MT 4가 8개 작업 중임을 보여주는 스크린샷을 보여주기까지 했습니다. 그러나 일부 동지들은 완전한 호환성이 없다고 주장하므로 명확히해야합니다 ... 감사합니다.
테이블(*.csv)의 데이터를 3차원 정적 배열로 밀어 넣는 방법을 설명하십시오.
테이블의 첫 번째 열 - 배열의 첫 번째 차원에 대한 인덱스,
두 번째 - 배열의 두 번째 차원에 의한 인덱스,
세 번째 및 추가 열 - 배열의 세 번째 차원에 따른 값 자체.
다음에 쓰여진 것을 잊어 버리십시오. 전역 변수 수준에서 적절한 유형의 배열을 선언하십시오. arr[][][3] 두 번째 차원의 차원을 직접 정의합니다.
글쎄, 그런 것. 그리고 아마도 문자열 인덱스를 정수로 변환해야 할 것입니다.
다음에 쓰여진 것을 잊어 버리십시오. 전역 변수 수준에서 적절한 유형의 배열을 선언하십시오. arr[][][3] 두 번째 차원의 차원을 직접 정의합니다.
글쎄, 그런 것. 그리고 아마도 문자열 인덱스를 정수로 변환해야 할 것입니다.
다시 한번 감사합니다!!!!!
어리석은 옵션을 조언 할 필요가 없습니다. 이 명령은 일반적으로 차트에서 모든 개체를 제거합니다.
당신과 동의하지 않습니다!
질문이 있었습니다.
예를 들어 OBJ_ARROW_RIGHT_PRICE와 같은 모든 개체를 삭제하는 방법은 무엇입니까?
결정:
그리고 왜 어리석은 결정입니까?
당신과 동의하지 않습니다!
질문이 있었습니다.
결정:
그리고 왜 어리석은 결정입니까?
그는 이 좋은 코드의 작성자에 대해 나중에 어떻게 그리고 무엇을 말할 것입니까?
착한 사람들. 모두가 생각하는 대로 말할 것이다
착한 사람들. 모두가 생각하는 대로 말할 것이다
당신과 동의하지 않습니다!
질문이 있었습니다.
결정:
그리고 왜 어리석은 결정입니까?
실제로 모든 것은 다음 명령으로 시작되었습니다. ObjectsDeleteAll ( 0 , OBJ_ARROW_RIGHT_PRICE );
그런 다음 다른 옵션이 ObjectsDeleteAll ( OBJ_ARROW_RIGHT_PRICE )을 시도했습니다.
친애하는 읽기 도움말 :)
지정된 명령을 사용하는 칠면조가 Alfa-Forex에서 올바르게 작동하는 이유를 이해할 수 없지만 Saxo Bank에서 개체가 더 이상 삭제되지 않습니다.
그런 다음 스크립트에 대한 실험이 시작되었고 스크립트는 모든 터미널에서 개체 삭제를 중지했습니다.
모두에게 경례!
이러한 테스터의 기이함이 관찰된다.
주문 152, 153, 158 및 159를 마감한 후 잘못된 이익을 얻습니다(테스터가 잘못 계산한 것처럼). 테이블에서 볼 수 있듯이 주문은 몇 달 동안 "중단"되었습니다. 게다가 드로우다운은 표에 제대로 반영되어 있는데 어떤 이유에서인지 차트에는 보이지 않습니다.
무엇이 잘못될 수 있습니까?
EURUSD(유로 vs USD)
15분 (M15) 2012.01.01 23:00 - 2014.03.07 22:59 (2012.01.01 - 2014.03.08)
1000.00
확산
현재 (12)
1418.73
총 이윤
2045.28
총 손실
-626.55
3.26
우승 기대
2.41
419.34
최대 드로다운
834.91 (58.98%)
상대적인 하락
58.98% (834.91)
아니요.
시간
유형
주문하다
용량
가격
S/L
T/P
이익
균형
372
2012.04.30 11:00
구입
151
0.01
1.32193
0.00000
1.32472
373
2012.05.01 04:45
t/p
151
0.01
1.3247234
0.00000
1.32472
2.75
1402.41
374
2012.05.01 15:00
구입
152
0.01
1.32262
0.00000
1.32713
375
2012.05.02 07:45
t/p
142
0.01
1.31949
0.00000
1.31949
-4.40
1398.00
376
2012.05.02 07:45
t/p
143
0.01
1.31949
0.00000
1.31949
0.95
1398.96
377
2012.05.02 07:45
t/p
149
0.02
1.31949
0.00000
1.31949
12.49
1411.44
378
2012.05.02 08:45
구입
153
0.01
1.31711
0.00000
1.32237
379
2012.05.02 08:45
수정하다
152
0.01
1.32262
0.00000
1.32237
380
2012.05.02 15:15
팔다
154
0.01
1.31483
0.00000
1.31352
381
2012.05.03 07:00
t/p
154
0.01
1.3135174
0.00000
1.31352
1.18
1412.63
382
2012.05.03 08:45
팔다
155
0.01
1.31454
0.00000
1.31425
383
2012.05.03 09:00
t/p
155
0.01
1.3142483
0.00000
1.31425
0.29
1412.92
384
2012.05.03 13:45
팔다
156
0.01
1.31671
0.00000
1.31256
385
2012.05.04 10:45
t/p
156
0.01
1.3125581
0.00000
1.31256
4.11
1417.02
386
2012.05.04 14:15
팔다
157
0.01
1.31527
0.00000
1.31293
387
2012.05.04 14:45
t/p
157
0.01
1.3129331
0.00000
1.31293
2.34
1419.36
388
2012.05.04 16:15
구입
158
0.02
1.30997
0.00000
1.31742
389
2012.05.04 16:15
수정하다
152
0.01
1.32262
0.00000
1.31742
390
2012.05.04 16:15
수정하다
153
0.01
1.31711
0.00000
1.31742
391
2012.05.06 23:15
구입
159
0.04
1.29845
0.00000
1.30918
392
2012.05.06 23:15
수정하다
152
0.01
1.32262
0.00000
1.30918
393
2012.05.06 23:15
수정하다
153
0.01
1.31711
0.00000
1.30918
394
2012.05.06 23:15
수정하다
158
0.02
1.30997
0.00000
1.30918
395
2012.09.14 10:45
t/p
152
0.01
1.30918
0.00000
1.30918
-18.67
1400.70
396
2012.09.14 10:45
t/p
153
0.01
1.30918
0.00000
1.30918
-13.12
1387.58
397
2012.09.14 10:45
t/p
158
0.02
1.30918
0.00000
1.30918
-11.65
1375.93
398
2012.09.14 10:45
t/p
159
0.04
1.30918
0.00000
1.30918
22.77
1398.70
실제로 모든 것은 다음 명령으로 시작되었습니다. ObjectsDeleteAll ( 0 , OBJ_ARROW_RIGHT_PRICE );
그런 다음 다른 옵션이 ObjectsDeleteAll ( OBJ_ARROW_RIGHT_PRICE )을 시도했습니다.
친애하는 읽기 도움말 :)
지정된 명령을 사용하는 칠면조가 Alfa-Forex에서 올바르게 작동하는 이유를 이해할 수 없지만 Saxo Bank에서 개체가 더 이상 삭제되지 않습니다.
그런 다음 스크립트에 대한 실험이 시작되었고 스크립트는 모든 터미널에서 개체 삭제를 중지했습니다.
첫 번째는 기본 차트 창에서 검색하고 두 번째는 모두 검색합니다. 결론 - 1) 창 인덱스를 사용하여 함수가 삭제된 개체를 찾기 위해 거치는 개체 수를 줄입니다. 2) 이름으로 삭제하는 경우(이름의 일부, 한 mql 프로그램은 일반적으로 일종의 개인 접두사로 객체의 이름을 지정하기 때문에) 마지막(생성 시 가장 오래된) 객체에서 검색 주기를 사용합니다.
실제로 객체를 삭제하는 데 문제가 있지만 객체가 많고 0에서 ObjectTotal()-1까지 반복하면 객체의 일부가 삭제되지 않습니다. 개발에 대한 질문, 아마도 할당된 버퍼 메모리가 충분하지 않을 수 있습니다.
예시: