10핍 간격으로 주문을 엽니다. - 페이지 3

 
    &&  OrderMagicNumber()  == 0            // my magic number

0은 기본 매직 넘버이므로 귀하의 조건은 수동으로 열린 거래를 제외하지 않습니다.

         Tip   =OrderType();                     // Type of selected order
         Price =OrderOpenPrice();               // Price of selected order
         SL    =OrderStopLoss();                 // SL of selected order 
         TP    =OrderTakeProfit();               // TP of selected order
         Lot   =OrderLots();                     // Amount of lots

여기에 마지막으로 선택한 주문 의 값을 저장하고 있습니다. lastTicket의 값을 저장하려면 다시 선택해야 합니다.

 

마지막 주문을 찾기 위해 주문을 반복하는 이유는 무엇입니까? 결과에 대해서는 아무 것도 하지 않습니까?

2개의 코드 블록은 서로 완전히 독립적입니다.

 
GumRai :

0은 기본 매직 넘버이므로 귀하의 조건은 수동으로 열린 거래를 제외하지 않습니다.

여기에 마지막으로 선택한 주문의 값이 저장됩니다. lastTicket의 값을 저장하려면 다시 선택해야 합니다.

 

마지막 주문을 찾기 위해 주문을 반복하는 이유는 무엇입니까? 결과에 대해서는 아무 것도 하지 않습니까?

2개의 코드 블록은 서로 완전히 독립적입니다.




GumRai : 귀하의 정확한 지적에 따라 귀하의 응답에 감사드립니다.

OrderMagicNumber() == 0 ------------내 코드를 테스트하고 있었기 때문에 여기에 0을 넣습니다. 그래서 값 번호 없이 게시했습니다. 권장 사항과 수정 사항에 감사드립니다.

OrderMagicNumber() == 1234

lastTicket 나는 그것을 내 주문에 넣었습니다.


lastTicket =OrderSend(Symbol(),OP_BUY,mylot(),Ask,0,0,0,"내 댓글",magic,0,Green);

if( lastTicket >0)
{
bool b=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(StopLoss*Point),Digits),NormalizeDouble(Ask-(TakeProfit*Point),Digits),0,Red);
}



하지만 내 ea가 여러 판매 주문 유형을 배치하기를 원하기 때문에 실제로 올바른지 모르겠습니다. 따라서 ea가 현재 차트 기호에서 가장 높은 시가를 얻고 그 위의 10pip를 열기를 원합니다. 그리고 모든 거래는 현재 마지막 주문 거부 .

그래서 내가 원하는 것을 얻기 위해 차근차근 진행합니다. 먼저 WHRoeder 가 제공한 fomular에 따라 마지막 오픈 주문을 먼저 받으려고 합니다.

그래서 주문을 통한 루프는 1개의 공개 거래를 설정하는 것이 아니라 여러 공개 거래를 설정하는 것입니다. 그래서 마지막 공개 티켓을 높게 받고 싶습니다. 내 주문이 잘못된 경우 GumRai 에게 부탁드립니다. 기꺼이 도와주셔서 감사합니다.



 // Orders accounting 

{
     datetime lastTime  = 0 ;
     int       lastTicket = - 1 ; // None open.
     for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--) if (
         OrderSelect ( 0 , SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0            // my magic number
    &&  OrderSymbol()       == Symbol ()                 // and my pair.
    &&  OrderOpenTime()     >=  lastTime
    &&  OrderTicket()       >   lastTicket
    ){
      lastTime   = OrderOpenTime();
      lastTicket = OrderTicket();
    }
 
}

         Tip   =OrderType();                     // Type of selected order
         Price =OrderOpenPrice();               // Price of selected order
         SL    =OrderStopLoss();                 // SL of selected order 
         TP    =OrderTakeProfit();               // TP of selected order
         Lot   =OrderLots();                     // Amount of lots
   
////////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------- 5 ------------------------------------//
/*this is the poinnt where main formular or trading system EA-MA is based*/
//---------------------------------------------------------------------------
// Trading criteria
       
rsi1= iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 1 );
rsi2= iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 0 ); 
     
 if (rsi2> 70 && Ask > High[ 1 ] + ( 10 *pips2dbl) )
  {
      Opn_S= true ;
     } 
     else 
   if (rsi2> 70 && Ask < High[ 1 ] + ( 10 *pips2dbl)) 
      {
      Opn_S= false ;
     }


lastTicket= OrderSend ( Symbol (),OP_BUY,mylot(),Ask, 0 , 0 , 0 , "My Comment" ,magic, 0 ,Green);

         if(lastTicket>0)
     {
      bool b=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+(StopLoss*Point),Digits),
                         NormalizeDouble(Ask-(TakeProfit*Point),Digits),0,Red);
     }
 

게시물에 긴 코드 줄을 포함하지 마십시오. 읽기가 어렵습니다.

   if (lastTicket> 0 )
     {
       bool b=OrderModify(OrderTicket(),OrderOpenPrice(), NormalizeDouble (Ask+(StopLoss* Point ), Digits ),
                         NormalizeDouble (Ask-(TakeProfit* Point ), Digits ), 0 ,Red);
     }

위와 같이 2줄을 사용하는 것을 막을 수는 없습니다.

 
dan100 :

WHRoeder 이 코드는 주문 실행 계산에 모두 포함되어 있습니다. 제 오류를 수정하고 처리하는 데 도움을 요청합니다. 기꺼이 도와주셔서 감사합니다



댄100 :

WHRoeder 이 코드는 주문 실행 계산에 모두 포함되어 있습니다. 제 오류를 수정하고 처리하는 데 도움을 요청합니다. 기꺼이 도와주셔서 감사합니다






수정 해주셔서 감사합니다. 하지만 내가 위의 코드를 올바르게 얻었습니까?

 
dan100 : 아직 당신의 도움을 기다리고 있습니다. WHRoeder
오래 기다리실 겁니다.
  1. 나는 당신이 해야 할 일을 말했지만 당신 은 그것을 하지 않았습니다.
  2. 나는 여기에서 당신이 아직 하지 않았다는 것을 상기시켰 습니다.
  3. 그리고 지금 당신은 다시 묻지만 여전히 그것을 하지 않았습니다.
 
WHRoeder :
dan100 : 아직 당신의 도움을 기다리고 있습니다. WHRoeder
오래 기다리실 겁니다.
  1. 나는 당신이 해야 할 일을 말했지만 당신 은 그것을 하지 않았습니다.
  2. 나는 당신이 아직하지 않았다는 것을 여기에서 상기시켰 습니다.
  3. 그리고 지금 당신은 다시 묻지만 여전히 그것을 하지 않았습니다.



WHRoeder 나는 더 이상 이해하지 못했습니다. 이것은 내 EA의 전체 논리 부분이며 현재 코드 지식이 있는 곳이기도 합니다. 결국 무엇을 다시 제시해야 할지 모르겠습니다.

이것이 도움을 요청하는 이유입니다. 하지만 당신이 전체 EA 코드를 당신에게 보낼 수 있도록 허락해 주시면 잘하겠습니다. WHRoeder가 도와주세요. 당신이 할 수 있다는 것을 알고 있습니다.

전체 ea 코드를 보내기 위한 승인 및 링크.


게다가 공식적으로 당신이 나에게 이 공식을 주기 전에.......

  1. 가장 높은 공개 가격으로 공개 거래를 찾으십시오.
  2. 시장이 가격 + 10핍에 도달하지 않은 경우 반환
  3. 새 주문을 엽니다.


나는 이동 평균 교차 ASK 가격 또는 BID 가격으로 만 마지막 가격을 테스트하고 나중에 언젠가는 현재 차트의 높은 가격보다 낮은 오픈 주문을 발견하여 수정하고 싶습니다.

나는 MA와 Ask 및 10point 만 테스트하는 코드가 없으므로 테스트에 다시 사용하는 코드가 없습니다.

 
dan100 :

수정 해주셔서 감사합니다. 하지만 위의 코드를 올바르게 얻었습니까?

첫째, 무엇을 하려는지 명확하지 않습니다.

당신은 말한다

" 하지만 내 ea가 여러 판매 주문 유형을 배치하기를 원하기 때문에 실제로 올바른지 모르겠습니다. 그래서 ea가 현재 차트 기호에서 가장 높은 오픈 가격을 얻고 그 위에 10pip를 오픈하기를 원합니다. 현재 마지막 주문 거부.

그래서 내가 원하는 것을 얻기 위해 차근차근 진행합니다. 먼저 나는 fomular에 따라 마지막으로 열린 주문을 먼저 얻으려고합니다.   WHRoeder 가 나에게 주었다."

그래서 당신이 찾고 싶은 것은 무엇입니까?

시가가 가장 높은 주문은?

또는

가장 최근에 열린 주문은?

당신이 원하는 것을 설명할 수 없을 때 누가 당신을 어떻게 도울 수 있습니까?

     datetime lastTime  = 0 ;
     int       lastTicket = - 1 ; // None open.
     for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--) if (
         OrderSelect ( 0 , SELECT_BY_POS,MODE_TRADES)                 // Only my orders w/
    &&  OrderMagicNumber()  == 0            // my magic number
    &&  OrderSymbol()       == Symbol ()                 // and my pair.
    &&  OrderOpenTime()     >=  lastTime
    &&  OrderTicket()       >   lastTicket
    ){
      lastTime   = OrderOpenTime();
      lastTicket = OrderTicket();
    }

이 코드는 마지막으로 열린 주문을 찾지만 가격은 어디에도 저장하지 않습니다.

      
rsi1= iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 1 );
rsi2= iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 0 ); 
     
 if (rsi2> 70 && Ask > High[ 1 ] + ( 10 *pips2dbl) )
  {
      Opn_S= true ;
     } 
     else 
   if (rsi2> 70 && Ask < High[ 1 ] + ( 10 *pips2dbl)) 
      {
      Opn_S= false ;
     }

여기에서 Opn_S에 가치를 부여하지만 아무 것도 하지 않습니다.

   lastTicket= OrderSend ( Symbol (),OP_BUY,mylot(),Ask, 0 , 0 , 0 , "My Comment" ,magic, 0 ,Green);

여기에는 주문을 여는 조건이 없으며 lastTicket의 값을 덮어씁니다.

귀하의 코드에는 논리가 없습니다. 서로 완전히 관련이 없는 3개의 코드 섹션일 뿐입니다.

 
GumRai 는 귀하의 적응증과 요약에 다시 한 번 감사드립니다. 내가 찾고 싶은 것은

현재 차트 기호에서 가장 높은 시가 및 매수인 경우 10핍을 열고 매도하는 경우 10핍 아래로 엽니다.

도와주세요

 
dan100 :
GumRai 는 귀하의 적응증과 요약에 다시 한 번 감사드립니다. 내가 찾고 싶은 것은

현재 차트 기호에서 가장 높은 시가

도와주세요

왜 이것에 도움이 필요합니까?

최신(가장 높은) OrderOpenTime으로 주문을 찾는 코드를 작성할 수 있다면 가장 높은 OrderOpenPrice로 주문을 찾는 것이 간단해야 합니다.

간단한 교체입니다.

 
GumRai :

왜 이것에 도움이 필요합니까?

최신(가장 높은) OrderOpenTime으로 주문을 찾는 코드를 작성할 수 있다면 가장 높은 OrderOpenPrice로 주문을 찾는 것이 간단해야 합니다.

간단한 교체입니다.



예, 저는 코드를 작성하고 일부는 조사하지만 원하는 결과가 표시되지 않을 때 아직 절반은 완료되지 않은 오류를 알고 있지만 솔루션을 찾습니다.

때로는 아무리 간단하거나 작더라도 해결하기 어려울 수 있습니다. GumRai가 저를 도와주시면 감사하겠습니다.