I사용자 정의 기능 - 페이지 12

 

icustom()으로 두 개의 표시기를 호출하여 누구나 사고 파는 간단한 ea를 게시할 수 있습니까?

보류 중인 주문 을 닫는 기능이 있습니까?

감사해요

 

iCustom 도움말

안녕.

사용자 지정 표시기를 사용하도록 FerruFX의 표시기 중 하나를 수정하려고 합니다. 이미 모든 MA가 올바르게 작동하도록 했지만 다른 두 지표에 대한 올바른 정보를 얻는 방법을 모르겠습니다. 궁극적으로 내가 첨부한 두 지표인 PerkyAsctrend1 및 HeikenAshi MTF의 MTF 데이터를 표시하고 싶습니다. 나는 둘 다에 대해 iCustom을 사용하고 있으며 그 정도로 올바른 명령을 사용했다고 생각합니다.

PerkyAsctrend1에 대한 데이터(올바른 데이터는 아님)를 생성할 수 있습니다. 나는 그것을 올바르게 표시하는 논리를 이해했다고 생각했지만 그렇지 않은 것 같습니다. Ferru는 그의 지표에서 MA, CCI, MACD, ADX, Bullspower 및 BearsPower를 사용했지만 그들은 다른 종류의 지표이며 불행히도 이 설정에서 PerkyAsctrend1에 대한 참조로 (저에게) 그다지 유용하지 않습니다.

HeikenAshi MTF 표시기는 표시기에 추가하기에 충분히 쉬울 것이라고 생각했습니다. 분명히 내가 틀렸다. Heiken 열에 설명할 수 없는 "레이블"이 표시되고 첫 번째 틱 후에 모두 사라집니다.

바라건대 코드가 실제로 당신에게 나만큼 징그럽게 보이지 않기를 바랍니다. 저는 아마추어 프로그래머입니다. 누구든지 도울 수 있다면 정말 감사하겠습니다. 나는 이것에 대해 더 경험 많은 눈이 필요합니다. 완성되면 꽤 유용할 것 같아요.

-

다음은 문제를 일으키는 코드입니다. 두 iCustoms 모두 가격 기록/차트의 총 막대 수인 2147483647의 값을 제공합니다.

int RISK = 4;

정수 AllBars = 250;

정수 MaMethod = 1;

정수 MaPeriod = 20;

//...

// 성가신

//...

문자열 Pesky_Trend_1 //-- , Pesky_Trend_5, Pesky_Trend_15, Pesky_Trend_30, Pesky_Trend_60, Pesky_Trend_240, Pesky_Trend_1440, Pesky_Trend_10080;

이중 Pesky_m_1=iCustom(NULL,PERIOD_M1, "PerkyAsctrend1", 위험, 모든 막대,0,shift_1);

if ((Pesky_m_1 > 0)) { Pesky_Trend_1 = "UP"; x = 416; color_indic = 라임; UP_33 = 1; DOWN_33 = 0; }

if ((Pesky_m_1 < 0)) { Pesky_Trend_1 = "DOWN"; x = 406; color_indic = 빨간색; UP_33 = 0; DOWN_33 = 1; }

// ...

// 표시기(하이켄)

//...

문자열 HA_Trend_1 //-- , HA_Trend_5, HA_Trend_15, HA_Trend_30, HA_Trend_60, HA_Trend_240, HA_Trend_1440, HA_Trend_10080;

이중 HA_1_1=iCustom(NULL,PERIOD_M1,"하이켄 MTF",MaMethod,MaPeriod,shift_1);

이중 HA_2_1=iCustom(NULL,PERIOD_M1,"하이켄 MTF",MaMethod,MaPeriod,shift_1+1);

if ((HA_1_1 > HA_2_1)) { HA_Trend_1 = "UP"; x = 466; color_indic = 라임; UP_41 = 1; DOWN_41 = 0; }

if ((HA_1_1 < HA_2_1)) { HA_Trend_1 = "다운"; x = 456; color_indic = 라임; UP_41 = 0; DOWN_41 = 1; }

//...

나는 시프트 값이 정통적이지 않다는 것을 알고 있지만 그것이 원래 저자가 한 방식입니다.

정수 시작()

{

//...

// 지표에 대한 이동 계산(테스트 전용)

이중 shift_1, shift_5, shift_15, shift_30, shift_60, shift_240, shift_1440, shift_10080;

if( 테스트 == true )

{

shift_1=iBarShift(NULL,PERIOD_M1,look_time_shift,false);

shift_5=iBarShift(NULL,PERIOD_M5,look_time_shift,false);

shift_15=iBarShift(NULL,PERIOD_M15,look_time_shift,false);

shift_30=iBarShift(NULL,PERIOD_M30,look_time_shift,false);

shift_60=iBarShift(NULL,PERIOD_H1,look_time_shift,false);

shift_240=iBarShift(NULL,PERIOD_H4,look_time_shift,false);

shift_1440=iBarShift(NULL,PERIOD_D1,look_time_shift,false);

shift_10080=iBarShift(NULL,PERIOD_W1,look_time_shift,false);

}

또 다른

{

shift_1=shift_indicators;

shift_5=shift_indicators;

shift_15=shift_indicators;

shift_30=shift_indicators;

shift_60=shift_indicators;

shift_240=shift_indicators;

shift_1440=shift_indicators;

shift_10080=shift_indicators;

고맙습니다...

 

업데이트된 버전

시각적으로 필요하고 일부 매개변수 이름을 변경해야 하므로 모든 것을 재정렬했습니다. 모든 것이 여전히 iCustom에 대해 올바른 것처럼 보이지만 PerkyAsctrend 값이 올바르게 계산되지 않고 Heiken 논리가 완전히 잘못된 것 같습니다. Heiken MTF 표시기에 대해 iCustom에 두 배 값을 제공하는 저녁이 아닌 것 같습니다. 아직 다시 확인하지 않았지만 표시기의 iCustom 이중 값은 모두 내 기록 의 막대 수와 동일했습니다(2147483647)...! iCustom에서 완전히 잘못된 작업을 수행해야 하지만 평생 찾을 수 없습니다.

당신이 이것을 살펴볼 시간이나 에너지가 있다면 가장 감사할 것입니다.

파일:
 

To: Homicida & Ra457 re: iCustom

안녕.

iCustom 을 사용할 때 얻는 그 큰 숫자 값은 제가 겪었던 어려움처럼 들립니다.

이게 도움이 되길 바란다.

iCustom에 입력하는 매개변수가 정확히 동일하고 표시기 코드 자체의 외부 변수에 제공된 것과 같은 순서로 되어 있는지 확인하십시오.

건배.

 

2147483647은 당신의 역사와 아무 관련이 없습니다.

부호 있는 32비트 정수를 가질 수 있는 가장 큰 값이며 MT4에서 표시기의 기본 "빈 값"으로 사용합니다.

값이 표시되지 않을 때 표시기가 "빈 값"을 반환합니다.

 

아이커스텀()

안녕하세요, 표시기에서 세 개의 변수를 읽어야 합니다.

표시기 상단에 밑단을 배치했습니다.

변수

이중 eaBid=0;

이중 eaAsk=0;

문자열 eaType="";

//===========================

변수

#속성 표시기_분리_창

#속성 표시기_버퍼 8

#property indicator_color1 블랙

#property indicator_color2 라임

#property indicator_color3 라임

#property indicator_color4 노란색

#property indicator_color5 빨간색

#property indicator_color6 빨간색

#property indicator_color7 블랙

#property indicator_color8 블랙

이중 eaEP=0;

이중 eaSL=0;

이중 eaType=0;

이중 iVars[];

물건

#속성 표시기_버퍼 2

#property indicator_color1 빨간색

#property indicator_color2 포레스트그린

//---- 입력 매개변수

문자열 IndicatorName="TradeWatch";

이중 EntryBid=0;

이중 EntryAsk=0;

문자열 항목 유형 = "";

이중 eaBid=0;

이중 eaAsk=0;

문자열 eaType="";

정수 초기화()

{

리턴(0);

}

시작

{

EntryBid = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 1, 0);

EntryAsk = iCustom(Symbol(), Period(), IndicatorName, eaBid, eaAsk, eaType, 2, 0);

항목 유형 = iCustom(Symbol(), 기간(), IndicatorName, eaBid, eaAsk, eaType, 3, 0);

}

내 EA에서 세 가지 변수를 읽으려면 어떻게 해야 합니까?

내가 잘못 가고있는 곳을 볼 수 없습니까?

감사해요.

 

인디케이터 버퍼 값에 반영되어야 하는 변수의 결과를 그냥 읽지 않으시겠습니까?? 그래프에 표시기를 배치한 후 표시기 설정의 색상을 보면 각 색상이 버퍼를 나타냅니다. 상단 색상 = buffer0, 상단 색상에서 두 번째 색상 = buffer1 등.

EA에서 다음과 같이 사용하십시오.

Buff0=iCustom(NULL,0,"지시자 이름",0,0); // 표시기의 상단 색상

Buff0=iCustom(NULL,0,"지시자 이름",0,1); //1-뒤로

Buff1=iCustom(NULL,0,"지시자 이름",1,0); // 표시기의 상단 색상 옆

Buff1=iCustom(NULL,0,"지시자 이름",1,1); //1-뒤로

지표 자체의 변수를 수정하고 그래프의 버퍼와 지표를 업데이트할 지표를 다시 컴파일하십시오!

여전히 혼란스럽다면 실제 EA와 표시기를 보내 드리겠습니다.

데이브

<<<

 

아이커스텀()

고마워 데이브.

작동합니다.

 

모두 좋은 하루 되세요

 

내 EA

ICustom 함수와 함께 asctrend 신호를 사용하는 MQ4 빌더로 EA - ASCTrend.mq4를 만들었습니다. UP 신호일 때 BUY 거래를 열고 DOWN 신호일 때 SELL을 열 수 있습니다.

내 EA에 일부 필터를 추가하고 싶습니다. 일부 쌍에서 백 테스트 를 수행하고 BBands ind를 사용하여 필터가 좋아 보입니다. 새싹 내 EA에 이 필터를 추가하는 방법을 모르겠습니다. 내 생각에는 그렇게 생각하지만 운이 없습니다.

이중 구매1_1 = iCustom(Symbol(),0,"PerkyAsctrend1",0,1);

이중 Buy2_1 = iCustom(NULL, 0, "BBands_Stop_v1", 4, 0, 현재 + 1);

이중 구매2_2 = 1;

이중 Sell1_1 = iCustom(Symbol(),0,"PerkyAsctrend1",1,1);

이중 Sell2_1 = iCustom(NULL, 0, "BBands_Stop_v1", 5, 0, 현재 + 1);

이중 판매2_2 = 1;

if (구매1_1 && 구매2_1 > 구매2_2) 주문 = SIGNAL_BUY;

if (Sell1_1 && Sell2_1 > Sell2_2) 주문 = SIGNAL_SELL;

파일: