코딩 도움말 - 페이지 202

 

오류 없이 차트에서 텍스트 출력을 이동할 수 없습니까???

현재 범위 정보 텍스트 출력은 가격 초로 덮여 있습니다. 내 코딩 기술은 모든 시도가 오류로 끝날 때 부적절합니다. 그림과 같이 차트의 텍스트 출력을 이동하려고합니다. 누군가 도와주시겠습니까? 미리 감사드립니다!!! ant-gubreakout.mq4

파일:
 
daytrade5:
현재 범위 정보 텍스트 출력은 가격 초로 덮여 있습니다. 내 코딩 기술은 모든 시도가 오류로 끝날 때 부적절합니다. 그림과 같이 차트에서 텍스트 출력을 이동하려고 합니다. 누군가 도와주시겠습니까? 미리 감사드립니다!!! ant-gubreakout.mq4

당일 거래5

metatrader 4를 사용할 때 텍스트 유형 개체에 대한 앵커를 선택할 수 없습니다(metatrader 4는 변경할 수 없는 개체에 대해 항상 고정 앵커를 사용합니다). 텍스트의 위치를 수정하는 하나의 버전을 첨부하지만(이를 위해 TEXT_OFFSET 사용) 때로는 값을 변경해야 하고 정렬이 100% 완벽하지 않습니다.

파일:
 
mladen:
daytrade5 metatrader 4를 사용할 때 텍스트 유형 개체에 대한 앵커를 선택할 수 없습니다(metatrader 4는 변경할 수 없는 그러한 개체에 대해 항상 고정 앵커를 사용합니다). 텍스트의 위치를 수정하는 하나의 버전을 첨부하지만(이를 위해 TEXT_OFFSET 사용) 때로는 값을 변경해야 하고 정렬이 100% 완벽하지 않습니다.

알겠습니다. 정말 감사합니다. 나는 결코 그것을 알아내지 못했을 것이다.

 

좋은 계류, 이 주문 경고 mq4를 도와주세요. 주문이 마감되면 경고를 보내지만 이제는 관련 기호가 실행되는 것이 아니라 프로필 에 열려 있는 차트당 모든 기호에 대해 보냅니다.

좋은 안부,

파일:
 
zigflip:
좋은 계류, 이 주문 경고 mq4를 도와주세요. 주문이 마감되면 경고를 보내지만 이제는 관련 기호가 실행되는 것이 아니라 프로필에 열려 있는 차트당 모든 기호에 대해 보냅니다. 좋은 안부,

지그플립

지금 사용해 보세요

 

4 cci에서 값을 얻는 방법을 알 수 없습니다.

안녕하세요,

나는 또 다른 질문을 얻었습니다. 내가 해결한 첫 번째 문제입니다. 이 mladen 주셔서 감사합니다

나는 mladen의 4 cci를 찾았고 그것을 매우 좋아합니다. 다시 칠한다는 것을 알고 있지만 여전히 작동합니다.

다른 자체 제작 지표에 4개의 값을 가져오려고 하지만 방법을 찾을 수 없습니다.

4cci의 값으로 이전 페이지의 bool 라인을 시도했지만 작동하지 않았습니다.

숙련된 코드에 대한 쉬운 솔루션이 있는 것 같은데 이미 많은 시간을 보내고 알아낼 수 없습니다.

조언 감사합니다

단발

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

#property copyright "mladen"

#속성 링크 "www.forex-tsd.cm"

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

#속성 표시기_분리_창

#속성 표시기_버퍼 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 창백한 보라색빨간색

#속성 표시기_최소 0

#속성 표시기_최대 5개

//

//

//

//

//

extern string TimeFrame1 = "현재 시간 프레임";

외부 문자열 TimeFrame2 = "next1";

외부 문자열 TimeFrame3 = "next2";

외부 문자열 TimeFrame4 = "next3";

extern int Period_CCI = 24;

extern string UniqueID = "4 시간 CCI 기울기";

외부 int LinesWidth = 0;

외부 색상 LabelsColor = DarkGray;

extern int LabelsHorizontalShift = 5;

외부 이중 LabelsVerticalShift = 1.5;

extern bool alertsOn = 거짓;

외부 int alertsLevel = 3;

외부 부울 경고 메시지 = FALSE;

extern bool alertsSound = false;

extern bool alertsEmail = 거짓;

//

//

//

//

//

이중 gosc1u[];

이중 gosc1d[];

이중 gosc2u[];

이중 gosc2d[];

이중 gosc3u[];

이중 gosc3d[];

이중 gosc4u[];

이중 gosc4d[];

int timeFrames[4];

부울 returnBars;

문자열 표시기 파일 이름;

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

//

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

//

//

//

//

//

정수 초기화()

{

SetIndexBuffer(0,gosc1u);

SetIndexBuffer(1,gosc1d);

SetIndexBuffer(2,gosc2u);

SetIndexBuffer(3,gosc2d);

SetIndexBuffer(4,gosc3u);

SetIndexBuffer(5,gosc3d);

SetIndexBuffer(6,gosc4u);

SetIndexBuffer(7,gosc4d);

IndicatorFileName = WindowExpertName();

returnBars = (TimeFrame1=="returnBars"); if (returnBars) return(0);

//

//

//

//

//

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

{

SetIndexStyle(i,DRAW_ARROW,EMPTY,LinesWidth); SetIndexArrow(i,110);

}

timeFrames[0] = stringToTimeFrame(TimeFrame1);

timeFrames[1] = stringToTimeFrame(TimeFrame2);

timeFrames[2] = stringToTimeFrame(TimeFrame3);

timeFrames[3] = stringToTimeFrame(TimeFrame4);

alertsLevel = MathMin(MathMax(alertsLevel,3),4);

IndicatorShortName(고유ID);

리턴(0);

}

정수 초기화()

{

(int t=0; t<4; t++) ObjectDelete(UniqueID+t);

리턴(0);

}

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

//

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

//

//

//

//

//

이중 추세[][6];

#define _up 0

#define _dn 1

#define _hl1 2

#define _hl2 3

#define _hl3 4

#define _hl4 5

정수 시작()

{

int i,r,count,counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

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

if (returnBars) { gosc1u[0] = 한계+1; 리턴(0); }

if (timeFrames[0] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[0],indicatorFileName,"returnBars",0,0)*timeFrames[0]/Period ()));

if (timeFrames[1] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[1],indicatorFileName,"returnBars",0,0)*timeFrames[1]/Period ()));

if (timeFrames[2] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[2],indicatorFileName,"returnBars",0,0)*timeFrames[2]/Period ()));

if (timeFrames[3] != Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrames[3],indicatorFileName,"returnBars",0,0)*timeFrames[3]/Period ()));

if (ArrayRange(trend,0)!=막대) ArrayResize(추세,막대);

//

//

//

//

//

부울 초기화 = 거짓;

만약 (!초기화)

{

초기화됨 = 참;

int 창 = WindowFind(고유ID);

(int t=0; t<4; t++)

{

문자열 레이블 = timeFrameToString(timeFrames[t]);

ObjectCreate(고유ID+t,OBJ_TEXT,창,0,0);

ObjectSet(고유ID+t,OBJPROP_COLOR,라벨색상);

ObjectSet(UniqueID+t,OBJPROP_PRICE1,t+LabelsVerticalShift);

ObjectSetText(UniqueID+t,label,8,"Arial");

}

}

(t=0; t<4; t++) ObjectSet(UniqueID+t,OBJPROP_TIME1,Time[0]+Period()*LabelsHorizontalShift*60);

//

//

//

//

//

for(i = 한계, r=Bars-i-1, i >= 0, i--,r++)

{

경향[r][_up] = 0;

경향[r][_dn] = 0;

추세[r][_hl1] = 추세[r-1][_hl1];

추세[r][_hl2] = 추세[r-1][_hl2];

추세[r][_hl3] = 추세[r-1][_hl3];

추세[r][_hl4] = 추세[r-1][_hl4];

for (int k=0; k<4; k++)

{

정수 y = iBarShift(NULL, 시간 프레임[k], 시간);

이중 cciNow = iCCI(NULL, timeFrames[k], Period_CCI, PRICE_TYPICAL, y);

이중 cciPre = iCCI(NULL, timeFrames[k], Period_CCI, PRICE_TYPICAL, y+1);

if (cciNow>cciPre) 경향[r][k+2] = 1;

if (cciNow<cciPre) 경향[r][k+2] = -1;

스위치(k)

{

경우 0 : if (trend[r][k+2]==1) { gosc1u = k+1; gosc1d = EMPTY_VALUE;} else { gosc1d = k+1; gosc1u = EMPTY_VALUE; } 부서지다;

경우 1 : if (trend[r][k+2]==1) { gosc2u = k+1; gosc2d = EMPTY_VALUE;} else { gosc2d = k+1; gosc2u = EMPTY_VALUE; } 부서지다;

경우 2 : if (trend[r][k+2]==1) { gosc3u = k+1; gosc3d = EMPTY_VALUE;} else { gosc3d = k+1; gosc3u = EMPTY_VALUE; } 부서지다;

경우 3 : if (trend[r][k+2]==1) { gosc4u = k+1; gosc4d = EMPTY_VALUE;} else { gosc4d = k+1; gosc4u = EMPTY_VALUE; } 부서지다;

}

if (경향[r][k+2]==1)

추세[r][_up] += 1;

그렇지 않으면 추세[r][_dn] += 1;

}

}

관리 경고();

리턴(0);

}

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

//|

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

//

//

//

//

//

무효 관리 경고()

{

if(경고 켜짐)

{

int whichBar = Bars-1;

if (trend[whichBar][_up] >= alertsLevel || trend[whichBar][_dn] >= alertsLevel)

{

if (trend[whichBar][_up] >= alertsLevel) doAlert("up" ,trend[whichBar][_up]);

if (trend[whichBar][_dn] >= alertsLevel) doAlert("down",trend[whichBar][_dn]);

}

}

}

//

//

//

//

//

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

{

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

정적 날짜 시간 이전 시간;

문자열 메시지;

if (previousAlert != doWhat || 이전시간 != 시간[0]) {

이전 경고 = 할 일;

이전 시간 = 시간[0];

//

//

//

//

//

메시지 = Symbol()+" at "+TimeToStr(TimeLocal(),TIME_SECONDS)+" "+howMany+" MA 추세의 시간 프레임이 정렬됨 "+doWhat;

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

if (alertsEmail) SendMail(Symbol()+" 4 시간 프레임 MA 추세", 메시지);

if (alertsSound) PlaySound("alert2.wav");

}

}

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

//

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

//

//

//

//

//

문자열 sTfTable[] = {"M1","M5","M15","M30","H1","H4","D1","W1","MN"};

int iTfTable[] = {1,5,15,30,60,240,1440,10080,43200};

//

//

//

//

//

int toInt(이중 값) { 반환(값); }

int stringToTimeFrame(문자열 tfs)

{

tfs = stringUpperCase(tfs);

정수 최대 = ArraySize(iTfTable)-1, 추가=0;

int nxt = (문자열 찾기(tfs,"NEXT1")>-1); if (nxt>0) { tfs = ""+ 마침표(); 추가=1; }

nxt = (문자열 찾기(tfs,"NEXT2")>-1); if (nxt>0) { tfs = ""+ 마침표(); 추가 = 2; }

nxt = (문자열 찾기(tfs,"NEXT3")>-1); if (nxt>0) { tfs = ""+ 마침표(); 추가=3; }

//

//

//

//

//

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

if (tfs==sTfTable || tfs==""+iTfTable) return(MathMax(iTfTable[toInt(MathMin(max,i+add))],Period()));

반환(마침표());

}

문자열 timeFrameToString(int tf)

{

(int i=ArraySize(iTfTable)-1; i>=0; i--)

if (tf==iTfTable) return(sTfTable);

반품("");

}

//

//

//

//

// //

문자열 stringUpperCase(문자열 str)

{

문자열 s = str;

(int 길이=StringLen(str)-1; 길이>=0; 길이--)

{

int char = StringGetChar(s, 길이);

if((문자 > 96 && 문자 223 && 문자 < 256))

s = StringSetChar(s, 길이, 문자 - 32);

else if(문자 > -33 && 문자 < 0)

s = StringSetChar(s, 길이, 문자 + 224);

}

보고);

}
 
BobMorane1000:
안녕하세요,

나는 또 다른 질문, 내가 해결한 첫 번째 문제를 얻었다. 이 mladen 주셔서 감사합니다

나는 mladen의 4 cci를 찾았고 그것을 매우 좋아합니다. 다시 칠한다는 것을 알고 있지만 여전히 작동합니다.

다른 자체 제작 지표에 4개의 값을 가져오려고 하지만 방법을 찾을 수 없습니다.

4cci의 값으로 이전 페이지의 bool 라인을 시도했지만 작동하지 않았습니다.

숙련된 코드에 대한 쉬운 솔루션이 있는 것 같은데 이미 많은 시간을 보내고 알아낼 수 없습니다.

조언 감사합니다

단발

밥모란1000

4번 대신 iCCI() 호출을 사용하는 것이 어떻습니까?

 

당신이 옳습니다, 나는 이것을 할 것입니다.

다시 한번 감사합니다

 

Pls는 누군가가 이 스토카스틱의 십자가에 화살표를 추가하도록 도와줄 수 있습니까?

파일:
 

[첨부]187655

안녕하세요 도움이 필요합니다:

나는 초를 녹색으로 색칠하고 추세를 읽는 멋진 Trendindicatoe를 가지고 있습니다. 그러나 버그가 있습니다. 시간 프레임을 변경할 때 색상을 동일하게 유지할 수 없습니다. 그러나 더 나쁜 것은 가발이 거의 보이지 않고 이것을 바꿀 수 없다는 사실입니다.

누가 좀 봐주시겠습니까?

정말 감사합니다. 인디케이터를 붙인다

파일:
t3_thv.ex4  5 kb