묻다! - 페이지 169

 

오프라인 차트 표시기

Kalenzo:
표시기 내부에 코딩해야 하는 특별한 것은 없습니다. 내비게이터에서 오프라인 차트로 지표를 끌어다 놓기만 하면 작동합니다. 예를 들어 eurusd와 같이 메타 트레이더에서 사용할 수 있는 일반 데이터로 먼저 시도하십시오. 표시기가 eurusd에서는 작동하고 NYSE에서는 작동하지 않는 경우 표시기가 잘못된 방식으로 계산되고 수정/조정해야 함을 의미합니다(예: 반올림이 필요하거나 계산 중에 0 나누기와 같은 오류가 생성됨).

안녕하세요 칼렌조입니다.

답장을 보내 주셔서 감사합니다. MT4 플랫폼 표시기는 훌륭하게 작동합니다. 개별 코딩이 작동하지 않는다는 맞춤 표시기입니다. 나는 코드에서 통화 기호를 발견했습니다. 통화 쌍 GBPUSD에서 NYSE 기호로 기호를 변경해야 하는지 궁금합니다. 또한 지표가 어떻게 작동하는지 알고 싶었습니다. 플랫폼에 원래 설치된 지표인지 아니면 무료 사용자 정의 코딩 지표를 다운로드하는지 여부에 관계없이 지표는 어떤 폴더에 어떤 데이터를 가지고 있습니까?

감사해요!!

 
winsumloosesum:
안녕하세요 칼렌조입니다.

답장을 보내 주셔서 감사합니다. MT4 플랫폼 표시기는 훌륭하게 작동합니다. 개별 코딩이 작동하지 않는다는 맞춤 표시기입니다. 나는 코드에서 통화 기호를 발견했습니다. 통화 쌍 GBPUSD에서 NYSE 기호로 기호를 변경해야 하는지 궁금합니다. 또한 지표가 어떻게 작동하는지 알고 싶었습니다. 플랫폼에 원래 설치된 지표인지 아니면 무료 사용자 정의 코딩 지표를 다운로드하는지 여부에 관계없이 지표는 어떤 폴더에 어떤 데이터를 가지고 있습니까?

감사해요!!

안녕하세요!

예, 반드시 표시기 코드를 확인해야 합니다. 표시기가 Symbol() 함수 (또는 필요한 경우 기호 대신 NULL 값)를 사용하지 않는 경우 100% 문제입니다. 일반적으로 지표는 첨부된 차트의 데이터를 변환하므로 원래 MT4 지표가 작동하는 이유입니다. 그러나 사용자 지정 표시기에서는 다른 기호/시간 프레임에서 데이터를 가져온 다음 사용할 데이터를 수동으로 지정해야 합니다. 예를 들어 EURUSD를 기본으로 사용하고 GBPUSD 및 USDCHF를 계산을 위한 다른 매개변수로 사용할 수 있습니다.

표시기 코드를 확인하고 기호를 계산하려는 NYSE로 변경해야 합니다. 그러면 잘 작동합니다.

 

도움을 주셔서 다시 한 번 감사드립니다.

모든 도움에 다시 한 번 감사드립니다.

 

디버깅 문제

표시기의 기능을 이해하기 위해 기본 EA를 작성했지만 약간 놀랐습니다. 처음에는 indy를 다시 칠하고 지금은 매우 기본적인 indy를 사용합니다.

숫자를 이해하기 위해 백테스트 동안 로그 보고서의 값을 인쇄하기 위해 print() 함수 를 사용합니다. 그러나 인쇄 기능이 로그 인쇄를 방해하는 것 같고 로그의 큰 부분을 느슨하게 합니다. 인쇄를 제거하면 모든 주문과 함께 로그가 완성됩니다!

어떤 아이디어라도? 여기 내 코드의 추출물

//----+ 거래를 위한 신호 정의

if (kline[1] < Level_Up) // 임계값 아래

if (kline[0] > dline[0]) // 메인 오버 신호

if (kline[0] > kline[1]) // 메인은 올라가야 합니다.

if (dline[0] > 0 ) { //신호는 0 레벨에 머물러서는 안 됩니다. < dline[1]) { // Signal 아래의 이전 Main이므로 교차

BUY_Sign = true;

if (디버그) {

인쇄("Longopen K0 ",DoubleToStr(kline[0],Digits)," K1 ",DoubleToStr(kline[1],Digits),

" K2 ",DoubleToStr(kline[2],Digits), "K3 ",DoubleToStr(kline[3],Digits));

인쇄(" D0 ",DoubleToStr(dline[0],Digits)," D1 ",DoubleToStr(dline[1],Digits)," D2 ",DoubleToStr(dline[2],Digits),

" D3 ",DoubleToStr(dline[3], 숫자));

}

}

도와 줘서 고맙다

마르셀

 

도와주세요!! 나는 코더는 아니지만 최선을 다하고 있습니다. 내 지표가 작동하지 않는 이유에 대한 조언을 주시면 감사하겠습니다!!

미리 감사합니다

#속성 표시기_분리_창

#속성 표시기_버퍼 4

#property indicator_color1 라임그린

#property indicator_color2 FireBrick

#property indicator_color3 녹색

#property indicator_color4 빨간색

#속성 표시기_너비1 2

#속성 표시기_너비2 2

#속성 표시기_너비3 2

#속성 표시기_너비4 2

//------------------------------------------------ ---------------------- 지시자 매개변수

외부 int FastEMA=12;

extern int SlowEMA=26;

외부 정수 SignalSMA=9;

//------------------------------------------------ ---------------------- 표시기 버퍼

이중 OsmaBuffer[];

이중 SPM;

더블 Smm;

이중 Spmaks1;

이중 Spmaks2;

이중 Smmin1;

이중 Smmin2;

더블 누[];

더블 버전[];

이중 OsMAUP[];

이중 OsMADOWN[];

//+----------------------------------------------- -------------------+

//| 커스텀 인디케이터 초기화 기능 |

//+----------------------------------------------- -------------------+

정수 초기화()

{

//------------------------------------------------ -------------------- 2개의 추가 버퍼가 계산에 사용됩니다.

표시 버퍼(4);

//------------------------------------------------ --------------------그림 설정

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexBuffer(0,OsMAUP);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexBuffer(1,OsMADOWN);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(2,159);

SetIndexBuffer(2,Spaks1);

SetIndexStyle(3,DRAW_ARROW);

SetIndexArrow(3,159);

SetIndexBuffer(3,Smmin1);

SetIndexDrawBegin(0,SignalSMA);

IndicatorDigits(숫자+2);

//------------------------------------------------ ------------------- DataWindow의 이름 및 표시기 하위 창 레이블

IndicatorShortName("OsMA Marius("+FastEMA+","+SlowEMA+","+SignalSMA+")");

//------------------------------------------------ -------------------초기화 완료

리턴(0);

}

//+----------------------------------------------- -------------------+

//| 오실레이터의 이동 평균 |

//+----------------------------------------------- -------------------+

정수 시작()

{

정수 제한;

int counted_bars=IndicatorCounted();

//------------------------------------------------ -------------------마지막으로 계산된 막대가 다시 계산됩니다.

if(counted_bars>0) counted_bars--;

limit=막대-counted_bars;

//------------------------------------------------ -------------------메인 루프

for(int i=0; i<limit; i++)

{

OsmaBuffer=iOsMA(NULL,0,FastEMA,SlowEMA,SignalSMA,PRICE_WEIGHTED,i);

nou = 오스마버퍼;

버전 = 오스마버퍼;

if(오즈마버퍼 > 0)

{

OsMAUP = 오스마버퍼;

오스마다운 = 0;

}

또 다른

{

OsMADOWN = 오스마버퍼;

OSMAUP = 0;

}

//------------------------------------------------ -------------------크로스 다운

만약 ((nou0))

{

Spmaks1 = Spmaks2;

if(Spaks2 > 0)

{

Spmaks2 = 0;

}

}

//------------------------------------------------ -------------------크로스업

if ((no>0)&&(ver<0))

{

Smmin1 = Smmin2;

if(Smmin2 < 0)

{

Smmin2 = 0;

}

}

//------------------------------------------------ ------------------- 스윙 중

if(버전 > 0)

{

Spm = 버전;

if((nou > ver) || (nou == ver))

{

Spm = nou;

}

if((Spm > Spmaks2) || (Spm == Spmaks2))

{

Spmaks2 = Spm;

}

}

또 다른

{

음 = 버전;

if((nou < ver) || (nou == ver))

{

음 = nou;

}

if((Smm < Smmin2) || (Smm == Smmin2))

{

Smmin2 = Smm;

}

}

}

//------------------------------------------------ --------------------완료

리턴(0);

}

//+----------------------------------------------- -------------------+

 

최근 20개 막대 사이에 선을 긋는 방법

질문이 있습니다!

이동 평균에 대한 지표를 갖고 싶습니다.

항상 최신 20개 막대 사이에서 계속 선을 그립니다.

근데 어떻게 쓰는지 모르겠어

나는 당신이 저를 돕고 이와 같은 지표를 제공할 수 있기를 바랍니다.

정말 감사합니다!

 

모두들 평안하세요,

모든 것이 잘되기를 바랍니다.

내 질문은 프로그래밍 영역에서 자격을 갖춘 사람들에게 매우 간단한 질문입니다.

나는 원시 상태에서 3개의 지표를 사용하여 나를 위해 전문적으로 만든 ea를 가지고 있었습니다. 3개의 지표가 다양한 조합으로 거래되는 1개에 코딩된 4가지 전략 시스템입니다. 약간의 역사지만 이것은 실제로 관련이 없는 부분입니다.

3개의 표시기는 모두 각각 2개의 버퍼를 사용하며 이들 모두가 가진 유일한 변수는 "CountBars"였습니다. 최적화할 수 없는 상태였기 때문에 조정 가능한 옵션은 "CountBars"뿐이었기 때문에 일종의 사전 처리로 Jurik의 알고리즘을 사용하는 것이 좋은 아이디어였습니다. 그렇게 하면 표시기의 원시 상태를 유지할 수 있습니다. 즉, 빠르게 반응하지만 몇 가지 "딸꾹질"이 있는 반면 여전히 매우 반응적이고 동시에 낮은 지연을 나타내는 평활화 요소를 추가할 수 있습니다. 그래서 나는 이 위원회의 잘 알려진 회원에게 프로젝트의 그 부분을 도와달라고 요청했는데, 그들은 그렇게 했고 아주 완벽하게 추가할 수 있었습니다. 그러나 그들이 의무의 부름을 넘어섰기 때문에 나는 그들에게 더 이상 부탁을 하고 싶지 않았습니다. 예를 들어 원시 부하 대신 동일한 지표의 새로운 Jurik 스무딩 버전으로 교체하는 것입니다.

그러면서 '얼마나 힘들까'라는 생각이 들 정도로 스스로도 충분히 할 수 있다고 생각했다. 3개의 iCustom 인스턴스에서 호출되는 이름을 변경하고 "extern" 부분에 새 변수를 추가하고 iCustoms 부분에 아래로 추가합니다. (이제 표시기의 JRK smthd 버전은 여전히 2개의 버퍼를 사용하지만 추가 변수가 있습니다. 총 2개: "SmoothLength" 및 "SmoothPhase" "CountBars"가 제거되었습니다.) 그리고 짜잔!! 그게 그렇게 쉬웠다면. 나는 그 일을하고 그것을 컴파일했는데 오류/경고가 없습니다. 그러나 백테스트/포워드 테스트를 시도하면 거래가 없습니다 .....

내가 뭔가를 놓치고 있습니까? 모든 조언을 주시면 감사하겠습니다.

 

비즈쩝쩝!

 
forex_for_life:
모두들 평안하세요,

모든 것이 잘되기를 바랍니다.

내 질문은 프로그래밍 영역에서 자격을 갖춘 사람들에게 매우 간단한 질문입니다.

나는 원시 상태에서 3개의 지표를 사용하여 나를 위해 전문적으로 만든 ea를 가지고 있었습니다. 3개의 지표가 다양한 조합으로 거래되는 1개에 코딩된 4가지 전략 시스템입니다. 약간의 역사지만 이것은 실제로 관련이 없는 부분입니다.

3개의 표시기는 모두 각각 2개의 버퍼를 사용하며 이들 모두가 가진 유일한 변수는 "CountBars"였습니다. 최적화할 수 없는 상태였기 때문에 조정 가능한 옵션은 "CountBars"뿐이었기 때문에 일종의 사전 처리로 Jurik의 알고리즘을 사용하는 것이 좋은 아이디어였습니다. 그렇게 하면 표시기의 원시 상태를 유지할 수 있습니다. 즉, 빠르게 반응하지만 몇 가지 "딸꾹질"이 있는 반면 여전히 매우 반응적이고 동시에 낮은 지연을 나타내는 평활화 요소를 추가할 수 있습니다. 그래서 나는 이 위원회의 잘 알려진 회원에게 프로젝트의 그 부분을 도와달라고 요청했는데, 그들은 그렇게 했고 아주 완벽하게 추가할 수 있었습니다. 그러나 그들이 의무의 부름을 넘어섰기 때문에 나는 그들에게 더 이상 부탁을 하고 싶지 않았습니다. 예를 들어 원시 부하 대신 동일한 지표의 새로운 Jurik 스무딩 버전으로 교체하는 것입니다.

그러면서 '얼마나 힘들까'라는 생각이 들 정도로 스스로도 충분히 할 수 있다고 생각했다. 3개의 iCustom 인스턴스에서 호출되는 이름을 변경하고 "extern" 부분에 새 변수를 추가하고 iCustoms 부분에 아래로 추가합니다. (이제 표시기의 JRK smthd 버전은 여전히 2개의 버퍼를 사용하지만 추가 변수가 있습니다. 총 2개: "SmoothLength" 및 "SmoothPhase" "CountBars"가 제거되었습니다.) 그리고 짜잔!! 그게 그렇게 쉬웠다면. 나는 그 일을하고 그것을 컴파일했는데 오류/경고가 없습니다. 그러나 백테스트/포워드 테스트를 시도하면 거래가 없습니다 .....

내가 뭔가를 놓치고 있습니까? 모든 조언을 주시면 감사하겠습니다.

안녕하세요 Ffl님,

구매에는 iCustom(NULL,0," 표시기 이름" SmoothLength,SmoothPhase,0,1)을, 판매에는 iCustom(NULL,0," 표시기 이름" SmoothLength,SmoothPhase,1,1)을 시도하고 "표시기 이름"만 변경하십시오. 전화를 걸고 있음을 나타냅니다.

 
mrtools:
안녕하세요 Ffl, 구매의 경우 iCustom(NULL,0," 표시기 이름" SmoothLength,SmoothPhase,0,1)을 시도하고 판매의 경우 iCustom(NULL,0," 표시기 이름" SmoothLength,SmoothPhase,1,1)을 사용하여 " 표시기 이름"을 호출하려는 표시기.

피스 씨 T,

안내해 주셔서 감사합니다. 귀하의 제안에 따라 이러한 변경을 수행했으며 EA는 여전히 오류/경고 없이 컴파일하지만 여전히 거래를 하지 않습니다. 곧 하나 더 해결 방법을 시도합니다 .....