주문을 찾는 작업

 

일반적으로 다음의 핵심은 주문을 찾기 위한 코드 옵션을 찾는 것입니다.

작업은 다음과 같습니다.

하나 :

가격별, 주문유형별 (매수/매도) 최대 주문량 정보를 최상위로 가져옵니다.

가격 및 주문 유형( 매수 / 매도 )별 최소 주문에 대한 정보를 얻으십시오.

마지막 주문에 대한 시간 및 주문 유형별 정보 얻기 ( 매수 / 매도 )

시간 및 주문 유형별 첫 주문 정보 얻기 ( 매수 / 매도 )

2:

가격 및 주문 유형별 끝에서 두 번째 최대 주문에 대한 정보 얻기 ( 매수 / 매도 )

가격 및 주문 유형별 끝에서 두 번째 최소 주문 정보 얻기 ( 매수 / 매도 )

시간별, 주문유형별 마지막 2번째 주문정보를 확인하세요. ( 매수 / 매도 )

시간 및 주문 유형별 2차 주문 정보 얻기 ( 매수 / 매도 )

정보란 주문에 대한 모든 정보를 의미합니다(기호, 로트, 가격......)

절차적 프로그래밍 방식에서는 이 문제가 오래전에 해결되어 지금은 간단하게 수업을 하고 싶은데 뭔가 생각이 안나네요.. 조언 부탁드립니다...

 
Vladimir Pastushak :

일반적으로 다음의 핵심은 주문을 찾기 위한 코드 옵션을 찾는 것입니다.


활성 주문을 모니터링하시겠습니까?

MQL4 또는 MQL5?

 
Михаил :
활성 주문을 모니터링하시겠습니까?
예, 하지만 전부는 아니지만 가격의 최대/최소값과 시간의 처음과 마지막, 각각 2개, 즉 마지막과 끝에서 두 번째 ..
 
Vladimir Pastushak :

일반적으로 다음의 핵심은 주문을 찾기 위한 코드 옵션을 찾는 것입니다.

작업은 다음과 같습니다.

하나 :

가격별, 주문유형별 (매수/매도) 최대 주문량 정보를 최상위로 가져옵니다.

가격 및 주문 유형( 매수 / 매도 )별 최소 주문에 대한 정보를 얻으십시오.

마지막 주문에 대한 시간 및 주문 유형별 정보 얻기 ( 매수 / 매도 )

시간 및 주문 유형별 첫 주문 정보 얻기 ( 매수 / 매도 )

2:

가격 및 주문 유형별 끝에서 두 번째 최대 주문에 대한 정보 얻기 ( 매수 / 매도 )

가격 및 주문 유형별 끝에서 두 번째 최소 주문 정보 얻기 ( 매수 / 매도 )

시간별, 주문유형별 마지막 2번째 주문정보를 확인하세요. ( 매수 / 매도 )

시간 및 주문 유형별 2차 주문 정보 얻기 ( 매수 / 매도 )

정보란 주문에 대한 모든 정보를 의미합니다(기호, 로트, 가격......)

절차적 프로그래밍 방식에서는 이 문제가 오래전에 해결되어 지금은 간단하게 수업을 하고 싶은데 뭔가 생각이 안나네요.. 조언 부탁드립니다...

네. 블라디미르는 대단한 임무입니다! :-)

어디서 거래하는지 알려주실 수 있나요?

 
Vladimir Pastushak :
예, 하지만 전부는 아니지만 가격의 최대/최소값과 시간의 처음과 마지막, 각각 2개, 즉 마지막과 끝에서 두 번째 ..

당신이 순서를 정하기 때문에 어렵지 않습니다.

따라서 메모리에 마지막 2개의 BUY 및 마지막 2개의 Sell에 대한 데이터를 기록합니다.

그리고 당신은 아무것도 찾을 필요가 없습니다.

 struct MEM_ORDER
{
   ulong ticket;
   long ord_type;
   double price;
};
struct MEM_ORDERS
{
   bool       is_first_buy;
   bool       is_first_sell;
  MEM_ORDER buy_oders[ 2 ];
  MEM_ORDER sell_oders[ 2 ];
};
 
Михаил :

당신이 순서를 정하기 때문에 어렵지 않습니다.

따라서 메모리에 마지막 2개의 BUY 및 마지막 2개의 Sell에 대한 데이터를 기록합니다.

그리고 당신은 아무것도 찾을 필요가 없습니다.

그런 해결 방법을 생각해 보았지만 어드바이저/단말을 재부팅할 때 재초기화가 발생하고 이전 작업 중 모든 데이터가 손실된다는 사실에 만족하지 못했습니다.

어드바이저의 시점에서 환경에 대한 데이터를 수집하는 것이 신뢰할 수 있는 작업 방법이라고 생각합니다.

 
Vladimir Pastushak :

그런 해결 방법을 생각해 보았지만 어드바이저/단말을 재부팅할 때 재초기화가 발생하고 이전 작업 중 모든 데이터가 손실된다는 사실에 만족하지 못했습니다.

어드바이저의 시점에서 환경에 대한 데이터를 수집하는 것이 신뢰할 수 있는 작업 방법이라고 생각합니다.

그리고 어드바이저를 종료할 때 파일에 데이터를 저장하고 로드할 때 파일에서 로드하지 못하게 하는 것은 무엇입니까?

 //| Expert Load setings function                                     |
//+------------------------------------------------------------------+
void LoadSettings()
{
   string file_name = _Symbol + ".dat" ;
   int file_handle;
//---  
   if ( FileIsExist ( file_name, 0 ) )
  {
    file_handle = FileOpen ( file_name, FILE_READ | FILE_BIN );
    
     if ( file_handle != INVALID_HANDLE )
    {
      e_high = FileReadLong ( file_handle );
      a_profit = FileReadLong ( file_handle );
      e_low = FileReadLong ( file_handle );
      ord_delta_high = FileReadLong ( file_handle );
      ord_delta_low = FileReadLong ( file_handle );
      order_delta = FileReadLong ( file_handle );
      exit_delta = FileReadLong ( file_handle );
       FileClose ( file_handle );
    }
  } 
}

//+------------------------------------------------------------------+
//| Expert Save settings function                                    |
//+------------------------------------------------------------------+
void SaveSettings()
{
   string file_name = _Symbol + ".dat" ;
   int file_handle;
   bool file_found = true ;
//---  
   if ( FileIsExist ( file_name, 0 ) )
  {
     if ( FileDelete ( file_name, 0 ) ) file_found = false ;
  }
   else
  {
    file_found = false ;
  }
//---
   if ( ! file_found )
  {
    file_handle = FileOpen ( file_name, FILE_WRITE | FILE_BIN );
    
     if ( file_handle != INVALID_HANDLE )
    {
       FileWriteLong ( file_handle, e_high );
       FileWriteLong ( file_handle, a_profit );
       FileWriteLong ( file_handle, e_low );
       FileWriteLong ( file_handle, ord_delta_high );
       FileWriteLong ( file_handle, ord_delta_low );
       FileWriteLong ( file_handle, order_delta );
       FileWriteLong ( file_handle, exit_delta );
       FileClose ( file_handle );
    }
  } 
}
 
Михаил :

그리고 어드바이저를 종료할 때 파일에 데이터를 저장하고 로드할 때 파일에서 로드하지 못하게 하는 것은 무엇입니까?

이것은 확실히 좋지만 재부팅하는 동안 환경이 변경될 수 있으므로 신뢰할 수 없습니다.
 
Vladimir Pastushak :
이것은 확실히 좋지만 재부팅하는 동안 환경이 변경될 수 있으므로 신뢰할 수 없습니다.

종료하기 전에 모든 주문을 닫으십시오.

아직 해야 할 일이다

 
Михаил :

종료하기 전에 모든 주문을 닫으십시오.

하기엔 여전히 지루하다

예기치 않은 재부팅으로 인해 문제가 발생합니다...

수업을 썼는데...

 
Vladimir Pastushak :

예기치 않은 재부팅으로 인해 문제가 발생합니다...

수업을 썼는데...

사람 웃기지 마....

예상치 못한 일이 발생하면 수업이 저장되지 않습니다!

Windows 또는 터미널이 "붕괴"된 경우 Expert Advisor가 다시 초기화되면

나는 활성화된 주문을 "보고" 닫습니다. 왜냐하면 그것들을 통제할 수 없기 때문입니다.