후행 정지 및 후행 이익 - 페이지 5

 
Arav007 :


3rd Trade's TP= 108.536 [ 이 TP를 그런 거리로 설정하여 TP가 없는 것처럼 작동합니다.]

이제 내 요구 사항에 따라 가격이 이익으로 7 pip[103.603]일 때 손절매

첫 번째와 두 번째 거래는 1핍 이익[103.543]이 되고 세 번째 거래의 손절매는 103.386으로 유지됩니다.

여기 아래 이미지와 같이:

첫 번째 GBPUSD 주문은 10핍 이익에서 마감되었습니다.

2nd Order는 아직 실행 중이고 SL이 이동했습니다.

3rd Trade의 경우 SL도 내가 원하지 않는 이사를 받았습니다.

BuyOrder_3= OrderSend ( Symbol (), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice, 0 , "Buy Order" ,MagicNumber, 0 ,Blue);//tp 0
 
deVries :


감사해요. 이것은 또 다른 방법이며 실제로 No TP를 설정하는 좋은 방법입니다.

그러나 SL은 어떻습니까? 가변 주문 티켓 방식 없이 어떻게 할 수 있나요?

문안 인사

 
if ( OrdersTotal ()> 0 ){
 

for (cnt= OrdersTotal ()- 1 ;cnt>= 0 ;cnt--){
        
         if (! OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES )) continue ;
         if ( OrderSymbol () == Symbol () && OrderMagicNumber () ==  MagicNumber){
                
        
                sl     = OrderStopLoss (); // Stop Loss. 
                tStopLoss = NormalizeDouble ( OrderStopLoss (), Digits ); // Stop Loss. 
                
                 if ( OrderType ()== OP_BUY ){

if ( OrdersTotal ()== 3 ){

if (cnt== 1 ){

Fixed Stop Loss

}

else {

Trailing Stop Loss

}

}     // end of  if (OrdersTotal()==3)

else {     // Looking for 2nd option                           

if ( OrdersTotal ()== 2 ){                           // 10 pips TP trade can be closed already

if (cnt== 0 ){

Fixed Stop Loss

}

else {

Trailing Stop Loss

}

}   // End of  if (OrdersTotal()==2)

}   // End of  else

 

이에 대해 어떻게 생각하세요? 손절매 부분은 괜찮나요?

 
Arav007 :

이에 대해 어떻게 생각하세요? 손절매 부분은 괜찮나요?


아니, 틀렸어

하지만 내가 더 싫어하는 것은 내가 어떻게 읽어야 하는지

읽을 수 없는 코딩 입니다. 코드 작성 스타일을 변경하세요!!!!

빈 줄은 필요하지 않습니다 . 이것은 당신과 동일합니다

이렇게 할 수 있나요??

 if ( OrdersTotal ()> 0 )
   {
   for (cnt= OrdersTotal ()- 1 ;cnt>= 0 ;cnt--)
     {
     if (! OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES )) continue ;
     if ( OrderSymbol () == Symbol () && OrderMagicNumber () ==  MagicNumber)
        {
        sl     = OrderStopLoss (); // Stop Loss. 
        tStopLoss = NormalizeDouble ( OrderStopLoss (), Digits ); // Stop Loss. 
         if ( OrderType ()== OP_BUY )
           {
           if ( OrdersTotal ()== 3 ) 
              {
               if (cnt== 1 )
                 {
                 Fixed Stop Loss     
                 }
               else {
                   Trailing Stop Loss
                   }
              }     // end of  if (OrdersTotal()==3)
           else {     // Looking for 2nd option                           
               if ( OrdersTotal ()== 2 )
                 {                           // 10 pips TP trade can be closed already
                 if (cnt== 0 )
                   {
                   Fixed Stop Loss
                   }
                   else {
                       Trailing Stop Loss
                       }
                 }   // End of  if (OrdersTotal()==2)
   }   // End of  else

빈 줄 없음

'{'가 시작되는 위치와 '}'가 끝나는 코드 부분을 쉽게 볼 수 있습니다.

20개 이상의 거래가 열려 있는 경우 루프 내에서 사용할 수 없는 경우가 발생할 수 있습니다. if ( OrdersTotal ()==

또는 if (cnt==

왜이 주문 루프를합니까

모든 거래를 하나씩 실행하기 위해 이 주문 루프를 수행합니다.

코딩해야 하는 것은 손익분기점입니다.

고정 손절매 는 무엇을 하고 있습니까 ????

 
deVries :


아니, 틀렸어

하지만 내가 더 싫어하는 것은 내가 어떻게 읽어야 하는지

읽을 수 없는 코딩 입니다. 코드 작성 스타일을 변경하세요!!!!

빈 줄은 필요하지 않습니다 . 이것은 당신과 동일합니다

이렇게 할 수 있나요??

빈 줄 없음

'{'가 시작되는 위치와 '}'가 끝나는 코드 부분을 쉽게 볼 수 있습니다.

20개 이상의 거래가 열려 있는 경우 루프 내에서 사용할 수 없는 경우가 발생할 수 있습니다. if ( OrdersTotal ()==

또는 if (cnt==

왜 당신은이 orderloop

모든 거래를 하나씩 실행하기 위해 이 주문 루프를 수행합니다.

코딩해야 하는 것은 손익분기점입니다.

고정 손절매는 무엇을 하고 있습니까 ????


죄송합니다. 사실 저는 빈 줄이 더 편합니다. 어쨌든 여기에 코드를 게시하는 동안 따르겠습니다.

'OrdersTotal()'은 EA가 연결된 쌍에서 'Only' 주문을 가져올 것이라고 생각했습니다.

그러나 아마도 모든 주문을 가져온 다음 관련 쌍의 주문을 다른 주문과 구별합니다.

이 줄을 사용하여:

if ( OrderSymbol () == 기호 () && OrderMagicNumber () == MagicNumber)

권리?

고정 손절매 란 '초기' 손절매가 움직이지 않는다는 것을 의미합니다.

문안 인사

 
deVries :


코드를 작성하는 스타일을 변경하십시오 !!!!

빈 줄은 필요하지 않습니다


의견 의 문제이지만 일반적으로 코딩할 때 (논리적 위치에서) 빈 줄을 사용하는 것이 좋습니다. 어쨌든 이런 식으로 다른 코드에서 지적할 가치가 있는 것은 아닙니다.

Apache 또는 Linux 커널 소스 코드(매우 긴밀하게 협력하는 두 개의 Open 프로젝트)를 보면 빈 줄이 많이 표시됩니다.


아파치 웹 서버:

AP_DECLARE_NONSTD( const char *) ap_set_string_slot(cmd_parms *cmd,
                                                   void *struct_ptr,
                                                   const char *arg)
{
     int offset = ( int )( long )cmd->info;

    *( const char **)(( char *)struct_ptr + offset) = arg;

     return NULL ;
}

리눅스 커널:


 static int jz4740_musb_init( struct musb *musb)
{
 musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2);
 if (!musb->xceiv) {
 pr_err( "HS UDC: no transceiver configured\n" );
 return -ENODEV;
 }

 /* Silicon does not implement ConfigData register.
 * Set dyn_fifo to avoid reading EP config from hardware.
 */
 musb->dyn_fifo = true ;

 musb->isr = jz4740_musb_interrupt;

 return 0 ;
} 
 
Arav007 :


때때로 빈 줄은 편안할 수 있지만 모든 작성된 줄 후에 수행하는 경우에는 그렇지 않습니다.

또한 중괄호를 사용하면 코드를 더 쉽게 읽을 수 있습니다.


MACD 에서 예제로 사용

   for (cnt= 0 ;cnt<total;cnt++)
     {
       OrderSelect (cnt, SELECT_BY_POS , MODE_TRADES );
       if ( OrderType ()<= OP_SELL &&   // check for opened position 
         OrderSymbol ()== Symbol ())   // check for symbol
        {
         //--- long position is opened
         if ( OrderType ()== OP_BUY )
           {

             //--- check for trailing stop
             if (TrailingStop> 0 )
              {
               if ( Bid - OrderOpenPrice ()> Point *TrailingStop)
                 {
                   if ( OrderStopLoss ()< Bid - Point *TrailingStop)
                    {
                     //--- modify order and exit
                     OrderModify ( OrderTicket (), OrderOpenPrice (), Bid - Point *TrailingStop, OrderTakeProfit (), 0 ,Green);
                     return ;
                    }
                 }
              }
           }
         else // go to short position
           {

             //--- check for trailing stop
             if (TrailingStop> 0 )
              {
               if (( OrderOpenPrice ()- Ask )>( Point *TrailingStop))
                 {
                   if (( OrderStopLoss ()>( Ask + Point *TrailingStop)) || ( OrderStopLoss ()== 0 ))
                    {
                     //--- modify order and exit
                     OrderModify ( OrderTicket (), OrderOpenPrice (), Ask + Point *TrailingStop, OrderTakeProfit (), 0 ,Red);
                     return ;
                    }
                 }
              }
           }
        }
     }

이제 거래의 orderopenprice와 가격 통화 차트를 비교하는 방법을 볼 수 있습니다.

너도 저런거 해봐야지...

 
ydrol :

의견 의 문제이지만 일반적으로 코딩할 때 (논리적 위치에서) 빈 줄을 사용하는 것이 좋습니다. 어쨌든 이런 식으로 다른 코드에서 지적할 가치가 있는 것은 아닙니다.

Apache 또는 Linux 커널 소스 코드(매우 긴밀하게 협력하는 두 개의 Open 프로젝트)를 보면 빈 줄이 많이 표시됩니다.


아파치 웹 서버:

리눅스 커널:

요점은 쓰여진 모든 줄과 함께 빈 줄입니다.

큰 코드를 읽기 어려워집니다. 코드 를 읽기 위해 위/아래로 계속 스크롤합니다.

또한 { }를 배치하는 논리가 없으면 버그를 찾기가 훨씬 더 어려워집니다.

 
deVries :


MACD에서 예제로 사용

이제 거래의 orderopenprice와 가격 통화 차트를 비교하는 방법을 볼 수 있습니다.

너도 저런거 해봐야지...


그런 가격비교 기능이 있습니다.

Selected order의 Magic Number와 같은 OrderSend()의 선택된 주문의 'Comment'를 어떻게 비교할 수 있습니까?

OrderComment()가 선택한 주문의 주석과 일치하는지 확인하고 싶습니까?

SellOrder=OrderSend(Symbol(), iOrderType_Sell, LotSize, OpenPrice, Slippage, dStopLossPrice, dTakeProfitPrice, "주문 판매", MagicNumber, 0, 빨간색);

이제 다음과 같이 비교할 수 있습니다.

OrderComment()=="주문 판매" // ?

또한 다음과 같이 OrderSend() 함수 의 주석을 정의할 수 있습니다.

string comment_sell="판매 주문";

SellOrder=OrderSend(Symbol(), iOrderType_Sell, LotSize, OpenPrice, Slippage, dStopLossPrice, dTakeProfitPrice, comment_sell , MagicNumber, 0, Red);

그런 다음 비교하십시오.

if (OrderComment()=="comment_sell") // ?

문안 인사

 
Arav007 :


그런 가격비교 기능이 있습니다.

Selected order의 Magic Number와 같은 OrderSend()의 선택된 주문의 'Comment'를 어떻게 비교할 수 있습니까?

OrderComment()가 선택한 주문의 주석과 일치하는지 확인하고 싶습니까?

SellOrder=OrderSend(Symbol(), iOrderType_Sell, LotSize, OpenPrice, Slippage, dStopLossPrice, dTakeProfitPrice, "주문 판매", MagicNumber, 0, 빨간색);

이제 다음과 같이 비교할 수 있습니다.

OrderComment()=="주문 판매" // ?

또한 다음과 같이 OrderSend() 함수의 주석을 정의할 수 있습니다.

string comment_sell="판매 주문";

SellOrder=OrderSend(Symbol(), iOrderType_Sell, LotSize, OpenPrice, Slippage, dStopLossPrice, dTakeProfitPrice, comment_sell , MagicNumber, 0, Red);

그런 다음 비교하십시오.

if (OrderComment()=="comment_sell") // ?

문안 인사


중개인이 OrderComment를 덮어쓸 수 있습니다.

당신은 원하고 있습니다 ... 이제 내 요구 사항에 따라 가격이 이익으로 7 pip [103.603] 일 때 손절매

첫 번째와 두 번째 거래는 1핍 이익[103.543]이 되고 세 번째 거래의 손절매는 103.386으로 유지됩니다.

extern int BreakEven = 7을 만듭니다.

         if ( OrderType ()== OP_BUY )
           {

             //--- check for BreakEven
             if (BreakEven> 0 )
              {
               if ( Bid - OrderOpenPrice ()> Point (* 10 )*BreakEven)
                 {
                   if ( OrderStopLoss ()< OrderOpenPrice ())
                    {
                     //--- modify order
                     if ( OrderTakeProfit ()> Point ) OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice ()+ Point (* 10 ), OrderTakeProfit (), 0 ,Green);
                    }
                 }
              }
           }

(* 10 ) pipvalue를 얻기 위해 5자리 브로커에서 수정