포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 535

 
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 ;                                                     // Выход из функции
   }

글쎄, 그런 것. 그리고 아마도 문자열 인덱스를 정수로 변환해야 할 것입니다.

 
AlexeyVik :

다음에 쓰여진 것을 잊어 버리십시오. 전역 변수 수준에서 적절한 유형의 배열을 선언하십시오. arr[][][3] 두 번째 차원의 차원을 직접 정의합니다.

글쎄, 그런 것. 그리고 아마도 문자열 인덱스를 정수로 변환해야 할 것입니다.


정말 감사합니다!!!! 두뇌가 끓을 때 - 당신은 "맹인"되고 단순하고 명백한 것을 보지 못합니다. 가장 흥미로운 점은 당신이 알고 있다는 것입니다. 해결책은 "세 개의 코펙처럼" 간단하지만, 슬프게도 당신의 눈앞에는 베일이 있습니다.
다시 한번 감사합니다!!!!!
 
artmedia70 :
어리석은 옵션을 조언 할 필요가 없습니다. 이 명령은 일반적으로 차트에서 모든 개체를 제거합니다.

당신과 동의하지 않습니다!

질문이 있었습니다.

예를 들어 OBJ_ARROW_RIGHT_PRICE와 같은 모든 개체를 삭제하는 방법은 무엇입니까?

결정:

 ObjectsDeleteAll ( 0 , OBJ_ARROW_RIGHT_PRICE ); //удалить все объекты типа "Правая ценовая метка" в главном окне графика

그리고 왜 어리석은 결정입니까?

 
isn-88 :

당신과 동의하지 않습니다!

질문이 있었습니다.

결정:

그리고 왜 어리석은 결정입니까?

모든 객체를 삭제할 것이라는 사실. Advisor/indicator에 속하지 않는 것들도 마찬가지입니다. 그리고 사람이 차트에서 오랫동안 자신의 마크업을 만들어 왔다면? 그런 다음 타사 표시기에서 이 코드를 실행했습니까? 그는 이 좋은 코드의 작성자에 대해 나중에 어떻게 그리고 무엇을 말할 것입니까?
 
artmedia70 :
그는 이 좋은 코드의 작성자에 대해 나중에 어떻게 그리고 무엇을 말할 것입니까?


착한 사람들. 모두가 생각하는 대로 말할 것이다
 
Vinin :

착한 사람들. 모두가 생각하는 대로 말할 것이다
네, 비트... 요즘 사람들이 사악해... 안타깝네요.
 
isn-88 :

당신과 동의하지 않습니다!

질문이 있었습니다.

결정:

그리고 왜 어리석은 결정입니까?

실제로 모든 것은 다음 명령으로 시작되었습니다. 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

 
VoDyaMon :

실제로 모든 것은 다음 명령으로 시작되었습니다. 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개 작업 중임을 보여주는 스크린샷을 보여주기까지 했습니다. 그러나 일부 동지들은 완전한 호환성이 없다고 주장하므로 명확히해야합니다 ... 감사합니다.
사유: