확인 - 내가 무엇을 잘못 했습니까? - 페이지 2

 
Natalya Smirnova # :

이진 옵션을 작성했기 때문에 조금 다르게 했습니다.


그럼 아마 맞겠죠?

여기 문제가 무엇인지
터미널에서 1 주문 2 라인


그리고 Expert Advisor의 주문에 따라 Profit == 0

 
Natalya Smirnova # :

여기 문제가 무엇인지
터미널에서 1 주문 2 라인


그리고 Expert Advisor의 주문에 따라 Profit == 0

0보다 작은 가격을 어디서 찾았나요? 화면을 보여주세요.

이 화면에는 그런 것이 없습니다

 
Alexey Viktorov # :

알고리즘 전반에 걸쳐 당신은 이미 조언을 받았고, 나는 끼어들고 싶지도 않고 당신의 코드와 같은 조언도 보지 않았습니다 ... 그리고 이것은

내 눈을 사로 잡았다. 이와 관련하여 질문은 다음과 같습니다. switch 문을 적용하는 것이 더 쉽고 읽기 쉽지 않습니까?

더 읽기 쉽고 이해하기 쉬울 것 같아요. 어쩌면 조금 더 빨리 작동합니다.
함수 대신 volume[n] 배열을 사용하시겠습니까?
Threat 비록 그들이 코드의 각 라인에 대해 비용을 지불한다면 그렇게 두는 것이 좋습니다 :))
 
Nikolai Semko # :
함수 대신 volume[n] 배열을 사용하시겠습니까?
Threat 비록 그들이 코드의 각 라인에 대해 비용을 지불한다면 그렇게 두는 것이 좋습니다 :))

아마도 예 ... 동의합니다.

 
Renat Akhtyamov # :

0보다 작은 가격을 어디서 찾았나요? 화면을 보여주세요.

이 화면에는 그런 것이 없습니다


나는 OrderProfit()을 얻으려고 노력하고 있습니다 - 0을 제공합니다

다음은 해당 추가 라인에서 정렬될 것이므로 -0.01의 이익을 발견한 확인입니다.

 
Alexey Viktorov # :

아마도 예 ... 동의합니다.

나는 나 자신과 자기 개발을 위해 이것을 지불하지 않습니다. 퇴근 후에는 Grail 검색을 하는 것이 재미있습니다.
 

일반적으로 부정적인 가격에 대해 이해하지 못했습니다. 여전히 존재하지 않습니다.

다음과 같이 총 이익을 계산하십시오 (복사)

당신이 필요로하는 것을 강조

    for(i=0;i<OrdersHistoryTotal();i++)

   {

      if( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY))

      {

          if(OrderType()==ORDER_TYPE_BALANCE && OrderCloseTime()>startDate)Withdrawal=Withdrawal+ OrderProfit()+OrderCommission()+OrderSwap();

         if((OrderType()==ORDER_TYPE_BUY || OrderType()==ORDER_TYPE_SELL))

         {

            if(OrderCloseTime()>iTime(Symbol(),PERIOD_D1,0))hystCurrDay=hystCurrDay+OrderProfit()+OrderCommission()+OrderSwap();

            if(OrderCloseTime()<iTime(Symbol(),PERIOD_D1,0) && OrderCloseTime()>iTime(Symbol(),PERIOD_D1,1))hystPrevDay=hystPrevDay+OrderProfit()+OrderCommission()+OrderSwap();

         }

      }

   }



 
Natalya Smirnova # :
나는 나 자신과 자기 개발을 위해 이것을 지불하지 않습니다. 퇴근 후에는 Grail 검색을 하는 것이 재미있습니다.

괜찮아요. 니콜라이와 나 사이에 그런 도당이 결성된 것은 ...

본질적으로 귀하의 문제는 BO의 OrderProfit()이 실제 가치를 제공하지 않기 때문에 양수/음수 마감 주문을 주문의 마감 가격과 시작 가격 간의 차이로 정의해야 합니다. 당신은 이미 이것에 대해 들었습니다

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

확인 - 내가 무엇을 잘못 했습니까?

레나트 아크티아모프 , 2021.12.21 09:27

논리를 이해할 때까지

어떻게 그렇게?

 bool profit = false ;
         if (OrderClosePrice() > 0 )
            profit = true ;

         bool loss = false ;
         if (OrderClosePrice() < 0 )
            loss = true ;

주문 의 종가가 어떻게 0보다 작을 수 있습니까?

BUY 주문은 종가가 시가보다 높으면 긍정적인 영역이 됩니다.

구매에 대한 플러스 조건은 다음과 같습니다(커미션 및 스왑 제외).

OrderClosePrice() > OrderOpenPrice()
반대의 경우에는 음수입니다.

 
Natalya Smirnova # :
나는 나 자신과 자기 개발을 위해 이것을 지불하지 않습니다. 퇴근 후에는 Grail 검색을 하는 것이 재미있습니다.

예, Natalya - "당신이 한 줄의 코드에 대해 지불할 때" 시리즈의 밈이었습니다.

프로그래머들 사이에서 이런 유머


귀하의 경우 기능이 필요하지 않습니다.

 double SelectVolume( int n)

Volume1 ... Volume10 변수를 처음에 어레이 볼륨[10] 형태로 형성하면 됩니다.
그런 다음 인덱스 n으로 요소 volume[n]에 액세스합니다.
걱정하지 마세요. 거의 모든 프로그래머가 이 문제를 겪었습니다.
가장 중요한 것은 프로그래밍에서 정말 서두른다는 것입니다. 느낄 수있어.
그래서 당신은 멀리 갈 것입니다.

 
동의한다. 프로그래밍에서 정말 서두르고 매우 깁니다!!!
모두가 졸업하는 것은 아니다...