코딩하는 방법? - 페이지 39

 

미쉬

나는 잠시 여유가 있었고, 내가 이해한 대로 당신의 의도를 포착하려고 시도했습니다.

파일:
advicerr.txt  2 kb
 

고맙습니다

ralph.ronnquist 감사합니다

이 기능은 정확히 내가 필요로 하는 것이며 동일한 기능 후에 다른 사람들에게 유용할 것입니다.

그렇지 않으면 특히 노력이 필요했기 때문에 더 일찍 감사했을 것입니다.

전략 테스터 에서 작동하도록 기능을 변경하는 간단한 방법이 있습니까? 테스터에서 하나의 통화로 작업한 결과는 수학을 올바르게 하기 위해 필요한 것을 매우 대략적으로 모방한다는 점을 제외하고는 거의 쓸모가 없다는 것을 알고 있습니다. 다시 한번 감사합니다!

 

DT_ZZ.mq4 기반 EA

나는 이것에 약간의 문제가 있다.

나는 DT_ZZ.mq4 표시기를 가지고 있으며 내가 보기에 이것은 매우 유망합니다. 나는 이 표시기가 다시 그려진다는 것을 알고 있으며 이것이 어떻게 작동하는지 보여줍니다.

화살표와 섹션이 같으면 막대가 닫힐 때까지 기다렸다가 그에 따라 매수/매도하십시오.

아무도 그들이 그것을 도울 수 있다고 생각합니까? (코드는 아래에 게시됩니다)

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

//| DT_ZZ.mq4 |

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

// Rosh에 의해 최적화됨

#속성 표시기_차트_창

#속성 표시기_버퍼 3

#property indicator_color1 녹색

#property indicator_color2 파란색

#property indicator_color3 빨간색

//---- 표시기 매개변수

외부 정수 ExtDepth=12;

외부 정수 계산 레벨 = 2;

//---- 표시기 버퍼

더블 zzL[];

이중 zzH[];

더블 zz[];

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

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

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

정수 초기화()

{

// IndicatorBuffers(3);

//---- 그리기 설정

SetIndexStyle(0,DRAW_SECTION);

SetIndexStyle(1,DRAW_ARROW);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(1,159);

SetIndexArrow(2,159);

//---- 표시기 버퍼 매핑

SetIndexBuffer(0,zz);

SetIndexBuffer(1,zzH);

SetIndexBuffer(2,zzL);

SetIndexEmptyValue(0,0.0);

SetIndexEmptyValue(1,0.0);

SetIndexEmptyValue(2,0.0);

//---- 인디케이터 짧은 이름

IndicatorShortName("DT_ZZ("+ExtDepth+")");

//---- 초기화 완료

리턴(0);

}

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

//| |

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

정수 시작()

{

int i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos;

더블 curlow,curhigh,lasthigh,lastlow;

이중 최소, 최대;

int counted_bars=IndicatorCounted();

if (counted_bars==0)

{

배열초기화(zz,0.0);

배열 초기화(zzL,0.0);

배열초기화(zzH,0.0);

lasthighpos=바; lastlowpos=바;

lastlow=낮음;lasthigh=높음;

Print("limit=",바 확장 깊이);

for(shift=Bars-ExtDepth; shift>=0; shift--)

{

curlowpos=최저(NULL,0,MODE_LOW,ExtDepth,shift);

curlow=낮음[curlowpos];

curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);

curhigh=높음[curhighpos];

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

if( curlow>=lastlow ) { lastlow=curlow; }

또 다른

{

//???? ????

if( lasthighpos>curlowpos )

{

zzL[curlowpos]=커로우;

///*

최소 = 100000; pos=lasthighpos;

for(i=lasthighpos; i>=curlowpos; i--)

{

(zzL==0.0) 계속하면;

if (zzL<min) { min=zzL; 위치=나; }

zz=0.0;

}

zz[pos]=분;

//*/

}

lastlowpos=curlowpos;

lastlow=커로우;

}

//--- 높은

if( curhigh<=lasthigh ) { lasthigh=curhigh;}

또 다른

{

// ???? ????

if( lastlowpos>curhighpos )

{

zzH[curhighpos]=커하이;

///*

최대=-100000; pos=lastlowpos;

for(i=lastlowpos; i>=curhighpos; i--)

{

(zzH==0.0) 계속하면;

if (zzH>max) { max=zzH; 위치=나; }

zz=0.0;

}

zz[pos]=최대;

//*/

}

lasthighpos=curhighpos;

lasthigh=커하이;

}

zz[0]=닫기[0];

}

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

}

또 다른

{

정수 pos2;

나는 = 0;

동안 (pos2<calculateLevel && i<Bars-1)

{

if (zz!=0 && (zzH!=0||zzL!=0)) pos2++;

나는 ++;

}

pos2=i-1;

(i=pos2-1;i>=0;i--)

{

zzH=0;

zzL=0;

zz=0;

}

if (zzH[pos2]!=0)

{

lasthighpos=pos2;

lasthigh=높음[pos2];

lastlowpos=최저(NULL,0,MODE_LOW,ExtDepth,pos2);

lastlow=낮음[lastlowpos];

}

또 다른

{

lastlowpos=pos2;

lastlow=낮음[pos2];

lasthighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,pos2);

lasthigh=높음[lasthighpos];

}

//------------------------- ????????? ????

인쇄("limit=",pos2-1);

for(shift=pos2-1; shift>=0; shift--)

{

curlowpos=최저(NULL,0,MODE_LOW,ExtDepth,shift);

curlow=낮음[curlowpos];

curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift);

curhigh=높음[curhighpos];

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

if( curlow>=lastlow ) { lastlow=curlow; }

또 다른

{

//???? ????

if( lasthighpos>curlowpos )

{

zzL[curlowpos]=커로우;

///*

최소 = 100000; pos=lasthighpos;

for(i=lasthighpos; i>=curlowpos; i--)

{

(zzL==0.0) 계속하면;

if (zzL<min) { min=zzL; 위치=나; }

zz=0.0;

}

zz[pos]=분;

//*/

}

lastlowpos=curlowpos;

lastlow=커로우;

}

//--- 높은

if( curhigh<=lasthigh ) { lasthigh=curhigh;}

또 다른

{

// ???? ????

if( lastlowpos>curhighpos )

{

zzH[curhighpos]=커하이;

///*

최대=-100000; pos=lastlowpos;

for(i=lastlowpos; i>=curhighpos; i--)

{

(zzH==0.0) 계속하면;

if (zzH>max) { max=zzH; 위치=나; }

zz=0.0;

}

zz[pos]=최대;

//*/

}

lasthighpos=curhighpos;

lasthigh=커하이;

}

}

//------------------------- ????????? ????

zz[0]=닫기[0];

}

반환(0);

}

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

이것은 4 전략 테스터 를 변경할 수 있습니까?

랄프.론퀴스트

많은 사람들이 그 사용을 요구하는 혜택을 받을 수 있는 훌륭한 기능을 아낌없이 제공했습니다.

내 문제는 내가 현재 프로그래밍에 너무 형편없어서 4 전략 테스터를 충분히 변경할 수 없는 것 같습니다.

테스트 목적으로 하나의 통화만 다른 통화를 사용하여 다양한 상황에서 거래의 수학을 계산하는 데 만족할 수 있습니다.

이 필요에 맞게 랄프의 작업을 변경할 수 있습니까?

고맙습니다

파일:
ralph.txt  2 kb
 

원칙적으로 "EURCHF" 문자열을 "EURUSD"로 변경하기만 하면 됩니다. 즉, 긴 "EURUSD" 대 짧은 "EURUSD"로 작업합니다.

 

나는 그것을 시도했다

답장을 보내주셔서 감사하지만 소용이 없었습니다. 당신이 제공한 코드는 저와 제 여자친구에게 우리가 프로그래밍에 대해 얼마나 알고 있는지에 대해 많은 것을 가르쳐주었습니다!

매우 감사합니다!

 

흠. 내가 볼 수 있는 유일한 "나쁨"은 "v == cut" 테스트로 두 개의 이중 숫자가 같은지 비교합니다. 전체 $ 금액만 보고 "euprofit", "ecprofit", "cut" 및 "v"를 "int" 유형으로 변경하는 것이 더 나을까요?

 
NTrader:
사소한 질문: 저는 처음으로 새로운 Personal Indicator를 작성하고 있습니다. start{} 메서드에서 Print ("...") 명령으로 만든 로그를 볼 수 없습니다. MetaTrader 4에서 어디에서 볼 수 있습니까?

좋아, 나는 Comment() 명령을 사용한다..

 

여기 덤보

안녕하세요 여러분

이것은 프로그래밍에 대해 아무것도 모르는 나와 같은 사람을 위한 훌륭한 스레드입니다. 그것은 많은 유용한 정보와 내가 복사하고 가지고 놀 수 있는 많은 작은 코드를 가지고 있습니다.

누군가 이 조각으로 나를 도울 수 있기를 바랍니다. 가격을 기준으로 EA를 만들고 싶습니다. 다음을 알리기 위해 코드에 무엇을 입력해야 합니까?

1) EA가 시차트에서 20:00시 가격을 보고 100sma와 어떤 관계가 있는지 보기를 원합니다.

2) 가격이 100sma 이상인 경우 특정 수준에서 2개의 매수 주문을 열고 싶습니다.

3) 이 수준은 16:00 양초의 종가를 기준으로 하므로 16:00 양초가 1.2000이면 1.1120과 1.2080에서 매수를 시작하고 싶습니다.

나는 스톱과 후행 스톱과 이익 수준을 모두 가지고 있고 이 쓰레드에서 가져온 모든 코드를 가지고 있습니다. 그래서 올려주신 분들께 감사드립니다. 나

누군가 나를 여기에서 도와준다면 나는 영원히 빚을 지게 될 것이다.

안부

수잔

 

돕다

안녕하세요 여러분

EA를 생성하려고 시도했는데 다음 오류 메시지가 나타납니다.

'\end_of_program' - 끝 대괄호 '}' 예상 C:\...\My_First_EA.mq4(96,1)

더블클릭해서 그 줄로 가서 그 앞에 여는 괄호로 확인 했는데 아직도 내가 어디서 실수했는지 모르겠다.

이것은 동일한 표시기를 기반으로 동일한 오류 메시지로 내가 시도한 두 번째 EA입니다.

고맙습니다.