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

 

초보자...

먼저 모두 새해 복 많이 받으세요!

이 포럼에서 공유하는 모든 지식에 감사드립니다.

mql4에 접근 중입니다. 저는 코더가 아닙니다.

이 매우 간단한 전략을 작성하는 데 약간의 지원을 해주시면 감사하겠습니다.

긴 항목:

(ask-bid) <= Z_pips /* 스프레드 체크 */

그리고

(bollinger_up-bollinger_down) <= K_pips /* 휘발성 검사 */

그리고

Ask < (bollinger_down + X_pips) /* 가격 확인 */

그리고

ma_Qperiods >= ma_Wperiods /* 추세 확인 */

종료:

후행 SL = 15핍

아무도 나에게 기회를 줄 시간이 있습니까?

미리 감사드립니다

절대

 

내 nr7 표시기에 도움이 필요합니다

안녕하세요

나는 nr7에 대한 codng 지표입니다.

알고는

- 범위를 계산하고 배열에 저장

- 현재 범위 <= 마지막 7개 범위인 경우 현재 막대는 nr7입니다.

그러나 표시기는 모든 막대에 nr7로 플래그를 지정하는 것 같습니다. 내가 어디서 실수했는지 몰라.

스크린샷은 여기

2010-01-18_0531

파일:
nr7.mq4  3 kb
 

어드밴스드사르 EA

안녕 친구들,

다른 스레드에서 가져온 EA를 수정하는 데 도움을 줄 수 있는 사람이 있다면 모든 도움이 필요하지만 불행히도 mql 파일이 없습니다.

이 EA의 원래 논리에서 아래와 같이 약간 수정하고 싶습니다.

- 이 EA는 4자리에서만 작동하므로 5자리에서도 작동할 수 있도록 개선하는 데 도움이 됩니다.

- 이 EA는 일반적인 martingale 시스템에 따라 작동하므로 2X 메서드 작동 모드를 더 추가해야 합니다.

1. EA가 마지막 거래에서 주문을 열고 TP에 도달하면 EA는 새로운 사이클을 시작하고 마지막 주문과 동일한 주문으로 거래를 엽니다. 예: 마지막 거래가 매수 주문이고 TP에 도달하면 EA는 SL에 도달하지 않는 한 계속 매수 거래를 열고 EA는 반대 방향 매도 주문 으로 주문을 변경합니다. 매도 주문에 대해서도 마찬가지입니다. 그들이 매도 주문에서 이익을 얻는 한, 그들은 SL을 얻고 매수 주문으로 방향이 바뀔 때까지 새로운 주기로 매도 주문을 계속 엽니다.

2. 두 번째 모드 작동. EA는 매수-매도-매수-매도-매수 시퀀스 논리를 사용하며 이 모드는 추세가 없는 시장 범위에 맞게 설계되었습니다.

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

감사해요

요하

파일:
 

이 EA가 주문을 하지 않는 이유를 아십니까?

안녕하세요 여러분, 오랜만에 이 게임으로 돌아왔습니다. .... 어쨌든 mql에서 새로 고침을 시작했습니다. ...많은 부분이 변경되었습니다.

기본적으로 양쪽 바가 열리는 지점에서 10핍 떨어진 곳에 보류 중인 매수 및 매도 주문 을 하고 싶습니다. Takeprofit은 보류 중인 주문에서 15핍 떨어져 있습니다.

문제는 주문이 들어오지 않는다는 것...

int counted_bars = IndicatorCounted();

int pos = Bars - counted_bars + 1;

if (counted_bars == 0) pos = Bars - 10;

if (counted_bars>0) counted_bars--;

double currentPrice = iClose("EURUSD",PERIOD_M1,0);

while(pos>0)

{

//Putting Pending LongOrder

Print("Long...");

OrderSend("EURUSD",OP_BUYLIMIT,1,Open+10*Point,3,0,Open+25*Point,"Pending Long Order", 888, 0, Green);

Print("Short...");

//Putting Pending ShortOrder

OrderSend("EURUSD",OP_SELLSTOP,1,Open-10*Point,3,0,Open-25*Point,"Pending Short Order", 999, 0, Red);

pos--;

}
 

계산된 막대가 EA와 어떤 관련이 있는지 잘 모르겠습니다. 지표에 사용하도록 설계되지 않았습니까?

그 부분만 빼면 괜찮을 것 같아요.

 

날짜/시간 변수

안녕,

실제 데이터와 시간을 쓰고 싶습니다.

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

이것을 어떻게 쓸 수 있습니까?

그러나 이것을 어떻게 쓸 수 있습니까?

시작 시간 = 날짜 + 시작 시간 + 시작 분;

 

당신이 무엇을 묻고 있는지 확실하지 않지만 날짜를 시간과 분 단위로 증가시키려고 한다고 생각합니다. TimeCurrent()에 대한 도움말 파일을 보면 시간을 초로 반환하는 것을 볼 수 있습니다. 따라서 논리적으로 분을 추가하려면 60을 곱하고 몇 시간 동안은 3600(60*60)을 곱해야 한다고 추론할 수 있습니다.

그래서 당신은 같은 것을 가질 것입니다 ...

TimeCurrent()+(starthour*3600)+(startmin*60);

TimeCurrent() 를 'startdate'로 지정한 시간으로 바꾸면 됩니다.

럭스

 
sunshineh:
안녕,

실제 데이터와 시간을 쓰고 싶습니다.

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

이것을 어떻게 쓸 수 있습니까?

그러나 이것을 어떻게 쓸 수 있습니까?

시작 시간 = 날짜 + 시작 시간 + 시작 분;

StrToTime 함수 를 사용합니다. 이 함수에 요일을 전달하지 않고 시와 분만 전달하면 현재 요일이 사용됩니다. 이와 같이:

날짜/시간 startTime = StrToTime( StartHour+":"+ StartMinute);

여기서 StartHour 및 StartMinute는 문자열입니다.

문자열 시작 시간 = 8;

문자열 시작분 = 0;

 

정말 감사합니다!!

다른 질문도 있습니다.

내 EA가 양초의 종가에서만 사거나 팔도록 하려면 어떻게 코딩할 수 있습니까?

쓸 수 있을 줄 알았는데

if(!Close[0]) return;

하지만 작동하지 않습니다.

 
sunshineh:
정말 감사합니다!!

다른 질문도 있습니다.

내 EA가 양초의 종가에서만 사거나 팔도록 하려면 어떻게 코딩할 수 있습니까?

쓸 수 있을 줄 알았는데

if(!Close[0]) return;
하지만 작동하지 않습니다.

다음과 같이 변수를 정의해야 합니다.

정수 막대 수 = 0;

전역 섹션에서(예: init 함수 바로 앞)

그런 다음 sendOrder 기능이 있는 부분이 있는 시작 기능에서 이 조건을 확인해야 합니다.

if(막대>막대 번호)

그리고 그것이 사실이라면 우리의 변수 barNumber를 Bars로 설정하십시오

barNumber = 막대;

따라서 모두 다음과 같이 보일 것입니다.

#일부 속성

정수 막대 수 = 0;

정수 초기화()

{

}

정수 정의()

{

}

정수 시작()

{

if(막대>막대 번호)

{

주문 보내기(...);

barNumber = 막대;

}

}