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

 

100에서 사고팔기

자마닙,

나는 당신이 쓴 것을 이해하지만 당신이 어떻게 이익으로 마감하는지 알 수 없습니다.

이것은 나에게 Hedge 유형 EA처럼 보입니다.

forex-tsd에는 몇 가지가 있습니다.

마틴게일에 갈 필요가 없습니다.

빅비

 
european:
누구나 TakeProfit 가치로 주문을 마감하는 방법에 대한 아이디어/코드를 공유할 수 있습니다.

어떤 이유로 OrderSend() 함수의 'TakeProfit'은 매수/매도 주문에서 잘 작동하지만 MT4의 매도/매도 주문에서 항상 작동하지 않습니다.

주문의 TakeProfit 값을 현재 가격과 비교하는 코드를 작성했지만 제대로 작동하지 않습니다. 어떤 아이디어?

유로

long ar는 "bid" 가격으로 마감되고 shorts는 "ask" 가격으로 마감됩니다.

 
Big Be:
자마닙,

나는 당신이 쓴 것을 이해하지만 당신이 어떻게 이익으로 마감하는지 알 수 없습니다.

이것은 나에게 Hedge 유형 EA처럼 보입니다.

forex-tsd에는 몇 가지가 있습니다.

마틴게일에 갈 필요가 없습니다.

빅비

나는 시장이 몇 주 동안 위아래로 파도가 움직이는 것을 봅니다. 2주기 위아래로 움직입니다. 나는 추세가 될 때 다른 전략을 가지고 있습니다. 나는 수동으로 거래한다

저를 울타리로 안내해 주세요 ea . 나는 그것을 많이 본다. 그러나 내가 원하는 것이 아닙니다.

 

코드 또는 플랫폼 문제?

ralph.ronnquist:
long ar는 "bid" 가격으로 마감되고 shorts는 "ask" 가격으로 마감됩니다.

답장해주셔서 감사합니다.

어떤 이유로 내 코드가 작동하지 않습니다.

if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY && 닫기[0] >= OrderTakeProfit()) CloseOrder(orderNo);

if (OrderType() == OP_SELL && 닫기[0] <= OrderTakeProfit()) CloseOrder(orderNo); }

조언을 해주시면 감사하겠습니다.

유로

 
european:
답장해주셔서 감사합니다.

어떤 이유로 내 코드가 작동하지 않습니다.

if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY && Close[0] >= OrderTakeProfit()) CloseOrder(orderNo);

if (OrderType() == OP_SELL && Close[0] <= OrderTakeProfit()) CloseOrder(orderNo); }

[/PHP]

I would be grateful for advice.

euro

권리; "종가[0]"는 OP_SELL이 마감되는 가격이 아닌 "입찰가" 가격입니다. OP_SELL은 "입찰가" 가격보다 몇 핍(스프레드라고도 함)인 "매도" 가격에 대해 마감됩니다.

EA가 실행될 때 "입찰" 가격은 "입찰"이라는 변수로, "매도" 가격은 "매도"라는 변수로도 사용할 수 있습니다. 따라서 코드 스니펫은 다음과 같이 더 잘 보일 것입니다.

[PHP]if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY && 입찰가 >= OrderTakeProfit()) CloseOrder(orderNo);

if (OrderType() == OP_SELL && 묻기 <= OrderTakeProfit()) CloseOrder(orderNo); }

 

코드 도움 부탁드립니다... 감사합니다.

안녕,

EA를 작성하는 데 새로운 기능이 있습니다. 다음을 시도했지만 "OrderModify 기능에 대한 잘못된 티켓" 오류가 발생했습니다. 누군가 친절하게 살펴보고 도움을 줄 수 있습니까? 미리 감사드립니다.

무효 ModifyHedgeSL(int SL) {

(SL<1) 반환하는 경우;

부울 브레스;

더블 sl, openadj;

if (lastopenbuy==1 && lastopensell==0) {openadj=Ask-Bid;} else {openadj=0;}

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

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

if ( OrderSymbol() == Symbol() || OrderMagicNumber() == ExpertId && OrderType() == OP_BUY )

{

sl = GetLastLongOpenPrice()-openadj-SL*포인트;

bres = OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, 흰색);

if (bres) Print("헤지 구매 수정 완료");

if (!bres) Print("헤지 매수 주문 수정 오류: ",ErrorDescription(GetLastError()));

}

if ( OrderSymbol() == Symbol() || OrderMagicNumber() == ExpertId && OrderType() == OP_SELL )

{

sl = GetLastShortOpenPrice()-openadj+SL*포인트;

bres = OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, 골드);

if (bres) Print("헤지 판매 수정 완료");

if (!bres) Print("헤지 판매 주문 수정 오류: ",ErrorDescription(GetLastError()));

}

}

반품;

}

더블 GetLastLongOpenPrice() {

int 순서;

이중 LastLongOpenPrice=0;

//----

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

{

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

if (OrderSymbol() == Symbol() && OrderMagicNumber()==expertId && OrderType() == OP_BUY)

{

LastLongOpenPrice=OrderOpenPrice();

}

}

if (LastLongOpenPrice>0) {return(LastLongOpenPrice);}

그렇지 않으면 {반환(-1);}

}

 

SL 히트 시 매수/매도 주문을 코딩하는 방법

예를 들어, EUR/JPY 1랏을 164.30에 매수하고 Sl을 164.00에 매수하는 경우입니다.

SL이 적중되면 동일한 가격인 164.30에 동일한 SL을 164로, 더 많은 로트(예: 1.5)에 매수 주문을 추가하겠습니다. 그런 다음 SL이 다시 히트하면 동일한 SL로 동일한 가격에 2개의 랏을 구매하기 위해 또 다른 구매 주문이 발생합니다.

이것에 대한 코드가 있습니까 ?? 감사해요!

 
boostrade:
예를 들어, EUR/JPY 1랏을 164.30에 매수하고 Sl을 164.00에 매수하는 경우입니다.

SL이 적중되면 동일한 가격인 164.30에 동일한 SL을 164로, 더 많은 로트(예: 1.5)에 매수 주문을 추가하겠습니다. 그런 다음 SL이 다시 히트하면 동일한 SL로 동일한 가격에 2개의 랏을 구매하기 위해 또 다른 구매 주문이 발생합니다.

이것에 대한 코드가 있습니까 ?? 감사해요!

Frank EA에 대한 이 스레드를 보십시오. https://www.mql5.com/en/forum

필요하신 분이나 예시로 활용하시면 될 것 같아요.

 

좋아요

newdigital:
Frank EA에 대한 이 스레드를 보십시오 https://www.mql5.com/en/forum 나는 그것이 당신이 필요로 하는 것이라고 생각하거나 그것을 예로 사용할 수 있습니다.

tks 많은 newdigital, 여기에 질문이 있을 것입니다. 다시 한 번.

 

TP 문제

if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY && Bid >= OrderTakeProfit()) CloseOrder(orderNo);

if (OrderType() == OP_SELL && Ask <= OrderTakeProfit()) CloseOrder(orderNo); }

랄프,

보시다시피 'Ask'와 'Bid'를 추천했지만 문제는 여전히 존재하는 별도의 함수 CloseOrder()를 호출합니다.

// 함수 닫기 주문 ********************************************** ************

bool CloseOrder(int orderT) {

이중 SA;

if (OrderSelect(orderT, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY) sA = 입찰;

그렇지 않으면 SA = 묻습니다.

bool bClosed = OrderClose(orderT,OrderLots(),sA,0, CLR_NONE );

if (b닫힘 == 1) {

pTrades = 0; 반환(1); }

그렇지 않으면 반환(0); }}

*********************************************** ********

나는 TP에 도달하면 거래가 마감될 것이라고 확신했지만 그렇지 않습니다. 첨부된 차트를 참조하십시오. 여기서 공매도 주문은 104.03에서, TP는 103.79에서 시작되었습니다. 가격이 도달했지만(TP) 주문이 마감되지 않았습니다.

파일:
tp_failed.jpg  32 kb