MT4 - 복수의 이익 실현부분 폐쇄
결과 1 - 10 / 10

실: MT4 - 복수의 이익 실현부분 폐쇄

  1. #1
    여러 단계의 주문을 마감하고 싶습니다. 예를 들어 takeprofit1에서 주문의 절반을 닫고 다음과 같이 takeprofit2에서 나머지를 닫습니다.
    삽입 된 코드 if (OrderType () == OP_BUY) {if (입찰가 : OrderOpenPrice () TakeProfit1) {OrderClose (12345, 0.5, Bid, 2); } if (입찰 gt; OrderOpenPrice () TakeProfit2) {OrderClose (12345, 0.5, Bid, 2); }} 명백한 문제는 가격이 내 TakeProfit1에 도달하면 결국 모든 새로운 틱이 닫히고 전체 주문을 마감하려고한다는 것입니다. 이 작업을 한 번만 수행하도록하는 방법이 있습니까?

    나는 다른 이익을 가진 두 개의 분리 된 주문을 할 수 있다는 것을 알았지 만 나는 또 다른 방법이 있다면 그것을 다르게하는 법을 배우기를 원합니다. 나는 중개인으로부터 나의 이익을 숨기는 아이디어를 좋아한다. 도움이나 조언을 주시면 감사하겠습니다.

  2. #2
    주문에서 실제 이익을 얻는 것 이외의 것이라면 상상할 것입니다. 따라서 OrderSelect 루프에서 보조 계산을해야합니다. 삽입 된 코드 if ((OrderType () == OP_BUY) (OrderSymbol () == Symbol ) dNewLotSize = NormalizeDouble (OrderLots ()2, 2) (dNewLotSize = NormalizeDouble (OrderLots () = 1) ); if (! OrderClose (OrderTicket (), dNewLotSize, Bid, 3, Violet)) Print (OrderClose 오류, GetLastError ()); else Print (OrderClose - OrderTicket ()); }}

  3. #3

    Quote 원래에 의해 게시 됨 ;
    여러 단계의 주문을 마감하고 싶습니다. 예 : takeprofit1에서 내 주문의 절반을 takeoverfit2에서 나머지 부분을 닫습니다. 삽입 된 코드 if (OrderType () == OP_BUY) {if (입찰 gt; OrderOpenPrice () TakeProfit1) {OrderClose (12345, 0.5, Bid , 2); } if (입찰 gt; OrderOpenPrice () TakeProfit2) {OrderClose (12345, 0.5, Bid, 2); }} 명백한 문제는 가격이 내 TakeProfit1에 도달하면 결국 새로운 틱이 마감 될 때마다 닫으려고 시도한다는 것입니다.
    그냥 두 개의 별도 주문을 사용하십시오. 그것이 열리고 난 후에 주문을 나누는 것은 엉덩이의 아픔이고, 현재의 주문을 추적하고, 새로이 만들어 졌던 표를 찾고, 기타 등 그것은 전적으로 할 수있다. 그러나 만일 당신이 단지 위의 코드를 타이프하고 난 후에 붙이게되면 그것은있다 가장 좋은 방법은 지금 당장 가서 코드를 작성할 수있는 미래에 저장하는 것입니다. 두 가지 별도 명령을 사용하고 인생을 함께하십시오. 그렇지 않으면 우리는 코드 작성을 끝내고 스스로를 위해 아무것도하지 않을 것입니다.

  4. #4
    주문의 일부를 닫는 것은 고급 레벨 코더를위한 것입니다.

  5. #5

    Quote 원래에 의해 게시 됨 ;
    분명한 문제는 가격이 내 TakeProfit1에 도달하면 결국 모든 새로운 틱이 마감되어 결국 전체 주문을 마감한다는 것입니다. 이 작업을 한 번만 수행하도록하는 방법이 있습니까? 나는 다른 이익을 가진 두 개의 분리 된 주문을 할 수 있다는 것을 알았지 만 나는 또 다른 방법이 있다면 그것을 다르게하는 법을 배우기를 원합니다. 나는 중개인으로부터 나의 이익을 숨기는 아이디어를 좋아한다. 도움이나 조언을 주시면 감사하겠습니다.
    //----- 안녕하세요 trumpjr ...... 주문을 선택하여 선택하십시오 ..... orderlots () 필터를 사용하십시오 .... 아래는 간단한 거친 예제입니다 .... h/- --- 삽입 된 코드 (int i = Orderstotal () - 1; i gt; = 0; i--) {OrderSelect (i, SEL_BY_POSITION, MODE_TRADES); if (OrderSymbol ()! = Symbol ()) continue; if (OrderLots () gt; = 1)/orderlots filter {if (OrderType () == OP_BUY) {if (Bid gt; OrderOpenPrice () TakeProfit1) {OrderClose (OrderTicket (), 0.5, Bid, 0, CLR_NONE ); }}

  6. #6
    지위를 관리하려면 고유 한 마법 번호를 사용하여 각 주문을 추적해야합니다. 주어진 오픈 오더를 부분적으로 닫으면 주문 티켓이 변경되고 새 티켓 번호를 가져와야합니다. 오래된 티켓 번호는 그냥 버려집니다. 새로운 티켓 번호를 얻고 그런 식으로 나머지 부분적으로 열린 주문을 제어하려면 매직 번호를 기반으로 티켓 번호를 검색해야합니다. 주문에 주어진 매직 넘버는 다중 주문 분할 폐쇄에 대해 변경되지 않으므로 원래 주문주기를 추적 할 수 있습니다.

  7. #7
    마법 번호는 주문에 고유하지 않습니다. 동일한 마법 번호 (보통)는 EA가 개설 한 모든 주문에 할당됩니다. 동일한 주문 번호로 많은 주문을 할 수 있습니다. 귀하의 제안은 효과가 없습니다.

  8. #8
    이 작업을 수행하는 간단한 방법이 있습니까? 정지의 첫번째 세트는 fifo 당 더 단단 할 필요가있을 것입니다. 나는 2 개의 분리 된 주문을 구매합니다. ... lot A, lot A를위한 lot B 나는 lotP에 대해 30pips의 SL-A와 30pips의 TP-A를 원합니다. 나는 50 pips의 SL-B와 50 pips의 TP-B를 원합니다. 티켓 번호를 통해 닫고 숨겨진 손실을 사용해야한다고 가정합니다. 브로커는 모든 SL TP에서 모든 포지션을 마감합니다. 이것은 매우 단순하지만 여전히 코딩에서 새로운 것 같습니다. 그리고 내 자신을 운전하는 메신저 등 시각적으로 그것이 작동하는 방법을 깰 수 있도록 그러한 코드의 모든 예제입니다

  9. #9
    이 게시물을 게시 할 시간을내어 주셔서 대단히 감사합니다. im은 if 루프 내에서 구문을 번역하는 데 어려움이 있습니다. 어떻게 LotA와 Lot B를 구별합니까? 또는 TakeProfit A가 먼저 발생해야만 gt;를 확인한다고 가정합니까? 이 코드 라인은 무엇을하고 있습니까? 삽입 된 코드 double dNewLotSize = NormalizeDouble (OrderLots ()2, 2); 나는 이것이 티켓 번호를 통해 가까운 것을 선택함으로써 발생해야만했을 것이라고 추측했지만, if 루프가 그 문제를 해결할 것으로 보인다. 즉, 명확하게 번역하는 데 문제가있다.

  10. #10
    티켓 번호 주변에서 어떻게 작동합니까?

게시 권한

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
쿠키 정책
쿠키 정책: koreaforex 웹사이트는 쿠키를 사용하며, 웹사이트를 사용자는 쿠키 사용에 동의하는 것입니다. 자세한 정보는 '쿠키 공개' 를 읽어주십시오.