초보자의 모험 - 페이지 11

 
niko :
감사합니다 CB, 나는 그것을 알아차렸어야 했고 그래서 오류는 결국(130) 옳았습니다.

그러면 작동합니까?


CB

 

Hey CB, 거래를 실행하고 있지만 논리가 올바르게 추적되는지 확인하기 위해 거래를 자세히 살펴보지는 않았습니다(첫눈에 보이는 것처럼 보입니다). 그래서 이번에는 '고맙습니다!!!!' :-)

코드가 거래를 자동화하는 방법일 뿐이므로 전략이 수익성 있게 실행되기까지는 아직 갈 길이 멀습니다. 결국 전략 자체를 개선하기 위해 약간의 작업을 수행해야 합니다. 이 모든 노력이 결실을 맺은 것처럼 보이지만 여전히 코딩에 대해 매우 의아해합니다. 나는 내 차트에 주석을 표시하기 위해 작은 코드를 만들기 시작하고 그것들을 엉망으로 만들어 당신이 사용한 기능 과 다른 것들을 배우는 데 도움이 될 것입니다. 이 CB에 대한 귀하의 도움과 제가 계속해서 같은 질문을 하고 같은 실수를 반복하는 동안의 인내심에 정말 감사드립니다. 고맙습니다!

 
CB, 이것은 나에게 무언가를 생각나게 했다. 동일한 방향으로 2개 또는 최대 3개의 거래를 열 수 있도록 코드를 수정하려면 어떻게 해야 합니까(이것은 코드의 버전 2와 같습니다). 우리는 이전 코드에 OP_BUY/OP_SELL을 사용했으므로 몇 가지를 변경해야 합니다. 수행할 작업(예: 이 작업을 수행하는 기능 빌드...)을 '골격' 형식으로 알려주면 코드를 작성하고 검토를 위해 다시 가져갈 수 있습니다. 이 방법은 당신의 논리를 따르고 코딩 비트를 배우기 때문에 당신이 직접 코딩하는 것보다 낫습니다. 어떻게 생각하세요? (같은 방향으로 허용되는 거래 수를 설정하는 외부 변수가 있음을 알 수 있습니다. 그런 다음 구매를 계산하는 함수와 판매를 계산하는 또 다른 함수를 수행한 다음 start()에서 이 두 함수를 호출합니다. 외부 변수도 확인하십시오 ... 이와 같은 것?
 

그것은 쉬울 것입니다.

미결 주문의 최대 수인 매개변수를 스스로 설정하십시오. 자주 변경해야 하는 경우 Extern합니다.

그런 다음 fnOrderDuplicate() 함수 만 변경하여 구현합니다. start() 함수를 변경할 필요가 없습니다. 이는 애플리케이션의 기존 아키텍처를 유지하는 데 도움이 됩니다.


CB

 
남자, 언젠가는 '쉬울거야!'라고 말할 수 있기를 바랍니다. 좋아, 내가 할거야, 그리고 무슨 일이 일어나는지 보자! 감사합니다!
 

Hey CB, 위의 게시물에서 요청한 작업을 수행하려고 2시간을 보냈고 다른 코드, 문서를 살펴보았지만 진행 상황이 없었습니다(나는 무엇을 해야 할지 모르겠습니다). 야, 자꾸 이러다 막혀서 아주 간단한 일이라도 짜증나! 현재 진행 중인 것보다 더 쉽게 배울 수 있는 방법이 있을 것입니다. 학습에 진전이 없다고 느끼기 때문에 여러분이 친절하게 모든 코드를 작성해 주고 있습니다.


 bool fnOrderDuplicate ( )
 {
  iDuplicateOrders = 0 ;                                    //setting orderdup to zero
  iOrders = OrdersTotal ( ) - 1 ;                              //iOrders returns market orders count - 1. So if zero orders, we get -1
   for ( int i = iOrders ; i > = 0 ; i - - )                          // the loop to cycle through total orders
   {
     OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ;              //select order for function
     if ( ( OrderType ( ) ! = OP_BUY ) & & ( OrderType ( ) ! = OP_SELL ) )        //if order is NOT op-buy and is NOT op-sell, sCurrentOrderType = other (ie no order)
     sCurrentOrderType = "OTHER" ;
     if ( OrderType ( ) = = OP_BUY )                            //if order=buy, sCurrent OrderType = buy
     sCurrentOrderType = "BUY" ;                            //***7Jul09 ';' was missing at end of line
     if ( OrderType ( ) = = OP_SELL )                            //***7Jul09: the end ')' was missing.
     sCurrentOrderType = "SELL" ;                          //if orderfound = sell, sCurrentOrder= sell
     if ( ( OrderSymbol ( ) = = Symbol ( ) ) & & ( sCurrentOrderType = = sSignal ) )    //if ordersymbolfortheorder= symbolforchart && ScurrentOrder = sSignal(fn_entryrules) 
        iDuplicateOrders + + ;                                //iDuplicateOrders is added 1
   }
   if ( iDuplicateOrders = = 0 )                              //if iduporders = 0 then fnOrderDuplicate = false, otherwise it's true.
   return ( false ) ;
   return ( true ) ;
 }
 
이봐 CB, 위의 점에 대한 도움이 있습니까? 한 방향으로 여러 거래를 수행하도록 코드를 수정하는 방법은 무엇입니까?
 
niko :
이봐 CB, 위의 점에 대한 도움이 있습니까? 한 방향으로 여러 거래를 수행하도록 코드를 수정하는 방법은 무엇입니까?

변경: if ( iDuplicateOrders = = 0 ) to: if ( iDuplicateOrders <= iMaxDuplicateOrders )

CB

 

CB님, 감사합니다. 이 옵션을 사용하면 한 방향으로 허용되는 미결 주문 수를 조절할 수 없습니다(extern iMaxDuplicateOrders = 4로 설정한다고 가정해 보겠습니다.) ea는 4개의 반바지를 실행하고 매개변수 를 고르게 분배하지 않습니다(예: 최대 2개의 반바지, 최대 2개의 긴 항목). ). bool fnOrderDuplicate(예: bool fnOrderDuplicateBuys 및 bool fnOrderDuplicateSells)의 복제본을 만든 다음 bool fnShouldWeTrade에서 각각을 참조하겠습니다. 제 생각에는 이것이 효과가 있을 수 있습니다. 어떻게 생각하시나요?

 
niko :

CB님, 감사합니다. 이 옵션을 사용하면 한 방향으로 허용되는 미결 주문 수를 조절할 수 없습니다(extern iMaxDuplicateOrders = 4로 설정한다고 가정해 보겠습니다.) ea는 4개의 반바지를 실행하고 매개변수를 고르게 분배하지 않습니다(예: 최대 2개의 반바지, 최대 2개의 긴 항목). ). bool fnOrderDuplicate(예: bool fnOrderDuplicateBuys 및 bool fnOrderDuplicateSells)의 복제본을 만든 다음 bool fnShouldWeTrade에서 각각을 참조하겠습니다. 제 생각에는 이것이 효과가 있을 수 있습니다. 어떻게 생각하시나요?


iMaxDuplicateOrders = 4로 설정하면 카운터를 증가시키기 전에 방향을 확인 하므로 최대값은 각 방향에서 4개의 주문이 됩니다.


신용이 있어야 하는 신용. 이 경우 반대가 발생합니다. 사과 - 당신이 직접 수정하지 않은 것에 대해 이미 실망했습니다. 한 가지 주문에서 변수로 제한을 변경하기만 하면 됩니다.


주석을 보면 논리를 제대로 이해하지 못한 채 산문으로 코드를 다시 생성하고 있음이 분명합니다.


CB