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

 
SantaClaus:
영어는 제 모국어가 아니지만 제 질문이 그렇게 틀리다고 생각하지 않았습니다. "단어 표시" 대신 내 문제에 대한 해결책을 찾자. 나는 질문을 다시 시도한다.

내 EA가 내 지표의 단순 풋 및 콜을 인식하는 가장 좋은 방법은 무엇입니까?

분명히 내 코드가 작동하지 않았고 당신이 나에게 말한 대로 "1"을 "0"으로 변경하려고 했습니다.

여기에 작동하지 않는 코드를 게시(첨부)하십시오 - 테스트 중이고 지금까지 작성한 mql 파일

 

내 개인 코드이므로 공유하고 싶지 않습니다. 그러나 내가 제공한 코드보다 더 봐야 할 것은 무엇입니까?

내가 잊어 버린 것이 있습니까?

 
SantaClaus:
내 개인 코드이므로 공유하고 싶지 않습니다. 그러나 내가 제공한 코드보다 더 봐야 할 것은 무엇입니까? 내가 잊어 버린 것이 있습니까?

코딩을 도와줄 누군가를 원하지만 오류가 있는지 확인 하기 위해 코드를 표시하고 싶지는 않지만 대신 받은 모든 조언이 수천 개의 다른 코드에서 작동하고 있다고 주장하는 것입니다. , 당신을 위해 일하고 있지 않습니까?

확인. 나는 이제 당신의 입장을 이해합니다. 당신의 코딩에 행운을 빕니다

행복한 거래

 

작동하지 않는 개인 코드? 흥미로운

 

제가 모르는 이유로 두 개의 게시물이 삭제되었습니다.

그러나 발생한 문제는 내가 읽으려는 버퍼를 방해하는 다른 버퍼가 있다는 것입니다. 이제 작동하는 솔루션이 있습니다.

 

도움이 필요합니다. icustom이 포함된 함수 에 접미사(마이크로)가 있는 기호 매개변수를 어떻게 보내나요? 함수를 사용하지 않는 경우 기호 이름을 큰따옴표로 묶고 icustom("EURUSDmicro",0,channel-signal",2,1)과 같이 작동하지만 함수를 사용할 때 큰따옴표는 전달되지 않습니다. . 내가 의미하는 다음 코드를 참조하십시오

무효 OnTick()

{

CalcDisplay("EURUSDmicro"); //--------함수 호출-------

}

void CalcDisplay(문자열 TxtCurrency) //--------기능-------

{

이중 값=icustom(TxtCurrency,0,채널 신호",2,1);

...

...

..

}

 
Richard Sidric:
도움이 필요합니다. icustom이 포함된 함수에 접미사(마이크로)가 있는 기호 매개변수를 어떻게 보내나요? 함수를 사용하지 않는 경우 기호 이름을 큰따옴표로 묶고 icustom("EURUSDmicro",0,channel-signal",2,1)과 같이 작동하지만 함수를 사용할 때 큰따옴표는 전달되지 않습니다. . 내가 의미하는 다음 코드를 참조하십시오

무효 OnTick()

{

CalcDisplay("EURUSDmicro"); //--------함수 호출-------

}

void CalcDisplay(문자열 TxtCurrency) //--------기능-------

{

이중 값=icustom(TxtCurrency,0,채널 신호",2,1);

...

...

..

}

따옴표를 전달할 필요가 없습니다. 필요한 것은 문자열이라는 것뿐입니다.

__________________

추신: iCiustom 통화에서 인용문이 하나 빠졌습니다. 지금은 이렇습니다.

이중 값=icustom(TxtCurrency,0,채널 신호",2,1);

다음과 같아야 합니다.

이중 값=icustom(TxtCurrency,0,"채널 신호",2,1);

 

안녕하세요 여러분 저는 아래에 하나의 t4 표시기가 첨부되어 있습니다. 로봇 거래와 로봇 거래에 이것을 어떻게 사용할 수 있는지 알고 싶습니다.

(나는 이미 컴퓨터 앞에 앉아 수동 거래를 사용하지만)

자동 거래에 이것을 사용한다면 어떻게 도와주세요. 미리 감사드립니다.

//------------------------------------------------ ------------------

// 원래 ised 및 mony에 의한 첫 번째 구현

// mladen의 tris 버전

//------------------------------------------------ ------------------

#property copyright "mony & mladen"

#속성 링크 "www.forex.tsd.com에서 생성"

#속성 표시기_차트_창

#속성 표시기_버퍼 5

#property indicator_color1 미디엄블루

#property indicator_color2 빨간색

#property indicator_color3 미디엄블루

#property indicator_color4 빨간색

#property indicator_color5 빨간색

#속성 표시기_너비3 3

#속성 표시기_너비4 3

#속성 표시기_너비5 3

#속성엄격

//

//

//

//

//

//

열거형 enDisplay

{

dis_line, // 컬러 라인 표시

dis_bars, // 컬러 바 표시

dis_both // 컬러 라인과 막대를 모두 표시합니다.

};

extern int CCIperiod = 3; // CCI 기간

extern int ATRperiod = 300; // ATR 기간

extern ENUM_APPLIED_PRICE 적용_가격 = PRICE_TYPICAL; // 사용할 가격

extern enDisplay 디스플레이 유형 = dis_line; // 표시 유형

extern bool alertsOn = true; // 알림 켜기

외부 부울 alertsOnCurrent = 거짓; // 현재(아직 열려 있는) 막대에 대한 경고

extern bool alertsMessage = true; // 경고는 팝업 메시지를 표시해야 합니다.

extern bool alertsSound = true; // 경고는 소리를 재생해야 합니다.

extern bool alertsNotify = true; // 경고는 알림을 보내야 합니다.

extern bool alertsEmail = 거짓; // 경고는 enail을 보내야 합니다.

외부 문자열 soundFile = "o.wma"; // 사운드 파일 t 사운드 경고에 사용

이중 TrLine[];

이중 TrendDowna[];

이중 TrendDownb[];

이중 HistUp[];

이중 HistDn[];

이중 추세[];

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

정수 초기화()

{

표시 버퍼(6);

int styleLine = DRAW_LINE; if (DisplayType==dis_bars) styleLine=DRAW_NONE;

int styleBars = DRAW_HISTOGRAM; if (DisplayType==dis_line) styleBars=DRAW_NONE;

SetIndexBuffer(0, HistUp); SetIndexStyle(0,스타일바);

SetIndexBuffer(1, HistDn); SetIndexStyle(1, 스타일바);

SetIndexBuffer(2, TrLine); 세트인덱스스타일(2,스타일라인);

SetIndexBuffer(3, TrendDowna); SetIndexStyle(3,스타일라인);

SetIndexBuffer(4, TrendDownb); SetIndexStyle(4,스타일라인);

SetIndexBuffer(5, 추세);

리턴(0);

}

int deinit(){ 반환(0); }

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

정수 시작()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(바-카운트된_바,바-1);

//

//

//

//

//

if (trend[limit]==-1) CleanPoint(limit,TrendDowna,TrendDownb);

for(int i=limit; i >= 0; i--)

{

이중 cciTrendNow = iCCI(NULL, 0, CCI주기, 적용 가격, i);

if (cciTrendNow >= 0)

{

TrLine = NormalizeDouble(낮음 - iATR(NULL, 0, ATRperiod, i), 숫자);

if (i<(바-1) && TrLine < TrLine) TrLine = TrLine;

}

if (cciTrendNow <= 0)

{

TrLine = NormalizeDouble(높음 + iATR(NULL, 0, ATRperiod, i), 자릿수);

if (i TrLine) TrLine = TrLine;

}

//

//

//

//

//

TrendDowna = EMPTY_VALUE;

TrendDownb = EMPTY_VALUE;

if (i<(바-1))

{

추세 = 추세;

if (TrLine> TrLine) 경향 = 1;

if (TrLine< TrLine) 경향 =-1;

if (trend == -1) PlotPoint(i,TrendDowna,TrendDownb,TrLine);

if (경향 == 1) { HistUp = 높음; HistDn = 낮음; }

if (경향 == -1) { HistDn = 높음; HistUp = 낮음; }

}

}

관리 경고();

리턴(0);

}

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

//|

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

//

//

//

//

//

무효 관리 경고()

{

if(경고 켜짐)

{

int whichBar = 1; if (alertsOnCurrent) whichBar = 0;

if (추세[ whichBar] != 추세[ whichBar+1])

{

if (trend[whichBar] == 1) doAlert( whichBar,"up");

if (trend[whichBar] ==-1) doAlert( whichBar,"down");

}

}

}

//

//

//

//

//

무효 doAlert(int forBar, 문자열 doWhat)

{

정적 문자열 previousAlert="아무것도";

정적 날짜 시간 이전 시간;

문자열 메시지;

if (previousAlert != doWhat || previousTime != 시간[forBar]) {

이전 경고 = 할 일;

이전 시간 = 시간[forBar];

//

//

//

//

//

message = Symbol()+" at "+TimeToStr(TimeLocal(),TIME_SECONDS)+" SP MY 경향이 "+doWhat;

if (alertsMessage) 경고(메시지);

if (alertsNotify) SendNotification(메시지);

if (alertsEmail) SendMail(Symbol()+" SP MY", 메시지);

if (alertsSound) PlaySound(soundFile);

}

}

//------------------------------------------------ -------------------

//

//------------------------------------------------ -------------------

//

//

//

//

//

무효 CleanPoint(int i,double& 첫 번째[],double& 두 번째[])

{

if (i>=Bars-3) 반환;

if ((초 != EMPTY_VALUE) && (초 != EMPTY_VALUE))

두 번째 = EMPTY_VALUE;

또 다른

if ((첫 번째 != EMPTY_VALUE) && (첫 번째 != EMPTY_VALUE) && (첫 번째 == EMPTY_VALUE))

첫 번째 = EMPTY_VALUE;

}

무효 PlotPoint(int i,double& 첫 번째[],double& 두 번째[],double& from[])

{

if (i>=Bars-2) 반환;

if (첫 번째 == EMPTY_VALUE)

if (첫 번째 == EMPTY_VALUE)

{ 첫 번째 = 부터; 첫 번째 = ~에서; 두 번째 = EMPTY_VALUE; }

else { 두 번째 = ~에서; 두 번째 = ~에서; 첫 번째 = EMPTY_VALUE; }

else { 첫 번째 = 부터; 두 번째 = EMPTY_VALUE; }

}

s_p_mony__alerts_1.01.mq4

파일:
 
mony:
안녕하세요 여러분 저는 아래에 하나의 t4 표시기가 첨부되어 있습니다. 로봇 거래와 로봇 거래에 이것을 어떻게 사용할 수 있는지 알고 싶습니다.

(나는 이미 컴퓨터 앞에 앉아 수동 거래를 사용하지만)

자동 거래에 이것을 사용한다면 어떻게 도와주세요. 미리 감사드립니다.

//------------------------------------------------ ------------------

// 원래 ised 및 mony에 의한 첫 번째 구현

// mladen의 tris 버전

//------------------------------------------------ ------------------

#property copyright "mony & mladen"

#속성 링크 "www.forex.tsd.com에서 생성"

#속성 표시기_차트_창

#속성 표시기_버퍼 5

#property indicator_color1 미디엄블루

#property indicator_color2 빨간색

#property indicator_color3 미디엄블루

#property indicator_color4 빨간색

#property indicator_color5 빨간색

#속성 표시기_너비3 3

#속성 표시기_너비4 3

#속성 표시기_너비5 3

#속성엄격

//

//

//

//

//

//

열거형 enDisplay

{

dis_line, // 컬러 라인 표시

dis_bars, // 컬러 바 표시

dis_both // 컬러 라인과 막대를 모두 표시합니다.

};

extern int CCIperiod = 3; // CCI 기간

extern int ATRperiod = 300; // ATR 기간

extern ENUM_APPLIED_PRICE 적용_가격 = PRICE_TYPICAL; // 사용할 가격

extern enDisplay 디스플레이 유형 = dis_line; // 표시 유형

extern bool alertsOn = true; // 알림 켜기

외부 부울 alertsOnCurrent = 거짓; // 현재(아직 열려 있는) 막대에 대한 경고

extern bool alertsMessage = true; // 경고는 팝업 메시지를 표시해야 합니다.

extern bool alertsSound = true; // 경고는 소리를 재생해야 합니다.

extern bool alertsNotify = true; // 경고는 알림을 보내야 합니다.

extern bool alertsEmail = 거짓; // 경고는 enail을 보내야 합니다.

외부 문자열 soundFile = "o.wma"; // 사운드 파일 t 사운드 경고에 사용

이중 TrLine[];

이중 TrendDowna[];

이중 TrendDownb[];

이중 HistUp[];

이중 HistDn[];

이중 추세[];

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

정수 초기화()

{

표시 버퍼(6);

int styleLine = DRAW_LINE; if (DisplayType==dis_bars) styleLine=DRAW_NONE;

int styleBars = DRAW_HISTOGRAM; if (DisplayType==dis_line) styleBars=DRAW_NONE;

SetIndexBuffer(0, HistUp); SetIndexStyle(0,스타일바);

SetIndexBuffer(1, HistDn); SetIndexStyle(1, 스타일바);

SetIndexBuffer(2, TrLine); 세트인덱스스타일(2,스타일라인);

SetIndexBuffer(3, TrendDowna); SetIndexStyle(3,스타일라인);

SetIndexBuffer(4, TrendDownb); SetIndexStyle(4,스타일라인);

SetIndexBuffer(5, 추세);

리턴(0);

}

int deinit(){ 반환(0); }

//------------------------------------------------ ------------------

//

//------------------------------------------------ ------------------

//

//

//

//

//

정수 시작()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(바-카운트된_바,바-1);

//

//

//

//

//

if (trend[limit]==-1) CleanPoint(limit,TrendDowna,TrendDownb);

for(int i=limit; i >= 0; i--)

{

이중 cciTrendNow = iCCI(NULL, 0, CCI주기, 적용 가격, i);

if (cciTrendNow >= 0)

{

TrLine = NormalizeDouble(낮음 - iATR(NULL, 0, ATRperiod, i), 숫자);

if (i<(바-1) && TrLine < TrLine) TrLine = TrLine;

}

if (cciTrendNow <= 0)

{

TrLine = NormalizeDouble(높음 + iATR(NULL, 0, ATRperiod, i), 자릿수);

if (i TrLine) TrLine = TrLine;

}

//

//

//

//

//

TrendDowna = EMPTY_VALUE;

TrendDownb = EMPTY_VALUE;

if (i<(바-1))

{

추세 = 추세;

if (TrLine> TrLine) 경향 = 1;

if (TrLine< TrLine) 경향 =-1;

if (trend == -1) PlotPoint(i,TrendDowna,TrendDownb,TrLine);

if (경향 == 1) { HistUp = 높음; HistDn = 낮음; }

if (경향 == -1) { HistDn = 높음; HistUp = 낮음; }

}

}

관리 경고();

리턴(0);

}

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

//|

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

//

//

//

//

//

무효 관리 경고()

{

if(경고 켜짐)

{

int whichBar = 1; if (alertsOnCurrent) whichBar = 0;

if (추세[ whichBar] != 추세[ whichBar+1])

{

if (trend[whichBar] == 1) doAlert( whichBar,"up");

if (trend[whichBar] ==-1) doAlert( whichBar,"down");

}

}

}

//

//

//

//

//

무효 doAlert(int forBar, 문자열 doWhat)

{

정적 문자열 previousAlert="아무것도";

정적 날짜 시간 이전 시간;

문자열 메시지;

if (previousAlert != doWhat || previousTime != 시간[forBar]) {

이전 경고 = 할 일;

이전 시간 = 시간[forBar];

//

//

//

//

//

message = Symbol()+" at "+TimeToStr(TimeLocal(),TIME_SECONDS)+" SP MY 경향이 "+doWhat;

if (alertsMessage) 경고(메시지);

if (alertsNotify) SendNotification(메시지);

if (alertsEmail) SendMail(Symbol()+" SP MY", 메시지);

if (alertsSound) PlaySound(soundFile);

}

}

//------------------------------------------------ -------------------

//

//------------------------------------------------ -------------------

//

//

//

//

//

무효 CleanPoint(int i,double& 첫 번째[],double& 두 번째[])

{

if (i>=Bars-3) 반환;

if ((초 != EMPTY_VALUE) && (초 != EMPTY_VALUE))

두 번째 = EMPTY_VALUE;

또 다른

if ((첫 번째 != EMPTY_VALUE) && (첫 번째 != EMPTY_VALUE) && (첫 번째 == EMPTY_VALUE))

첫 번째 = EMPTY_VALUE;

}

무효 PlotPoint(int i,double& 첫 번째[],double& 두 번째[],double& from[])

{

if (i>=Bars-2) 반환;

if (첫 번째 == EMPTY_VALUE)

if (첫 번째 == EMPTY_VALUE)

{ 첫 번째 = 부터; 첫 번째 = ~에서; 두 번째 = EMPTY_VALUE; }

else { 두 번째 = ~에서; 두 번째 = ~에서; 첫 번째 = EMPTY_VALUE; }

else { 첫 번째 = 부터; 두 번째 = EMPTY_VALUE; }

}

s_p_mony__alerts_1.01.mq4

아직 EA에서 iCustom() 호출을 사용해 보셨습니까?

iCustom() 함수를 사용하여 표시기를 호출하고 추세 버퍼(메타 트레이더 지명의 버퍼 5)를 읽고 값이 -1에서 +1 또는 +1에서 -1로 변경되면 신호가 표시됩니다.

 

선생님 죄송합니다 선생님 ....... iCustom() 호출 이 무엇인지 모르겠습니다 .. 어디에서 시도할 수 있습니까 ??? ...... mt4에서 찾았거나 표시기를 수정할 때 이 SP 머니 표시기를 자동 거래/로보 거래에 어떻게 사용할 수 있는지 알려주십시오. .....

이 모든 과정이 긴 경우 실례합니다. 위의 게시물은 잊어주세요. 감사합니다.

사유: