에마 크로스! - 페이지 55

 

에마_크로스_2

친애하는 코더 구루,

EA와 역추세 개념에 감사드립니다.

처음으로 나와 내 친구는 이 반대 추세 방법에 회의적이지만 EA를 연구하고 앞으로 테스트한 후 결과에 놀랐습니다.

우리는 여전히 시간 프레임 H1에서 EMA_CROSS_2를 계속 테스트하지만 EUR/USD 쌍 에서 흥미로운 것을 발견했습니다. 2006년 4월 3일 아래로 넘어간 후 이 EA 공개 매도 포지션을 매수 포지션으로 전환했습니다.... 정상적인 행동입니까? (첨부 파일을 참조)

고맙습니다...

역풍

 

7

안녕하세요 여러분,

나는 콘테스트를 위해 10개의 EA를 작성했지만 테스트하기에는 너무 많았습니다.

그래서 저는 그 중 3개를 콘테스트에 선택하고 여기에 7개를 제출하겠습니다. 그들은 앞으로 테스트에서 이익을 얻고 있습니다.

즐기시기 바랍니다!

 

코더,

나는 돌아가서 전체 스레드를 읽을 것이지만 이것이 해결되었는지 기억할 수 없습니다.

InterbanFX, MT4 등 플랫폼을 닫을 때, 내가 위치에 있지 않고 최신 MA EA가 있는 경우 자동으로 거래를 실행한다는 것을 알았습니다.

소프트웨어를 다시 열 때마다 이러한 일이 발생하지 않도록 하려면 어떻게 해야 합니까?

감사해요

 

초보자는 MA 크로스 EA에 대한 도움이 필요합니다 ...

codersguru:
아마나트,

이것은 내 보고서(첨부)입니다!

그리고 이것은 내가 사용한 버전(첨부)입니다!

백테스트만 중계할 수는 없다고 생각합니다. 그러나 내 테스트에서는 2005/01/01부터 오늘까지의 날짜를 사용했습니다!

MoneyMaker를 앞으로 테스트하는 사람이 있습니까?

안녕하세요 CodersGuru입니다.

RSI 및 스토캐스틱 필터가 있는 5 EMA 및 10 LWMA 교차와 함께 작동하도록 원본 EMA_Cross EA를 약간 수정했습니다. 이 EA는 LONG 및 SHORT 주문을 열고 올바르게 청산하지만 동시에 포지션을 청산한 다음 반대 방향으로 즉시 새 포지션을 개설할 수 없습니다(예: 진정한 "스윙" 거래 기술). 따라서 잠재적인 스윙 트레이드에서 많은 손실을 보게 됩니다.

또한 EMA1 > WMA1 및 EMA2 < WMA2의 교차 조건은 과거 기간의 두 이동 평균이 동일한 값이거나 서로 1~2핍 내에 있는 경우 매수를 유발하지 않을 수 있습니다. 따라서 항목을 트리거하기 위해 그러한 종류의 조건(자주 발생함)을 찾는 코드를 추가하고 싶습니다.

저는 코더가 아니므로 이 작업을 수행하는 방법을 알아내는 데 도움이 되기를 바랍니다.

아래에 내 코드 인라인과 MQ4 파일을 첨부 파일로 포함했습니다. 어떤 도움이라도 대단히 감사하겠습니다!

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

//| 5/10 MA Cross w RSI 및 Stoch 필터 |

//| Ian Boersma - 저작권 2006 |

//| |

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

#재산권 "Ian Boersma"

//---- 입력 매개변수

외부 이중 TakeProfit=100;

외부 이중 로트=1;

외부 이중 TrailingStop=35;

외부 정수 ShortEma = 5;

외부 int LongWma = 10;

외부 정수 RSIPer = 14;

외부 int StochK = 10;

외부 int StochD = 3;

extern int StochSlow = 3;

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

//| 전문가 초기화 기능 |

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

정수 초기화()

{

//----

//----

리턴(0);

}

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

//| 전문가 초기화 해제 기능 |

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

정수 초기화()

{

//----

//----

리턴(0);

}

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

//| 전문가 시작 기능 +

//| 여기에서 프로그램 사용을 위해 내부 변수를 초기화합니다. + |

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

정수 시작()

{

//----

//LotCalc 선언

int cnt, 티켓, 합계;

//MA 및 필터 변수 선언

이중 RSI;

더블 스토크;

이중 EMA1, EMA2, WMA1, WMA2;

if(막대<100)

{

Print("100개 미만의 막대");

리턴(0);

}

if(테이크프로핏<10)

{

Print("TakeProfit이 10 미만입니다.");

리턴(0); // TakeProfit 확인

}

//MA 및 필터 변수 정의

EMA1 = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0);

WMA1 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,0);

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

WMA2 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,1);

RSI = iRSI(NULL,0,RSIPer,PRICE_CLOSE,0);

Stoch = iStochastic(NULL,0,StochK,StochD,StochSlow,MODE_SMA,0,MODE_MAIN,0);

정수 isCrossed = 0;

if (EMA1 > WMA1 && EMA2 = 50 && Stoch < 80)

{isCrossed = 1;

}

if (EMA1 = WMA2 && RSI 20)

{isCrossed = 2;

}

//거래 터미널이 비어 있는지 확인합니다.

총계 = OrdersTotal();

if(total < 1) //거래 터미널이 비어 있으면...

{

if(isCrossed == 1) //십자가가 긴 스윙을 나타내는 경우...

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,0,Ask+TakeProfit*Point,"내 EA",12345,0,Yellow);

if(티켓>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("구매 주문이 열렸습니다: ",OrderOpenPrice());

}

else Print("구매 주문 열기 오류: ",GetLastError());

리턴(0);

}

if(isCrossed == 2) //십자가가 짧은 스윙을 나타내는 경우...

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,0,Bid-TakeProfit*Point,"내 EA",12345,0,Red);

if(티켓>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print(" SELL 주문 이 열렸습니다 : ",OrderOpenPrice());

}

else Print("판매 주문 열기 오류: ",GetLastError());

리턴(0);

}

리턴(0);

}

//위치 이탈 함수...

for(cnt=0;cnt<전체;cnt++)

{

주문 선택(cnt, SELECT_BY_POS, MODE_TRADES);

주문인쇄();

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())

{

if(OrderType()==OP_BUY) // 롱 포지션 오픈

{

// SHORT 교차 조건이 있는지 확인합니다...

if(isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(), 입찰, 3, 보라색); // 닫기 위치

리턴(0); // 출구

}

// 조정이 필요한지 확인하기 위해 후행 정지점을 확인합니다.

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

리턴(0);

}

}

}

}

else // 숏 포지션으로 이동

{

// LONG 교차 조건이 있는지 확인합니다...

if(isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,바이올렛); // 닫기 위치

리턴(0); // 출구

}

// 조정이 필요한지 확인하기 위해 후행 정지점을 확인합니다.

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

리턴(0);

}

}

}

}

}

}

리턴(0);

}

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

 
iboersma:
안녕하세요 CodersGuru입니다.

RSI 및 스토캐스틱 필터가 있는 5 EMA 및 10 LWMA 교차와 함께 작동하도록 원본 EMA_Cross EA를 약간 수정했습니다. 이 EA는 LONG 및 SHORT 주문을 열고 올바르게 청산하지만 동시에 포지션을 청산한 다음 반대 방향으로 즉시 새 포지션을 개설할 수 없습니다(예: 진정한 "스윙" 거래 기술). 따라서 잠재적인 스윙 트레이드에서 많은 손실을 보게 됩니다.

또한 EMA1 > WMA1 및 EMA2 < WMA2의 교차 조건은 과거 기간의 두 이동 평균이 동일한 값이거나 서로 1~2핍 내에 있는 경우 매수를 유발하지 않을 수 있습니다. 따라서 항목을 트리거하기 위해 그러한 종류의 조건(자주 발생함)을 찾는 코드를 추가하고 싶습니다.

저는 코더가 아니므로 이 작업을 수행하는 방법을 알아내는 데 도움이 되기를 바랍니다. ....

확인 하겠습니다!

 
codersguru:
확인하겠습니다!

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

- 이안

 
codersguru:
확인하겠습니다!

코더 구루,

'isCrossed' 조건을 결정하는 데 문제가 있음을 발견하여 내 EA의 최신 버전을 첨부했습니다.

바라건대 이것은 더 의미가 있습니다 ...

- 이안

 
iboersma:
도와주셔서 감사합니다... - 이안

1번 포인트가 효과가 있는 것 같아요.

파일:
 
codersguru:
1번 포인트가 효과가 있는 것 같아요.

시원한. 확실히 제가 찾던 스톱 앤 리버스 형 시스템처럼 보이네요(순수익은 그다지 고무적이지 않아 보이긴 하지만...:))

나는 일주일 정도 이 시스템을 수동으로 사용해 왔으며 매우 고무적인 결과를 얻었습니다. 그래서 전체 백테스팅 수치를 다시 가져와 내가 뭔가를 하고 있는지 아니면 운이 좋은지 확인하는 것은 흥미로울 것입니다...

- 이안

 
gody6000:
2주차입니다 ㅋㅋ http://9q9q.com/March/1144348631.zip

죄송합니다! 근데 이게 뭐야?

사유: