코딩 도움말 - 페이지 16

 
nontan:
안녕하세요 천재코더&친절한 사람들입니다:D

이제 간단한 EA를 개발 중이지만 아래 조건을 이해할 수 없습니다.

이익실현으로 이전 포지션이 청산된 경우, 다음 오픈 가격에서 s/l 및 t/p로 20핍을 설정하는 새로운 항목을 만드십시오.(5M 차트에서)

한번 써보기로 했습니다.

if(OrderSelect(1,SELECT_BY_POS,MODE_HISTORY)) //마지막 위치는 즉석 주문 OP_BUY 또는 OP_SELL

{

if(OrderClosePrice() == OrderTakeProfit()) // IF 종가가 이익실현 가격과 동일한 경우

{

if(OrderType() == OP_BUY) // 해당 주문의 주문 유형은 구매입니다.

{

OrderSend(OP_BUY,Lots,Ask,Slippage,SLpips,Ask+20*Point,"",MAGIC);//Lot 및 기타 변수는 본인이 정의합니다.

}

그렇지 않으면(주문 유형() == OP_SELL)

{

OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);

}

}

전략 테스터로 여러 번 실행해 보았지만 원하는 대로 실행할 수 없습니다.

이 질문에서 어떤 몸이 나에게 도움을줍니다 !!

문안 인사.

[lang=pl]안녕하세요.

EA의 전체 코드를 첨부할 수 있습니까?

건배,

그르제식[/lang]

 

...

이것을 비교하여 사용해보십시오

if (NormalizeDouble(OrderClosePrice(),Digits) == NormalizeDouble(OrderTakeProfit(),Digits))

아마도 도움이 될 것입니다

nontan:
안녕하세요 천재코더&친절한 사람들입니다:D

이제 간단한 EA를 개발 중이지만 아래 조건을 이해할 수 없습니다.

이익실현으로 이전 포지션이 청산된 경우, 다음 오픈 가격에서 s/l 및 t/p로 20핍을 설정하는 새로운 항목을 만드십시오.(5M 차트에서)

한번 써보기로 했습니다.

if(OrderSelect(1,SELECT_BY_POS,MODE_HISTORY)) //마지막 위치는 즉석 주문 OP_BUY 또는 OP_SELL

{

if(OrderClosePrice() == OrderTakeProfit()) // IF 종가가 이익실현 가격과 동일한 경우

{

if(OrderType() == OP_BUY) // 해당 주문의 주문 유형은 구매입니다.

{

OrderSend(OP_BUY,Lots,Ask,Slippage,SLpips,Ask+20*Point,"",MAGIC);//Lot 및 기타 변수는 본인이 정의합니다.

}

그렇지 않으면(주문 유형() == OP_SELL)

{

OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);

}

}

전략 테스터로 여러 번 실행해 보았지만 원하는 대로 실행할 수 없습니다.

이 질문에서 어떤 몸이 나에게 도움을줍니다 !!

문안 인사.
 

감사합니다.

NormarizeDouble을 삽입하려고했지만 작동하지 않았습니다..

왜 작동하지 않는지 가르쳐 주시겠습니까?

-------------------------------------------------- -

#포함하다

#define MAGIC 20120101

#define 코멘트 "Riding9"

extern 이중 랏 = 0.1;

extern int 미끄러짐 = 3;

외부 정수 SLpips = 20;

외부 정수 TPpips = 50;

외부 정수 시작 시간 = 1;

외부 정수 FinishTime = 23;

외부 정수 MAPeriod = 48;

int EntrySignal(int 매직)

{

이중 위치 = MyCurrentOrders(MY_OPENPOS, 마술);

이중 Ma9 = iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

정수 ret = 0;

if((pos <= 0) && (닫기[3] 열기[2] && 열기[2] >= Ma9) || (열기[2] Ma9)) && (닫기[1] > 열기[1] && 열기 [1] > Ma9)) ret = 1;

else if((pos <= 0) && (열기[3] Ma9) && (닫기[2] Ma9) && (닫기[1] > 열기[1] && 닫기[1] > Ma9)) ret = 1;

if((pos >= 0) && (닫기[3] >= Ma9) && ((닫기[2] < 열기[2] && 열기[2] Ma9 && 닫기[2] < Ma9)) && (닫기[1 ] < 열기[1] && 열기[1] < Ma9)) ret = -1;//

else if((pos >= 0) && (열기[3] > Ma9 && 닫기[3] 열기[2] && 열기[2] < Ma9) && (닫기[1] < 열기[1] && 닫기[1] < Ma9)) ret = -1;

리턴(레트);

}

bool MyOrderSendSL(int type, double lot, double price, int slippage, int slpips, int tppips, string comment, int magic)

{

정수 = 1;

if(숫자 == 3 || 숫자 == 5) mult=10;

미끄러짐 *= mult;

if(유형==OP_SELL || 유형==OP_SELLLIMIT || 유형==OP_SELLSTOP) mult *= -1;

이중 sl=0, tp=0;

if(slpips > 0) sl = 가격-slpips*Point*mult;

if(tppips > 0) tp = 가격+tppips*포인트*멀티;

return(MyOrderSend(유형, 제비, 가격, 미끄러짐, sl, tp, 설명, 마술));

}

정수 시작()

{

if(Hour() >= StartTime && Hour() < FinishTime)

{

int sig_entry = EntrySignal(MAGIC);

if(서명 항목 > 0)

{

MyOrderClose(슬립페이지, 매직);

MyOrderSendSL(OP_BUY, 랏, 물어보기, 슬리피지, SLpips, TPpips, COMMENT, MAGIC);

}

if(서명 항목 < 0)

{

MyOrderClose(슬립페이지, 매직);

MyOrderSendSL(OP_SELL, 랏, 입찰, 슬리피지, SLpips, TPpips, COMMENT, MAGIC);

}

if(주문 선택(1,SELECT_BY_POS,MODE_HISTORY))

{

if (NormalizeDouble(OrderClosePrice(),Digits) == NormalizeDouble(OrderTakeProfit(),Digits))

{

if(주문 유형() == OP_BUY)

{

OrderSend(OP_BUY,랏,Ask,Slippage,SLpips,Ask+20*Point,"",MAGIC);

}

그렇지 않으면(주문 유형() == OP_SELL)

{

OrderSend(OP_SELL,Lots,Bid,Slippage,SLpips,Bid-20*Point,"",MAGIC);

}

}

}

리턴(0);

}

리턴(0);

}

-------------------------------------------------- ----

당신이 발견하면 내 잘못을 가르쳐주세요.

문안 인사.

 

...

논탄,

이 라인
if (OrderSelect(1,SELECT_BY_POS,MODE_HISTORY))

[/PHP]

마감된 주문 대기열에서 마지막으로 마감된 주문이 아니라 첫 번째(초기 잔고 이후) 주문을 선택합니다. 그래서 마지막 주문이 무엇인지 확인 하고 수용하는 대신 항상 하나의 고정된 주문을 확인하고 있습니다. 마감된 마지막 주문을 테스트하려면(닫힌 주문 대기열의 마지막이지만 metatrader[사람들이 마감 날짜-시간으로 정렬할 때 마지막 주문이라고 보장하지 않음)을 확인하려면 다음 형식을 사용해야 합니다.
[PHP]if (OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
 

감사합니다, mladen

나는 아직 OrderHistoryTotal 함수 를 사용하지 않았습니다. 이 코드에 적합한 함수입니다.

마침내, 수정 후 희망 코드를 얻었습니다. 결과적으로 EA는 TakeProfit을 얻은 후 새 항목을 만들기 위해 작동합니다.

귀하의 기업 및 모든 것에 감사드립니다.

 

당신의 도움이 필요합니다 마스터 코더

안녕하세요, 제 전략을 코딩하는 데 도움을 줄 사람이 필요합니다.

 
johnray:
안녕하세요, 제 전략을 코딩하는 데 도움을 줄 사람이 필요합니다.

[lang=pl]자세히 알려주세요

건배[/lang]

 

나는 오후를 보냈다

g.pociejewski:
[lang=pl]자세히 알려주세요 건배[/lang]

감사합니다 주인님 오후에 보냈습니다.. 조금 복잡합니다.

 

자동 새로 고침 코드

지속적인 새로 고침이 필요한 표시기를 사용하고 있습니다. 저는 15분 차트를 사용하고 있으므로 모든 틱 을 새로 고칠 필요가 없지만 큰 전력 소모가 없다면 좋을 것입니다. 최소한 각 새로 고침 사이의 시간 간격에 대한 옵션이 있어야 합니다. 지금은 드롭다운 '차트' 탭을 사용하고 '새로 고침'을 선택하여 1분 정도 수동으로 새로 고칩니다.

인디 또는 EA의 추가 코드를 통해 인디 및/또는 차트를 자동으로 새로 고치는 코드 또는 방법이 있습니까?

고마워, 엘 비

 

[langtitle=fr]Wilder의 원래 지표 Parabolic Sar[/langtitle]

[언어=fr]
안녕!

나는 Wilder의 quiproquo인 ORIGINAL 포물선 SAR을 찾고 있습니다. 이 표시기의 코드를 PRT 플랫폼용으로 만들었지만 MT4에서 코딩을 모릅니다.

누군가 MT4 코딩에 대한 지식이 있는 경우 개인 메시지 로 코드를 제공하여 MT4 코딩에 적용할 수 있습니다.

감사해요
[/언어]