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

 

시스템이 좀 이상하게 들립니다......

extern double Lots=0.1;

extern int TP=50;

extern int SL=50;

extern int timeframe=1;

extern bool close=false;

extern int Slippage=2;

extern int Magic=46151;

int init()

{

return(0);

}

int deinit()

{

return(0);

}

datetime LastTradeTime = 0;

int start()

{

int time=60*timeframe;

if(LocalTime()-LastTradeTime > time) {

if(close==true) {

if(OrdersTotal()!=0) {

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

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_SELL && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }

if(OrderType()==OP_BUY && OrderMagicNumber()==Magic) { OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Red ); }

} } }

OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green);

OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, Bid + SL * Point, Bid - TP * Point, NULL, Magic, 0, Red);

LastTradeTime = LocalTime(); }

return(0);

}

"닫기"가 true이면 시간 프레임(이 경우 1분)이 끝날 때 미결 주문을 닫습니다. SL/TP=100은 5자리 브로커에서 10핍을 의미합니다.

그건 그렇고, 나는 그것이 두 주문을 즉시 열지 확신하지 못합니다.

동시에 닫기와 열기(또는 2개 위치 열기)가 가능한가요?

이것은 물론 백테스트에서 잘 작동하지만 데모/라이브 계정 에서 작동하는지 모르겠습니다.

 

나는 그것을 어떤 브로커와도 작동시킬 수 없었습니다 ...

주문이 닫히고 열렸는지 확인 하기 위해 지연 및 확인 코드를 추가했습니다. 그렇지 않은 경우 다시 시도하십시오.

그럼에도 불구하고 여전히 일관되게 올바르게 작동하지 않습니다.

 

이것은 많은 전략에서 문제로 보입니다. 이 문제에 대한 해결책을 찾은 사람이 있습니까?

 

후행 중지 문제

나는 후행 정지를 사용하려고 할 때 엔화 쌍을 가지고 있습니다. 이익을 본 후 내 가격을 "0"으로 이동하십시오. 왜 그런 일이 발생하고 해결 방법을 알려줄 수 있습니까? 추적 주문은 5 자리 통화 에서 잘 작동합니다.

무효 TrailOrder(int 유형)

{

if(TrailingStop>0)

{

if(OrderMagicNumber() == MagicNumber)

{

if(유형==OP_BUY)

{

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

{

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

{

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

}

}

}

if(유형==OP_SELL)

{

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

{

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

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(Point*TrailingStop),OrderTakeProfit(),0,빨간색);

}

}

}

}

}

}

 
ajk:
나는 후행 정지를 사용하려고 할 때 엔화 쌍을 가지고 있습니다. 이익을 본 후 내 가격을 "0"으로 이동하십시오. 왜 그런 일이 발생하고 해결 방법을 알려줄 수 있습니까? 추적 주문은 5자리 통화에서 잘 작동합니다.

내 생각에는 (내 생각일 뿐입니다) 함수 가 있고 이 함수는 OrderOpenPrice(), OrderStopLoss() 등에 대해 아무것도 모르기 때문입니다. 이 코드를 루프 안에 넣는 것이 좋습니다.

 
ajk:
나는 후행 정지를 사용하려고 할 때 엔화 쌍을 가지고 있습니다. 이익을 본 후 내 가격을 "0"으로 이동하십시오. 왜 그런 일이 발생하고 해결 방법을 알려줄 수 있습니까? 추적 주문은 5자리 통화에서 잘 작동합니다.

NormalizeDouble(...)을 부지런히 사용하면 차이가 생길 수 있습니까?

 

다른 척도로 교차하는 두 지표를 코딩하는 방법

서로 다른 척도로 교차하는 두 지표를 코딩하는 방법은 무엇입니까?

나는 도움을 원한다

 

나는 무엇이든 할 것이다. 코더 전문가가 ea를 코딩하고 내가 수정했기 때문에 이상합니다. 나는 수많은 ea를 살펴보았지만 아무것도 찾을 수 없었습니다.

 

코드 작성 방법에 대한 제안

무효 TrailOrder(int 유형)

호출 기능 ?

기능을 완전히 제거하고 외부 e 후행 ea...argh>를 사용할 수도 있습니다!

 
ajk:
코드 작성 방법에 대한 제안

무효 TrailOrder(int 유형)

호출 기능?

기능을 완전히 제거하고 외부 e 후행 ea...argh>를 사용할 수도 있습니다!

원한다면 EA를 고칠 수 있습니다. PM으로 보내주세요.