[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 281

 
Pyro :

타라


주문 가격이 4자리로 정규화되기 때문에 흥미롭습니다. 즉, 포인트의 분수가 있을 수 없습니다. 왜 그런 겁니까? 그리고 예, 정상적으로 작동하기 시작했습니다! 고마워

일반적으로 계산 시 정규화를 수행해야 합니다.

   int dg=MarketInfo( Symbol (),MODE_DIGITS);         // Количество цифр после десятичного точки в цене инструмента
   if ( NormalizeDouble (OrderOpenPrice()-(p1+more),dg)== 0 ) {
       // ... тут код, если результатом сравнения стал ноль, т.е. сравниваемые величины равны
      }

코드의 몇 가지 사항:

 for ( int i= 1 ; i <= OrdersTotal () ; i++)   // делаете цикл от второго ордера в списке. Почему бы сразу не for(int i=0; i<OrdersTotal(); i++) ?
   {
   if ( OrderSelect (i- 1 ,SELECT_BY_POS,MODE_TRADES))   // если выбрали ЛЮБОЙ ордер, пусть он даже открыт другим советником или вручную
      {                                           
       if (OrderOpenPrice()-(p1+more) == 0 )           // сравниваете без нормализации
         {
         ordersethigh1=true;                       // желательно флагу ПЕРЕД циклом задать значение false
         break ;
         }
      }
   }
     
if ((ordersethigh1==false) && (p2-price>pointsclose))   // второе условие тоже не нормализовано
   {
   OrderSend ( Symbol (),OP_SELLLIMIT,baselot,p1+more, 3 , NULL , NULL , "Comment" , 0001 , 0 , White );
   }
 

아트미디어70


글쎄, 나는 당신의 코드를 기반으로 작성했습니다. 지금은 단순화했습니다(이해합니다). 명확해진 유일한 것은 모든 것이 정상화되어야 한다는 것이었습니다. 이것은 일종의 발견입니다(모든 것이 테스터에서 작동했습니다). 천천히 이해합니다.

 если выбрали ЛЮБОЙ ордер, пусть он даже открыт другим советником или вручную

이 경우 중복 코드는 필요하지 않습니다. 도구에 대한 진실이 확인을 추가했습니다.

두 가지 옵션이 있으며 둘 다 작동합니다.

 if (OrderOpenPrice()-(channelhigh+more) <= Point * 0.5 )

if ( NormalizeDouble (OrderOpenPrice()-(channelhigh+more), 4 ) == 0 )

덕분에 많이 풀렸습니다!



 
Pyro :

아트미디어70


글쎄, 나는 당신의 코드를 기반으로 작성했습니다. 지금은 단순화했습니다(이해합니다). 명확해진 유일한 것은 모든 것이 정상화되어야 한다는 것이었습니다. 이것은 일종의 발견입니다(모든 것이 테스터에서 작동했습니다). 천천히 이해합니다.

이 경우 중복 코드는 필요하지 않습니다 . 도구에 대한 진실이 확인을 추가했습니다.

두 가지 옵션이 있으며 둘 다 작동합니다.


덕분에 많이 풀렸습니다!

선택한 주문의 종류를 확인하는 것은 중복인가요? 매수 또는 매도 주문이면 어떻게 됩니까? 확인하지 않고 기능은 보류 중인 주문이 있음을 알려줍니다(존재 여부 확인). 지연된 것이 있는지 확인하고 절대적으로 모든 유형이 존재하는 경우 true가 반환됩니다. 손으로 열어도. 보류 중인 주문에는 4가지 유형이 있습니다. 오해를 피하기 위해 함수가 호출될 때 보류 중인 주문 유형을 함수에 전달하고 선택한 주문 유형이 함수에 전달된 것과 일치하는지 확인하는 것이 좋습니다.
(277페이지의 내 예에서는 그러한 검사가 없습니다. 보류 중인 검사에 대한 검사만 있습니다. 유형이 1보다 작고 5보다 크면 다음 선택으로 이동합니다.)

더 나아가. 귀하의 고문은 한 시간대에 작업할 수 있고 다른 고문은 동시에 다른 시간에 작업할 수 있습니다. 둘 다 같은 악기에 있습니다. 다른 EA가 개설한 포지션은 "예, 주문이 있습니다"로 해석됩니다. 이것은 고문이 자신의 주문과 위치를 구별할 수 있도록 MagicNumber로 수표를 입력해야 함을 의미합니다.

따라서 거래 수단의 상징, 마술 및 확인 된 주문의 유형에 대한 확인은 불필요한 것이 아니라 필요합니다. 이것은 최소값이지만 중복성은 아닙니다.

 

안녕 동지들!

마지막으로 마감된 주문을 찾는 데 문제가 발생한 사람이 있습니까? 그리고 그것의 수익성 또는 무익성을 드러내는가?

어떤 방법이 사용되었습니까?

미리 감사합니다

추신 조작이 간단한 것 같은데 어떻게 접근해야 할지 모르겠어

 
artmedia70 :

따라서 거래 수단의 상징, 마술 및 확인 된 주문의 유형에 대한 확인은 불필요한 것이 아니라 필요합니다. 이것은 최소값이지만 중복성은 아닙니다.

여기서 내 실수는 실제로 하나의 기능만 게시했다는 것입니다. 물론 검사도 있을 것입니다. 이 코드 조각은 여러 면에서 훈련 중일 뿐이며 고문의 일부일 뿐입니다. 도움을 주셔서 다시 한 번 감사드립니다!

 
ramirez17 :
추신 조작이 간단한 것 같은데 어떻게 접근해야 할지 모르겠어
이 질문이 얼마나 인기가 있는지 놀랄 것입니다.
Google 요청:
마지막으로 마감된 주문 사이트:mql4.com
 
ramirez17 :

안녕 동지들!

마지막으로 마감된 주문을 찾는 데 문제가 발생한 사람이 있습니까? 그리고 그것의 수익성 또는 무익성을 드러내는가?

어떤 방법이 사용되었습니까?

미리 감사합니다

추신 조작이 간단한 것 같은데 어떻게 접근해야 할지 모르겠어

https://www.mql5.com/ru/forum/131859/page4#434229

https://www.mql5.com/ru/forum/131859/page4#434230

 
granit77 :
이 질문이 얼마나 인기가 있는지 놀랄 것입니다.
Google 요청:
마지막으로 마감된 주문 사이트:mql4.com

확인. 구글을 잊었다. 바로 여기로 달려왔습니다 :)
 
어드바이저에서 설정한 파일을 어느 폴더에 넣을까요?
 
drm1 :
어드바이저에서 설정한 파일을 어느 폴더에 넣을까요?
전문가/사전 설정