XY로 그려진 물체를 매끄럽게 만드는 방법(MT4 vs MT5) - 페이지 10

 
Vitaliy Kuznetsov :

감사합니다, 좋은 템플릿. 나는 당신의 작업에서 많은 흥미로운 것을 배웁니다.

드미트리, 나는 여전히 당신이 높은 기술을 보여줄 수 있는 프로그래머라고 생각합니다.

그리고 코드, 건설적인 생각에 제안이 있다면 기쁨으로 (나뿐만 아니라) 귀하의 경험을 채택할 것입니다.

추신: 코드에 대해 100번 듣는 것보다 코드를 한 번 보는 것이 좋습니다.

네, 줄을 섰습니다. 팔을 쭉 뻗은 채 줄을 서고 있습니다... 무엇의 코드인가요?

 
Nikolai Semko :

프리랜서로 할 수 있을지 의심스럽습니다. 이 일을 할 수 있는 사람들은 귀에 쏙쏙 들어오는 작업으로 가득 차 있고, 자유로운 사람들은 캔버스를 이해하며, 아마도 당신보다 더 나쁠 것 입니다.

그것이 내가 물건을 좋아하지 않는 이유입니다. 왜냐하면 그것들은 당신이 통제할 수 없는 그들 자신의 스레드에서 그들 자신의 삶을 살기 때문입니다. 반대로 캔버스를 사용하면 모든 것이 당신의 손에 달려 있습니다. 그렇기 때문에 캔버스가 있는 테스터의 경우 속도가 느려지지 않도록 코드를 추가해야 하며 각 틱에서 초당 30번 이상 프레임을 계산합니다.
그리고 MT5의 TF 및 로딩 히스토리 작업은 끔찍하게 비합리적이고 비효율적으로 구현됩니다. M1만 로드되고 Unpacked 형태에서는 나머지는 M1에서만 계산됩니다. 따라서 MN1을 처음 켜면 10초 이상 동안 100개의 막대가 로드됩니다. 막대 로드를 직접 작성하고 M1을 압축된 형식으로 변환하고 계산된 모든 TF를 메모리에 보관해야 했습니다. 내 모든 TF는 M1과 함께 MT5의 일반 M1 하나보다 RAM에서 훨씬 적은 공간을 차지합니다.

이것은 회개인가 휴거인가?

 
Алексей Тарабанов :

이것은 회개인가 휴거인가?

반대 방향입니다. 당신은 프로그램을 만듭니다. 이것은 당신의 법에 따라 사는 세상입니다. 당신은 객체 지향적인 일을 했습니다: 아메바 같은 것을 생성하거나 더 갑자기, 일반적으로 자체적으로 살아갑니다.

 
Алексей Тарабанов :

이것은 회개인가 휴거인가?

이것은 부적절한 자만심에 근거한 넌센스입니다. 그리고 MT5에서 일하는 현실과는 거리가 멉니다.

 
Nikolai Semko :

글쎄, 우선, 당신이 준이 알고리즘 에 따라 개체로 지표를 수정하십시오.

Nikolay, 어렵지 않다면 테스터에서 수정 된 지표가 시간이 지남에 따라 이동한다는 사실에 대해 어떻게 생각하십니까? 스케일을 마우스로 변경하려고 하면 수정됩니다.

캔버스도 마찬가지입니다. 또는 그래프 척도에 수동으로 개입할 때까지 그래프가 이동하지 않거나 잘못 이동합니다(일정 시간 후). 계산과 경고 자체는 정확하지만 그래픽은...

픽셀당 정기적인 화면전환 형태로 목발을 쓰지 않겠는가?) 분명 내가 보지 못하는 해법이 있을 것이다. 아니면 테스터에 문제가 있습니까?

 
Vitaliy Kuznetsov :

Nikolay, 어렵지 않다면 테스터에서 수정 된 지표가 시간이 지남에 따라 이동한다는 사실에 대해 어떻게 생각하십니까? 스케일을 마우스로 변경하려고 하면 수정됩니다.

캔버스도 마찬가지입니다. 또는 그래프 척도에 수동으로 개입할 때까지 그래프가 이동하지 않거나 잘못 이동합니다(일정 시간 후). 계산과 경고 자체는 정확하지만 그래픽은...

픽셀당 정기적인 화면전환 형태로 목발을 쓰지 않겠는가?) 분명 내가 보지 못하는 해법이 있을 것이다. 아니면 테스터에 문제가 있습니까?

한 줄을 추가합니다.

 if (id == CHARTEVENT_CHART_CHANGE ) Draw (); 
, 차트 변경 이벤트 추적(새 막대도 차트 변경 이벤트임)
  • 테스터 모드의 OnCalculate에서 예를 들어 새 막대가 발생할 때 다시 그리기 위한 선을 추가합니다. 테스터의 OnChartEvent가 작동하지 않습니다:
     if (rate_total != prev_calculated ) if (Canvas.tester) {ChartChanged (); Draw ();}
  • 이것이 MT4에서 작동하지 않으면 CHARTEVENT_CHART_CHANGE 이벤트에 문제가 있는 것입니다. 이제 따옴표가 없을 때까지 확인하지 마십시오.



     
    Nikolai Semko :

    팁 고마워. 손이 닿지 않는 동안 오늘 확인하려고