1. CPU 시간을 절약하기 위해 가상 양초를 선택할 때 대소문자를 바꾸지 않고 대신 선택 항목이 있는 섹션을 주석 처리했습니다.
2. 현지 시간(오프라인, 즉)으로 작업하기 위해 염두에 두지 않았습니다. 루프 " while(time==TimeLocal()){//1초가 지날 때까지 ", FileWriteDouble 에 MarketInfo 가 있어야 한다고 생각합니다. 거기에서 더 논리적인 것이 무엇인지 말씀해 주시면 감사하겠습니다.
3. 작가의 디자인
처음으로 init()의 맨 끝에 선언했습니다.
4. init() 동적 배열의 시작 부분에서
사용된 변수 대신.
5. 최적화를 위해 이론적으로 WinAPI 파일 기능을 사용하고 44바이트 블록(MarketInfo 구조의 길이 또는 .hst의 길이)에 한 번에 기록을 쓸 수 있습니다.
6. Time[] 셀에 쓰기 위한 작성자의 시간 모델링을 완전히 제거했습니다. 같은 이유로 기본 while 루프에는 TimeLocal()이 없고 TimeCurrent()만 있습니다.
그리고 일반적인 논리에 따르면: 나는 틱의 전체 컬렉션을 한 주기로 실행하고 시간을 별도로 제어하고 "새 막대"에 대한 시간이 지나면 파일에 쓰고 0으로 설정하고 잘라냅니다. 작업 배열.
이상하다.. 있구나.. 시간이 틱 수집 주기 자체에서 제어되고, 틱의 복사본이 몇 번이나 그려질 때까지 작업 배열이 잘리지 않는다는 것뿐입니다. 초에서 1을 뺀 틱. 1초가 지나고 - 새 틱이 그려지고, 2 - 이전 틱과 새 틱의 복사본, 3 - 이전 틱과 새 틱의 복사본 2개 등 이전 눈금의 복사본 대신 닫기 수준에서 대시를 그릴 수 있습니다. 이 옵션은 코드에서 주석 처리됩니다.
이상하다.. 가지고 있다.. 시간이 틱 수집 주기 자체에서 제어되고, 틱의 복사본이 몇 번이나 그려질 때까지 작업 배열이 잘리지 않는다는 것뿐입니다. 초에서 1을 뺀 틱입니다. 1초가 지나고 - 새 틱이 그려지고, 2 - 이전 틱과 새 틱의 복사본, 3 - 이전 틱과 새 틱의 복사본 2개 등 이전 눈금의 복사본 대신 닫기 수준에서 대시를 그릴 수 있습니다. 이 옵션은 코드에서 주석 처리됩니다.
그래서. 마치듯이. 다음은 두 번째 양초에 포장하는 재설계된 틱 피커입니다.
그것은:
그것은되었다:
코드에 대한 참고 사항.
1. CPU 시간을 절약하기 위해 가상 양초를 선택할 때 대소문자를 바꾸지 않고 대신 선택 항목이 있는 섹션을 주석 처리했습니다.
2. 현지 시간(오프라인, 즉)으로 작업하기 위해 염두에 두지 않았습니다. 루프 " while (time== TimeLocal ()){ //1초가 지날 때까지 ", FileWriteDouble 에 MarketInfo 가 있어야 한다고 생각합니다. 거기에서 더 논리적인 것이 무엇인지 말씀해 주시면 감사하겠습니다.
3. 작가의 디자인
처음으로 init()의 맨 끝에 선언했습니다.
4. init() 동적 배열의 시작 부분에서
사용된 변수 대신.
5. 최적화를 위해 이론적으로 WinAPI 파일 기능을 사용하고 44바이트 블록(MarketInfo 구조의 길이 또는 .hst의 길이)에 한 번에 기록을 쓸 수 있습니다.
6. Time[] 셀에 쓰기 위한 작성자의 시간 모델링을 완전히 제거했습니다. 같은 이유로 기본 while 루프에는 TimeLocal()이 없고 TimeCurrent()만 있습니다.
7. 코드를 최적화하기 위해 또 무엇을 제안하시겠습니까?
단락 4에서 지표를 만든 다음 다음 조치가 명확하지 않다는 것을 이해해야합니다.
ArrayInitialize() 가 적절할 가능성이 높습니까?!
그리고 대부분 지표 배열 사용을 중단해야 합니다.
대부분 ArrayInitialize()가 적합합니다?!
ArrayInitialize(요청, EMPTY_VALUE ); 말입니까? 생각하지 않았다. 내가 자르기 시작한 이유, 나는 그러한 경우를 두려워했습니다.
(a, b, c)//초당 3틱 후 Ask의 값(굉장하지만 가정해 봅시다).
ArrayInitialize(ask, 0);//(0, 0, 0)
FileWriteDouble (hand1e, Ask[ ArraySize (ask) -1 ], DOUBLE_VALUE); //닫다[]
- 0은 Close 셀에 들어갈 것이기 때문에 사이즈를 재선언하여 이런 일이 발생하지 않도록 합니다. ArrayInitialize 필요(요청, EMPTY_VALUE); 실행 확인.
타라스BY :
지시자 배열의 사용을 포기할 필요가 있습니다.그들은 역동적이고 나는 그것에 빠졌습니다. 더 적은 명령, 더 적은 프로세서 주기. 바로 거기에 이론적으로 가능한 모든 우물에서 500밀리초의 처리가 필요합니다.
ArrayInitialize(요청, EMPTY_VALUE); 말입니까? 생각하지 않았다. 내가 자르기 시작한 이유, 나는 그러한 경우를 두려워했습니다.
(a, b, c)//초당 3틱 후 Ask의 값(굉장하지만 가정해 봅시다).
ArrayInitialize(ask, 0);//(0, 0, 0)
FileWriteDouble (hand1e, Ask[ ArraySize (ask) -1 ], DOUBLE_VALUE); //닫다[]
- 0은 Close 셀에 들어갈 것이기 때문에 사이즈를 재선언하여 이런 일이 발생하지 않도록 합니다. ArrayInitialize 필요(요청, EMPTY_VALUE); 실행 확인.
그들은 역동적이고 나는 그것에 빠졌습니다. 더 적은 명령, 더 적은 프로세서 주기. 바로 거기에 이론적으로 가능한 모든 우물에서 500밀리초의 처리가 필요합니다.
나는 그것에 대해 전혀 이야기하고 있지 않습니다. 무언가가 당신이 표시기 배열을 줄일 수 없을 것이라고 말해줍니다. 또한 이러한 배열에 빈 셀이 있는 경우 0 또는 EMPTY_VALUE 값이 있는 모든 것이 있으며 다음 계산에서 얻을 수 있는 값은 다음과 같습니다.
그리고 일반적인 논리에 따르면: 저는 전체 틱 컬렉션을 한 주기로 실행하고 시간을 별도로 제어하고 "새 막대"에 대한 시간이 지나면 파일에 작성하여 0으로 만들고 잘라냅니다. 작업 배열.수동으로 거래 창을 호출하여 어드바이저에서 보내기 주문과 닫기 주문을 대체 할 수 있는지 누가 알겠습니까? 이 창을 통해 시장에 진입하십시오. 이것은 사용을 허용하지 않는 브로커에게 필요합니다. 고문
그리고 일반적인 논리에 따르면: 나는 틱의 전체 컬렉션을 한 주기로 실행하고 시간을 별도로 제어하고 "새 막대"에 대한 시간이 지나면 파일에 쓰고 0으로 설정하고 잘라냅니다. 작업 배열.
이상하다.. 있구나.. 시간이 틱 수집 주기 자체에서 제어되고, 틱의 복사본이 몇 번이나 그려질 때까지 작업 배열이 잘리지 않는다는 것뿐입니다. 초에서 1을 뺀 틱. 1초가 지나고 - 새 틱이 그려지고, 2 - 이전 틱과 새 틱의 복사본, 3 - 이전 틱과 새 틱의 복사본 2개 등 이전 눈금의 복사본 대신 닫기 수준에서 대시를 그릴 수 있습니다. 이 옵션은 코드에서 주석 처리됩니다.
이상하다.. 가지고 있다.. 시간이 틱 수집 주기 자체에서 제어되고, 틱의 복사본이 몇 번이나 그려질 때까지 작업 배열이 잘리지 않는다는 것뿐입니다. 초에서 1을 뺀 틱입니다. 1초가 지나고 - 새 틱이 그려지고, 2 - 이전 틱과 새 틱의 복사본, 3 - 이전 틱과 새 틱의 복사본 2개 등 이전 눈금의 복사본 대신 닫기 수준에서 대시를 그릴 수 있습니다. 이 옵션은 코드에서 주석 처리됩니다.
우리는 다른 주기에 대해 이야기하고 있습니다. 나는 이것에 대해 이야기하고 있습니다 :
누군가 소수점 뒤의 0을 제거하는 방법을 말해 줄 수 있습니까? 어떤 이유로 소수점 이하 4자리가 있습니다. 다음은 코드입니다. 문자열 l_dbl2str_12 = DoubleToStr(g_ibuf_140[0] - g_ibuf_144[0],3);
내가 뭘 잘못하고 있는지 말해줘...
0.20130429164459 형식의 날짜를 포함하려면 double 유형의 변수가 필요합니다(2013.04.29 16:44:59를 의미).
고문 코드의 일부:
Precision 12,13 및 14에 대한 이벤트 로그가 올바른 결과를 제공하지 않습니다. 사진 참조