코딩 도움말 - 페이지 281

 
mladen:
stevenpun 매수는 0.1랏 + 0.2랏, 매도는 0.4랏이라고 합니다. 해명해 주시겠습니까?

안녕하세요 mladen님, 답변이 늦어 죄송합니다.

며칠 동안 아팠기 때문입니다.

나는 사진을 만들었습니다

예를 들어, 매수가 2개의 미결 주문(0.1 Lot + 0.2 Lot)을 가지고 있지만 갑자기 기차가 매도로 변경되었습니다.

ea 는 0.1 Lot 에 의해 판매를 열 것이지만, 저는 0.4 Lot 에 열리기를 원합니다.

수정이 가능한가요?

파일:
lot_explain.jpg  121 kb
 
hermes:
다시 한 번 안녕하세요.

댓글과 함께 위의 것을 사용해 보았지만 Max만 표시되고 있었습니다. 두 가지 기능을 도와줄 수 있습니까? 하나는 Bid 바로 위의 라인 가격을 표시하고 두 번째 라인은 Bid 아래의 라인 가격을 표시합니다. 고맙습니다.

여기 코드가 있습니다.

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

//| SimpleGrid.mq4+

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

#포함하다

#포함하다

#속성엄격

// 내보낸 변수

extern string GridStartingPrice = "라인을 배치하기 위한 시작 가격";

외부 이중 GSP = 0.0;

외부 정수 GR = 5;

외부 이중 GridStep = 5;

외부 색상 CGL = 금색;

외부 색상 BGL = 녹색;

외부 색상 SGL = 빨간색;

extern bool ClearAllObjects = False;

// 지역 변수

이중 PipValue=1; // 이 변수는 5자리 브로커를 지원하기 위한 것입니다.

bool 종료됨 = false;

문자열 LF = "\n"; // 줄 바꿈이 필요한 사용자 지정 또는 유틸리티 블록에서 이것을 사용합니다.

정수 NDigits = 4; // Flex 유형 블록의 NormalizeDouble에 주로 사용됨

정수 개체 수 = 0; // 차트에 생성된 모든 객체의 수, 고유한 이름을 가진 객체 생성 허용

정수 전류 = 0;

정수 초기화()

{

NDigits = 숫자;

if (거짓) ObjectsDeleteAll(); // 차트 지우기

논평(""); // 차트 지우기

리턴(0);

}

// 전문가 시작

정수 시작()

{

if (막대 < 10)

{

Comment("막대가 부족합니다.");

리턴(0);

}

if (종료 == true)

{

Comment("EA 종료.");

리턴(0);

}

OnEveryTick7();

리턴(0);

}

무효 OnEveryTick7()

{

핍 값 = 1;

if (NDigits == 3 || NDigits == 5) PipValue = 10;

센터그리드라인();

}

무효 CenterGridLine()

{ if (ObjectFind("CGL") == (-1) )

{

{

문자열 objName = "CGL" ;

ObjectCreate(objName, OBJ_HLINE, 0, 시간[0],GSP);

ObjectSet(obj이름, OBJPROP_PRICE1, GSP);

개체 집합(OBJ 이름, OBJPROP_COLOR, CGL);

}

트레이드라인();

UprBnd();

LwrBnd();

}

}

무효 TradeLine()

{

정수 나;

이중 GridStep1= (GridStep*2);

이중 BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;

이중 SGSP= (GSP-((GridStep/2)*PipValue*Point));

더블 BBGSP= (BGSP-((GridStep*(GR))*PipValue*Point)) ;

이중 SSGSP= (SGSP+((GridStep*(GR))*PipValue*Point));

{

for(i=0; i<GR;i++)

{

SGL("판매"+i,BBGSP+GridStep1*i*PipValue*Point);

}

}

{

for(i=0; i<GR;i++)

{

BGL("구매"+i,SSGSP-GridStep1*i*PipValue*Point);

}

}

}

무효 BGL(문자열 objName, 두 배 가격)

{

ObjectCreate(objName, OBJ_HLINE, 0, 0, 가격);

ObjectSet(obj이름, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet(obj이름, OBJPROP_WIDTH, 1);

ObjectSet(objName, OBJPROP_COLOR, BGL);

}

무효 SGL(문자열 objName, 이중 가격)

{

ObjectCreate(objName, OBJ_HLINE, 0, 0, 가격);

ObjectSet(obj이름, OBJPROP_STYLE, STYLE_SOLID);

ObjectSet(obj이름, OBJPROP_WIDTH, 1);

ObjectSet(obj이름, OBJPROP_COLOR, SGL);

}

무효 UprBnd()

{ if (ObjectFind("UPRBND") == (-1) )

{

이중 BGSP= (GSP+((GridStep/2)*PipValue*Point)) ;

이중 가격= (BGSP+((GridStep*(GR))*PipValue*Point)) ;

문자열 objName = "UPRBND" ;

ObjectCreate(objName, OBJ_HLINE, 0, 시간[0], 가격);

ObjectSet(objName, OBJPROP_PRICE1, 가격);

ObjectSet(objName, OBJPROP_COLOR, DodgerBlue);

개체 집합(obj이름, OBJPROP_WIDTH,3);

}

}

무효 LwrBnd()

{ if (ObjectFind("LWRBND") == (-1) )

{

이중 SGSP= (GSP-((GridStep/2)*PipValue*Point));

이중 가격= (SGSP-((GridStep*(GR))*PipValue*Point));

문자열 objName = "LWRBND" ;

ObjectCreate(objName, OBJ_HLINE, 0, 시간[0], 가격);

ObjectSet(objName, OBJPROP_PRICE1, 가격);

ObjectSet(objName, OBJPROP_COLOR, 토마토);

ObjectSet(obj이름, OBJPROP_WIDTH, 3);

}

}

정수 초기화()

{

if (ClearAllObjects) ObjectsDeleteAll();

리턴(0);

}

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

헤르메스

mq4 파일을 첨부할 수 있나요?

 
mladen:
에르메스 mq4 파일을 첨부할 수 있나요?

여기있어. 감사해요

파일:
simpleg.mq4  4 kb
 

안녕,

내가 만든 Ea에 대한 도움이 필요합니다. 추세를 필터링하기 위해 2개의 이동 평균 및 2개의 다른 기간과 관련되어 있습니다. 거래를 필터링하기 위해 RSI 표시기를 추가하고 싶습니다(예: RSI 기간 8 레벨 50 설정). 교차점에서 RSI 레벨 50보다 높으면 우리는 매도 시장 주문만 엽니다. 교차할 때 RSI 레벨 50보다 낮으면 우리는 매수 시장 주문만 엽니다. Ea를 첨부합니다. 처음에는 keltnerchannels에 할당되었지만 지금은 Ma1 및 Ma2로만 사용하고 싶습니다.

어떤 신체가 이 변화를 도와줄 수 있습니까?

고맙습니다

파일:
 
hermes:
여기있어. 감사해요

헤르메스

이것을 시도하십시오 :simpleg_1.mq4

파일:
simpleg_1.mq4  6 kb
 
daniel1983:
안녕,

내가 만든 Ea에 대한 도움이 필요합니다. 추세를 필터링하기 위해 2개의 이동 평균 및 2개의 다른 기간과 관련되어 있습니다. 거래를 필터링하기 위해 RSI 표시기를 추가하고 싶습니다(예: RSI 기간 8 레벨 50 설정). 교차점에서 RSI 레벨 50보다 높으면 우리는 매도 시장 주문만 엽니다. 교차할 때 RSI 레벨 50보다 낮으면 우리는 매수 시장 주문만 엽니다. Ea를 첨부합니다. 처음에는 keltnerchannels에 할당되었지만 지금은 Ma1 및 Ma2로만 사용하고 싶습니다.

어떤 신체가 이 변화를 도와줄 수 있습니까?

고맙습니다

다니엘1983

mas와 rsis의 십자가를 동시에 얻지 못할 것이라고 거의 확신합니다(즉, 신호를 거의 받지 못할 것입니다). 사용해보십시오 : 설명하는 것을 수행하는 간단한 지표를 만들고 이러한 조건이 동시에 얼마나 드물게 발생하는지 볼 수 있습니다.

 
mladen:
daniel1983 mas와 rsis의 십자가를 동시에 얻지 못할 것이라고 거의 확신합니다(즉, 신호를 거의 받지 못할 것입니다). 사용해보십시오 : 설명하는 것을 수행하는 간단한 지표를 만들고 이러한 조건이 동시에 얼마나 드물게 발생하는지 볼 수 있습니다.

안녕 믈라덴

내 말은

- 0에서 50 사이의 모든 레벨에서만 판매

- 50에서 100 사이의 모든 레벨에서만 구매,

이 동일한 교차점이 아닌, 매수 시장 주문에 대한 교차는 모든 수준(43, 41, 18, 25)에 있을 수 있으며 더 높은 시간 프레임 추세를 확인합니다. 나는 이것을 테스트했고 이 필터를 사용하면 열린 주문의 약 80%가 반대 방향으로 열리지 않는 것처럼 보입니다.

현재 Ea는 교차점이 하락 추세를 시작할 때 매수 주문을 엽니다. 이 필터는 80%의 경우에 이 시점에서 주문을 입력하지 않고 이 교차점을 필터링합니다. 그 Ma가 건너는 곳.

이 Ea에서는 더 높은 시간 프레임을 입력했지만 추세 필터링을 위해 더 낮은 시간 프레임을 사용하여 더 나은 결과로 테스트했습니다.

구성된 테스트의 예 사진을 첨부합니다.

EURUSD의 경우

이 경우 나는 EMA 2와 EMA 67, 그리고 RSI(8) timeframe 1min과 Hitimeframe 5min을 사용하고 있습니다. 이 경우 당신은 수익성이 없는 구매 시장 주문을 가지고 있습니다. 이 구매 시장 주문은 EMA의 교차점에서 발생하지만 RSI는 50 이하 레벨.

그런 다음 교차점에서 열리는 매도 시장 주문이 있지만 RSI가 50 미만이고 이 주문은 모든 신호에서 필터링하려는 올바른 시장 주문입니다.

이것이 가능합니까?

고맙습니다

다니엘

파일:
rsi_filter.png  32 kb
 
mladen:
Hermes 이것을 시도하십시오 :simpleg_1.mq4

안녕하세요 믈라덴입니다.

마지막으로 이것을 사용하여 작동합니다. 감사합니다

무효 LoopBS()

{

이중 최대 =(ObjectGet("UPRBND",OBJPROP_PRICE1));

이중 최소 =(ObjectGet("LWRBND",OBJPROP_PRICE1));

(int i =ObjectsTotal()-1; i>=0; i--)

{

문자열 이름 = ObjectName(i);

if (StringSubstr(이름,0,3)=="구매")

{

더블 BS=ObjectGet(이름,OBJPROP_PRICE1);

if ((요청<BS) && (BSmin))

{

최대 = ObjectGet(이름,OBJPROP_PRICE1);

{

주석(DoubleToStr(BS,숫자)," ");

}

}

}

}

}

 

부정확한 신호

부정확한 신호

친애하는 장인 여러분! 더 잘하라는 신호를 보낼 수 있습니다. M1, M5, M15

파일:
.......png  31 kb
 
DMNIK:
부정확한 신호 친애하는 장인 여러분! 더 잘하라는 신호를 보낼 수 있습니다. M1, M5, M15

단순히 마지막 3개의 닫기가 마지막 3개의 열기보다 크거나 작다는 것을 보여줍니다. 그 점에서 개선할 점은 없다