artmedia70 : 추가 계산을 위해 대체 int 값으로 계산 결과로 얻은 double 값을 사용할 수 있는지 알려주십시오. 예시: 여기서 내가 강조한 변수는 double 유형이지만 iMA 는 int 값이 필요한 곳에 값을 사용합니다(MAC의 기간으로). 따라서 문제는 이 사용법이 정확합니까 아니면 값을 int 유형으로 변환해야 하는 것입니까?
변환은 자동으로 이루어지며, 소수 부분은 단순히 잘립니다. 이 사용법에 대해 내가 만난 유일한 제한 사항 은 배열 인덱스 에 double을 배치할 수 없다는 것입니다.
작동하지 않습니다. 차트에 값을 표시할 때 모두 동일한 값을 갖습니다. 예를 들면 다음과 같습니다. MA200_DIN, MA200_UP, MA200_DN 및 MA5_DIN, MA5_UP, MA5_DN용 1.4106. +20 및 -20 포인트 수준을 계산하는 공식이 작동하지 않는 것으로 나타났습니다. 내가 무엇을 잘못하고 있지?
예시:
여기서 내가 강조한 변수는 double 유형이지만 iMA 는 int 값이 필요한 곳에 값을 사용합니다(MAC의 기간으로).
따라서 문제는 이 사용법이 정확합니까 아니면 값을 int 유형으로 변환해야 하는 것입니까?
괜찮습니다. 작업 예제나 링크를 얻을 수 있습니까?
추가 계산을 위해 대체 int 값으로 계산 결과로 얻은 double 값을 사용할 수 있는지 알려주십시오.
예시:
여기서 내가 강조한 변수는 double 유형이지만 iMA 는 int 값이 필요한 곳에 값을 사용합니다(MAC의 기간으로).
따라서 문제는 이 사용법이 정확합니까 아니면 값을 int 유형으로 변환해야 하는 것입니까?
변환은 자동으로 이루어지며, 소수 부분은 단순히 잘립니다. 이 사용법에 대해 내가 만난 유일한 제한 사항은 배열 인덱스에 double을 배치할 수 없다는 것입니다.
질문 하나 더:
건설
작동하지 않습니다. 차트에 값을 표시할 때 모두 동일한 값을 갖습니다. 예를 들면 다음과 같습니다.
MA200_DIN, MA200_UP, MA200_DN 및
MA5_DIN, MA5_UP, MA5_DN용 1.4106.
+20 및 -20 포인트 수준을 계산하는 공식이 작동하지 않는 것으로 나타났습니다.
내가 무엇을 잘못하고 있지?
Matroskin이 말했듯이 : Sharik, 당신은 멍청이입니다 ... :)
코드를 제공하거나 작업을 설정하면 수정하겠습니다.
WellsLab에서 유사 작업은 다음과 같습니다.
MyATR = SMA.Series(((고-저)/저), PerB)[i-1] ;
if (BuyAtStop(i, (Open[i] + Open[i]*MyATR), "") ;
즉, 바가 열릴 때 지정된 수준에 도달하면 매수/매도 포지션이 한 번 열리는 스톱이 설정되며, 여기서 현재 바의 Open[i] 가격 + 트리거(동일한 오픈 가격에 닫힌 막대의 PerB 기간에 대해 계산된 MyATR [i-1])
예를 들어, ValLab에서 mql4에서 얻고자 하는 것을 보여줍니다.
사이트의 자료를 연구 한 후 아날로그를 만들려고 시도했는데 다음과 같은 일이 발생했습니다.
결론: 주문이 쏟아지고 있습니다. 주어진 수준에서 주문이 한 번 실행되도록 어떤 조건을 추가해야 하는지(또는 기존 조건을 변경해야 하는지) 알려주세요.
참고: iMAOnArray 함수에서 첫 번째 매개변수로 배열을 대체해야 하며 MyATR 스칼라가 있습니다. 제대로 작동하려면 다음을 수행해야 합니다.
1. 더블 MyATR[] 선언;
2. 크기를 ArrayResize(MyATR,PerB)로 설정합니다.
3. 배열을 채우십시오(i=1;i<=PerB;i++) MyATR[i-1]=(High[i]-Low[i])/Low[i]; 인덱스 i는 닫힌 막대만 필요 하므로 1부터 시작합니다.
4. 그 후에 iMAOnArray(MyATR,0,PerB,0,MODE_SMA,0)를 읽을 수 있습니다. 그리고 여기에서 마지막 매개변수는 0과 같습니다. 왜냐하면 shift ha 1은 이미 단락 3에서 고려되었기 때문입니다.
그것이 어떻게 나타나는지 확인하십시오. 아마도 오류는 이것에만있을 것입니다.