코딩 도움말 - 페이지 485

 
NWFstudent:
1시간 차트를 거래하고 4시간 차트를 표시하는 mtf 표시기를 사용한다고 가정해 보겠습니다. 그러면 다음 시간대에 설정을 사용하고 싶습니다.

즉. 나는 1시간 차트를 거래하고 있고 지표는 4시간 데이터를 사용하고 있습니다. 제 시간 프레임을 4시간으로 바꿀 때 지표가 4시간 이상의 시간 프레임으로 교체되기를 원하므로 이제 일일 데이터를 사용합니다.

이 스레드를 찾았지만 코더가 없기 때문에 코드에 붙여넣을 위치나 실제 표시기에 대한 수정이 필요한지 확실하지 않습니다.

다음 타임프레임 - MQL4 포럼

이것을 추가하고 싶은 지표는 엘리트 포럼의 "Traders Dynamic_Cb_ssa norm Index_alerts+arrows new 1.01"입니다.

NWF학생

https://www.mql5.com/en/forum/181187/page24 (최대 3번째 더 높은 시간 프레임 자동 선택 포함)

 

안녕하세요 mladen입니다.

오랫만에....약속할게.

이제 아시겠지만 저는 ADX 표시기의 열렬한 팬입니다.

나는 여러 가지 방법으로 그것을 사용하고 그것에 대해 거래를 입력하지 않습니다.

나는 또한 세 오리 지표의 원리를 좋아합니다

두 가지를 결합하려고 했지만 기쁨이 없었습니다.

한 번 더 시도한 다음 다른 것을 시도하겠습니다.

내가 볼 수있는 한 첨부 된 표시기는 표시기가 언급 된 영역 인 54,57,60 행만 있습니다.

다른 모든 것은 시간 프레임과 관련된 것으로 보입니다.

나는 'sma & SMA'에 대한 모든 언급을 제거 하려고 시도했지만 - & to adx & ADX, 그 자리에 있지만 운이 없습니다.

가능합니까, 그렇다면 (시간을 너무 많이 소비하지 않고) 방법을 알려주십시오.

잘 마무리하세요.

파일:
 
Jeeves:
안녕하세요 mladen입니다.

오랫만에....약속할게.

이제 아시겠지만 저는 ADX 표시기의 열렬한 팬입니다.

나는 여러 가지 방법으로 그것을 사용하고 그것에 대해 거래를 입력하지 않습니다.

나는 또한 세 오리 지표의 원리를 좋아합니다

두 가지를 결합하려고 했지만 기쁨이 없었습니다.

한 번 더 시도한 다음 다른 것을 시도하겠습니다.

내가 볼 수있는 한 첨부 된 표시기는 표시기가 언급 된 영역 인 54,57,60 행만 있습니다.

다른 모든 것은 시간 프레임과 관련된 것으로 보입니다.

나는 'sma & SMA'에 대한 모든 언급을 제거하려고 시도했지만 - & to adx & ADX, 그 자리에 있지만 운이 없습니다.

가능합니까, 그렇다면 (시간을 너무 많이 소비하지 않고) 방법을 알려주십시오.

잘 마무리하세요.

지브스

해당 표시기에서 sma 대신 adx를 사용할 수 없습니다. Adx 값은 완전히 다른 값 범위에 있으며 해당 지표가 코드에서 수행하는 대로 입찰가와 비교할 수 없습니다.

 
mladen:
NWFstudent 당신은 이것을 간단한 방법으로 할 수 있는 방법을 볼 수 있습니다: https://www.mql5.com/en/forum/181187/page24 (자동으로 3번째 높은 시간 프레임까지 선택 포함)

감사합니다 바로 복사 붙여넣기 였습니다

 

에게,

누군가가 나를 도울 수 있습니다.

이 " OrderModify 기능 에 대한 유효하지 않은 티켓 "에서 무슨 일이 일어났습니까?

그러나 다른에서는 그것을 거래할 수 있습니다.

외부 이중 로트 = 0.1;

extern double stopsize = 200;

extern 이중 profsize = 100;

외부 이중 위험 = 0.01;

실수;

인트 티켓;

이중 정지;

이중 교수;

정수 초기화() { 반환(0); }

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

정수 시작()

{

정수 총 주문 = 0;

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

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

if (OrderSymbol() == Symbol())

총주문++;

}

if (TotalOrders<1)

{

티켓=OrderSend(Symbol(), OP_SELL, getLots(위험), Bid, 3, 0, 0, NULL, LimeGreen);

stop=(입찰가+중지 크기*포인트);

prof=(입찰가-가격*포인트);

OrderModify(티켓, OrderOpenPrice(), 중지, 교수, 0, 파란색);

}

err=GetLastError();

논평(" ");

}

 
hock87:
에게,

누군가가 나를 도울 수 있습니다.

이 "OrderModify 기능에 대한 유효하지 않은 티켓"에서 무슨 일이 일어났습니까?

그러나 다른 곳에서는 그것을 거래할 수 있습니다.

이는 귀하의 주문이 승인/실행되지 않았으며 OrderSend() 함수 가 결과적으로 -1을 반환했음을 의미합니다. 새로 생성된 주문을 수정하기 전에 항상 해당 티켓 번호가 > -1인지 확인하십시오.

 

간단한 파일(기록 파일 아님) 사용의 예가 있습니까?

 
mladen:
xtractalpha 무슨 일이 일어나고 있는지 테스트해야 합니다. 문제가 무엇인지 찾으면 여기에 게시하겠습니다.

친애하는 믈라덴,

내 요청에 대한 업데이트가 있습니까?

주말을 즐기세요

미리 감사드립니다.

티에리

 
xtractalpha:
친애하는 믈라덴,

내 요청에 대한 업데이트가 있습니까?

주말을 즐기세요

미리 감사드립니다.

티에리

티에리

코드의 74번째 줄과 137번째 줄을 삭제합니다(두 줄 모두에서 LotizeCalc() 함수를 호출하고 그런 식으로 각 틱마다 로트 크기를 인위적으로 늘리고 있음)

해당 줄을 삭제하면 정상적으로 작동합니다.

 
mladen:
티에리

코드의 74번째 줄과 137번째 줄을 삭제합니다(두 줄 모두에서 LotizeCalc() 함수를 호출하고 있으며 그렇게 하면 매 틱마다 로트 크기를 인위적으로 늘리는 것입니다)

해당 줄을 삭제하면 정상적으로 작동합니다.

빠른 응답에 감사드립니다!

라인을 삭제했지만 EA는 여전히 잘못된 로트 크기로 거래를 시작하고 있습니다.

EA가 내 Martingale 코드를 무시하는 이유는 정말 이상합니다. EA는 lotsize 0.10 또는 0.20으로만 거래를 시작하기 때문에.... (그림 참조).

Lightshot의 스크린샷

내 lotsizecalc 함수에 문제가 있다고 생각합니다. 나는 거래를 잃을 때 내 lotsize에 마틴게일 금액을 곱하는 기능을 원합니다.

내 martingaleamount는 1.5이고 내 lotsize는 0.10입니다. 이것은 내가 연속으로 5번의 거래에서 졌을 때 로트 크기는 0.1, 0.15, 0.22, 0.34, 0.51이 된다는 것을 의미합니다.

double LotsizeCalc() { if(lastOrderProfit()<0 && tradeNumber <=MaximumTrades) { tradeNumber++; malot=OrderLots()*MartingaleAmount; } else { malot = LotSize; tradeNumber=1; } return(malot); }

누구든지 이 코드를 확인할 수 있습니까?

미리 감사드립니다.

티에리