파인턴 EA를 도와주세요

 

EA 미세 조정 좀 도와주세요

더 잘할 수 있습니다 - 내가 보는 모든 것은 잘못된 장소에서 사고 파는 것입니다.

파일:
jbtest3.mq4  5 kb
 
delcor wrote >>

EA 미세 조정 좀 도와주세요

더 잘할 수 있습니다 - 내가 보는 모든 것은 잘못된 장소에서 사고 파는 것입니다.

당신의 전략을 설명하시겠습니까? 미세 조정하기 전에 명시된 전략에 따라 코딩되었는지 확인해야 합니다.

코드가 정확하고 EA에서 좋지 않은 거래를 받고 있다면 전략에 잘못이 있습니까? 수동 거래에서 전략이 잘 작동합니까?

 
ronaldosim :

당신의 전략을 설명하시겠습니까? 미세 조정하기 전에 명시된 전략에 따라 코딩되었는지 확인해야 합니다.

코드가 정확하고 EA에서 좋지 않은 거래를 받고 있다면 전략에 잘못이 있습니까? 수동 거래에서 전략이 잘 작동합니까?

돌아와줘서 고마워

전략은 - 에마가 교차할 때만 매수 또는 매도해야 한다는 것입니다. 잘 작동하는 설정이 있고 십자가에서만 사고 팔면 이익을 얻을 것입니다.

그대로 묶었지만 2마의 십자가에서 사지 않는다

오픈 오더를 닫고 짧은 에마가 긴 에마와 교차할 때 매수해야 합니다. 이 단계에서는 그렇게만 하고 싶습니다.

그런 다음 2단계를 수행할 수 있습니다. 이 단계에서 자금 관리가 없습니다. 저는 프로그래밍을 처음 접하지만 더 배우고 싶습니다

도와 줄 수 있니

그것은 eur/usd 15 및 1h tf에서 작업을 수행하지만 충분하지 않습니다.

 
delcor wrote >>

돌아와줘서 고마워

전략은 - ema가 교차할 때만 매수 또는 매도해야 한다는 것입니다. 잘 작동하는 설정이 있고 십자가에서만 사고 팔면 이익을 얻을 것입니다.

그대로 묶었지만 2마의 십자가에서 사지 않는다

오픈 오더를 닫고 짧은 에마가 긴 에마와 교차할 때 매수해야 합니다. 이 단계에서는 그렇게만 하고 싶습니다.

그런 다음 2단계를 수행할 수 있습니다. 이 단계에서 자금 관리가 없습니다. 저는 프로그래밍이 처음이지만 더 배우고 싶습니다

도와 줄 수 있니

그것은 eur/usd 15 및 1h tf에서 작업을 수행하지만 충분하지 않습니다.

나는 그렇게 의심한다; EMA 교차 코드가 잘못되었습니다.

Ema=iMA(NULL,0,ShortEma,LongEma,MODE_EMA,PRICE_CLOSE,0);

longema와 shortema에 대해 각각 두 개의 iMA가 필요합니다.

SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);

LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);

SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);

LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

그리고 십자가를 확인하기 위해

if (SEMA1>LEMA1 && SEMA2<LEMA2) 구매 주문 보내기

그리고 판매용

(SEMA1<LEMA1 && SEMA2>LEMA2) 매도 주문을 보내는 경우

 
ronaldosim :

나는 그렇게 의심한다; EMA 교차 코드가 잘못되었습니다.

Ema=iMA(NULL,0,ShortEma,LongEma,MODE_EMA,PRICE_CLOSE,0);

longema와 shortema에 대해 각각 두 개의 iMA가 필요합니다.

SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);

LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);

SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);

LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

그리고 십자가를 확인하기 위해

if (SEMA1>LEMA1 && SEMA2<LEMA2) 구매 주문 보내기

그리고 판매를 위해

(SEMA1<LEMA1 && SEMA2>LEMA2) 매도 주문을 보내는 경우

좋아 그래서

SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);

LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);

SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);

LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

"미결 주문 조건 확인 - "이동 평균 얻기" 아래에 배치해야 합니다.

그리고 "

if (SEMA1>LEMA1 && SEMA2<LEMA2) 구매 주문 을 보내십시오 " where ?

또한 LEMA1 및 LEMA2를 맨 위에 정의해야 합니다.


이것에 여전히 새로운

스카이프를 원하시면 내 스카이프는 delcor59입니다.

당신의 도움을 주셔서 감사합니다

 
delcor wrote >>

좋아 그래서

SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);

LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);

SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);

LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

"미결 주문 조건 확인 - "이동 평균 얻기" 아래에 배치해야 합니다.

그리고 "

if (SEMA1>LEMA1 && SEMA2<LEMA2) 구매 주문을 보냅니다." 어디서 ?

또한 LEMA1 및 LEMA2를 맨 위에 정의해야 합니다.

이것에 여전히 새로운

스카이프를 원하시면 내 스카이프는 delcor59입니다.

당신의 도움을 주셔서 감사합니다

fr yr 자신의 코드를 수정하는 것과 같은 것....

무효 CheckForOpen()
{
더블 에마;
정수 해상도;
//---- 새 막대의 첫 번째 틱에 대해서만 거래를 시작합니다.
if(볼륨[0]>1) 반환;
//---- 이동 평균 얻기
Ema=iMA(NULL,0,ShortEma,LongEma,MODE_EMA,PRICE_CLOSE,0);
이중 SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
이중 LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);
이중 SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);
이중 LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

//---- 판매 조건
// if(Open[1]>Ema && Close[1]<Ema)
if (SEMA1<LEMA1 && SEMA2>LEMA2)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
반품;
}
//---- 구매 조건
// if(Open[1]<Ema && Close[1]>Ema)
if (SEMA1>LEMA1 && SEMA2<LEMA2)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
반품;
}
//----
}

무효 CheckForClose()
{
더블 에마;
//---- 새 막대의 첫 번째 틱에 대해서만 거래를 시작합니다.
if(볼륨[0]>1) 반환;
//---- 이동 평균 얻기
Ema=iMA(NULL,0,ShortEma,LongEma,MODE_EMA,PRICE_CLOSE,0);
이중 SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
이중 LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);
이중 SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);
이중 LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) 중단;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) 계속;
//---- 주문 유형 확인
if(주문유형()==OP_BUY)
{
// if(Open[1]>Ema && Close[1]<Ema)
if (SEMA1<LEMA1 && SEMA2>LEMA2) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
부서지다;
}
if(주문 유형()==OP_SELL)
{
// if(Open[1]<Ema && Close[1]>Ema)
if (SEMA1>LEMA1 && SEMA2<LEMA2) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
부서지다;
}
}
//----
}

 
ronaldosim :

fr yr 자신의 코드를 수정하는 것과 같은 것....

무효 CheckForOpen()
{
더블 에마;
정수 해상도;
//---- 새 막대의 첫 번째 틱에 대해서만 거래를 시작합니다.
if(볼륨[0]>1) 반환;
//---- 이동 평균 얻기
Ema=iMA(NULL,0,ShortEma,LongEma,MODE_EMA,PRICE_CLOSE,0);
이중 SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
이중 LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);
이중 SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);
이중 LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

//---- 판매 조건
// if(Open[1]>Ema && Close[1]<Ema)
if (SEMA1<LEMA1 && SEMA2>LEMA2)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
반품;
}
//---- 구매 조건
// if(Open[1]<Ema && Close[1]>Ema)
if (SEMA1>LEMA1 && SEMA2<LEMA2)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
반품;
}
//----
}

무효 CheckForClose()
{
더블 에마;
//---- 새 막대의 첫 번째 틱에 대해서만 거래를 시작합니다.
if(볼륨[0]>1) 반환;
//---- 이동 평균 얻기
Ema=iMA(NULL,0,ShortEma,LongEma,MODE_EMA,PRICE_CLOSE,0);
이중 SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
이중 LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);
이중 SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);
이중 LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) 중단;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) 계속;
//---- 주문 유형 확인
if(주문유형()==OP_BUY)
{
// if(Open[1]>Ema && Close[1]<Ema)
if (SEMA1<LEMA1 && SEMA2>LEMA2) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
부서지다;
}
if(주문 유형()==OP_SELL)
{
// if(Open[1]<Ema && Close[1]>Ema)
if (SEMA1>LEMA1 && SEMA2<LEMA2) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
부서지다;
}
}
//----
}

다시 감사합니다

어떤 것이 옳지 않습니다. 내가 Ea를 다시 테스트하면 구매만 표시되고 판매는 표시되지 않습니다.

 
delcor wrote >>

다시 감사합니다

어떤 것이 옳지 않습니다. 내가 Ea를 다시 테스트하면 구매만 표시되고 판매는 표시되지 않습니다.

매수 또는 매도 어떤 주문이 먼저 실행되는지에 따라 교차가 시작되면 주문이 실행되고 반대 교차가 발생하면 주문이 종료됩니다. yr start()에서 시장 주문의 존재를 확인할 때 주문 유형 중 하나가 실행되지 않도록 방지합니다. 즉, 구매로 시작할 때 항상 구매가 됩니다. 매도 주문을 시작하면 항상 매도 주문이 됩니다. 그 체크 조건을 꺼내

 
ronaldosim :

매수 또는 매도 어떤 주문이 먼저 실행되는지에 따라 교차가 시작되면 주문이 실행되고 반대 교차가 발생하면 주문이 종료됩니다. yr start()에서 시장 주문의 존재를 확인할 때 주문 유형 중 하나가 실행되지 않도록 방지합니다. 즉, 구매로 시작할 때 항상 구매가 됩니다. 매도 주문을 시작하면 항상 매도 주문이 됩니다. 그 체크 조건을 꺼내

EA 하단의 확인 조건을 말씀하시는 건가요?

//+----------------------------------------------- -------------------+
//| 시작 기능 |
//+----------------------------------------------- -------------------+
무효 시작()
{
//---- 내역 및 거래 확인
if(Bars<100 || IsTradeAllowed()==false) 반환;
//---- 현재 기호로 미결 주문 계산
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
그렇지 않으면 CheckForClose();
//----

}


도 있기 때문에

무효 CheckForOpen()

무효 CheckForClose()

 
delcor :

EA 하단의 확인 조건을 말씀하시는 건가요?

//+----------------------------------------------- -------------------+
//| 시작 기능 |
//+----------------------------------------------- -------------------+
무효 시작()
{
//---- 내역 및 거래 확인
if(Bars<100 || IsTradeAllowed()==false) 반환;
//---- 현재 기호로 미결 주문 계산
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
그렇지 않으면 CheckForClose();
//----

}


도 있기 때문에

무효 CheckForOpen()

무효 CheckForClose()




이 EA가 실행될 때 어떤 일이 발생하는지 단계별로 보여주기 위해 EA 프로그래밍에 테스트 시스템이 있는지 말해 주세요.

 
delcor wrote >>

EA 하단에 있는 확인 조건을 말씀하시는 건가요?

//+----------------------------------------------- -------------------+
//| 시작 기능 |
//+----------------------------------------------- -------------------+
무효 시작()
{
//---- 내역 및 거래 확인
if(Bars<100 || IsTradeAllowed()==false) 반환;
//---- 현재 기호로 미결 주문 계산
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
그렇지 않으면 CheckForClose();
//----

}

도 있기 때문에

무효 CheckForOpen()

무효 CheckForClose()

if(Bars<100 || IsTradeAllowed()==false) 반환;
//---- 현재 기호로 미결 주문 계산
CheckForOpen();
CheckForClose();
//----

사유: