포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 148

 

안녕하세요.
OrderSelect 함수 는 오류 0을 반환합니다(ERR_NO_ERROR - 거래 작업이 성공했습니다)???
이 오류를 피하는 방법은 무엇입니까?
나는 로그에서 프로그램과 항목의 코드를 첨부하고 있습니다.
감사합니다. 쉬.

 //+------------------------------------------------------------------+
//|                                                    PoligonTd.mq4 |
//|                                           17 сентября 2013 года. |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "17 сентября 2013 года."
#property link       ""

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----Функция OrderSelect--------------------------------------------+
string Str= "#20552937 buy 1.00 GBPUSD at 1.55450" ; //Строка
int Tct=StrToDouble( StringSubstr (Str, 1 , 9 )); //Номер ордера
   if ( OrderSelect (Tct,SELECT_BY_TICKET)== true ) //Выбор ордера по номеру
string OdSmb=OrderSymbol(); //Символ ордера
   else Print ( "OrderSelect() вернул ошибку - " , GetLastError ());
Print ( "Кс:" , " Str=" ,Str, "; Tct " ,Tct, "; OdSmb " ,OdSmb, "?" ); //Кс
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

2013.09.17 13:07:04 PoligonTd GBPUSD,매일: 삭제됨
2013.09.17 13:07:04 PoligonTd GBPUSD,일일: 단위 이유 0
2013.09.17 13:07:04 PoligonTd GBPUSD,일일: X: Str=#20552937 1.55450에 1.00 GBPUSD 매수; Tct 20552937; 오즈엠비?
2013.09.17 13:07:04 PoligonTd GBPUSD,매일: OrderSelect()가 오류를 반환했습니다 - 0
2013.09.17 13:07:04 PoligonTd GBPUSD,매일: 성공적으로 로드됨

 
Shurkin :

안녕하세요.
OrderSelect 함수는 오류 0을 반환합니다(ERR_NO_ERROR - 거래 작업이 성공했습니다)???
이 오류를 피하는 방법은 무엇입니까?
나는 로그에서 프로그램과 항목의 코드를 첨부하고 있습니다.
감사합니다. 쉬.

2013.09.17 13:07:04 PoligonTd GBPUSD,매일: 삭제됨
2013.09.17 13:07:04 PoligonTd GBPUSD,일일: 단위 이유 0
2013.09.17 13:07:04 PoligonTd GBPUSD,일일: X: Str=#20552937 1.55450에 1.00 GBPUSD 매수; Tct 20552937; 오즈엠비?
2013.09.17 13:07:04 PoligonTd GBPUSD,매일: OrderSelect()가 오류를 반환했습니다 - 0
2013.09.17 13:07:04 PoligonTd GBPUSD,매일: 성공적으로 로드됨

사실 선택오류는 없고 그런 티켓이 있는 주문만 존재하지 않습니다.
 
Sepulca :
사실 선택오류는 없고 그런 티켓이 있는 주문만 존재하지 않습니다.

음... 그러한 티켓에 주문이 없으면 OrderSelect() 는 false를 반환합니다.

우리가 다른 곳으로 이동하기 때문에 여기에 분명히 오류가 있습니다. 질문: 왜 0인가?

 

나는 최소한의 비용으로 논리를 구현한다는 것을 이해하지 못할 것입니다.

if(...) 중지 주문을 설정합니다.

if(주문 수명>시간) 주문을 취소하고 if(..) 새 주문을 하십시오.

어려움은 이미 여러 직책이 열려 있을 수 있으며 이들 모두를 동반하는 방법은 무엇입니까? 가장 쉬운 방법은 무엇입니까?

고맙습니다!

 

특수 기능 init()를 포기하는 것이 좋습니다. 나는 이것이 올바른 결정이라고 생각합니다. 맞습니까?

나는 다음과 같은 방법을 본다.

1. 다음과 같이 전역 수준에서 변수를 선언합니다.

gInitTrue = false ;

다음으로 INIT를 만듭니다.

 bool myInit()
{
  // Инициализируем..
  // неоходимые..
  // нам..
  // переменные..
  return ( true );
}

시작의 맨 처음에는 다음과 같습니다.

 if (gInitTrue == false)
    myInit();
이 접근 방식의 nabonosti와 내가 제안한이 문제를 해결하는 변형의 정확성에 대한 경험이 많은 사람들의 의견을 듣는 것은 흥미 롭습니다.
 
Sepulca :

더 많은 버퍼.

앗, 실수를 깨달았습니다. 또한 2개의 버퍼에 대해 2개의 색상을 추가해야 했습니다.
 
hoz :

특수 기능 init()를 포기하는 것이 좋습니다. 나는 이것이 올바른 결정이라고 생각합니다. 맞습니까?

나는 다음과 같은 방법을 본다.

1. 다음과 같이 전역 수준에서 변수를 선언합니다.

다음으로 INIT를 만듭니다.

시작의 맨 처음에는 다음과 같습니다.

이 접근 방식의 nabonosti와 내가 제안한이 문제를 해결하는 변형의 정확성에 대한 경험이 많은 사람들의 의견을 듣는 것은 흥미 롭습니다.

새로운 솔루션의 감각의 참신함은 무엇입니까? :-))

지옥 하나. 그럴 필요가 없었습니다.

 
artmedia70 :

음... 그런 티켓에 주문이 없으면 OrderSelect()는 false를 반환합니다.

우리가 다른 곳으로 이동하기 때문에 여기에 분명히 오류가 있습니다. 질문은: 왜 0인가?



나는 확인했습니다 - 티켓 번호가 적합한지 - 모든 것이 잘 작동합니다.

그렇지 않은 경우 함수는 False를 반환하지만 OrderSelect() 는 마치 아무 일도 일어나지 않은 것처럼 조용합니다. ZERO입니다.

 
Zhunko :

새로운 솔루션의 감각의 참신함은 무엇입니까? :-))

지옥 하나. 그럴 필요가 없었습니다.



그리고 주제에 더 가깝다면? 예를 들어 연결이 끊기거나 기타 유사한 상황에서 INIT가 실패할 수 있다는 것은 오랫동안 논의되어 왔습니다. 왜냐하면 예상치 못한 상황의 경우 나중에 데이터를 다시 시작하지 않으며 한 번만 실행됩니다! 따라서 이것은 완전히 올바른 옵션이 아닙니다.
 

질문이 바보같긴 한데 어디선가 답을 못 본 것 같거나 그냥 삐딱하게 쳐다본 것 같아요.

함수에서, 그리고 아마도 다른 곳 에서 데이터 유형 뒤에 & 기호를 만났고, 내가 틀리지 않았다면 && 를 한 번 보았습니다.

func( int& mm_mode, string symbol, int magic, bool& stop) {

무엇을 위한 것입니까? 그것은 무엇을주고 무엇을합니까? 자세한 내용은 링크를 참조하세요 ;)