FOREX에서 기호 이름의 최대 길이 - 페이지 8

 
fxsaber :

사실, 그것은 나막신입니다. 왜냐하면 기다리지 않고 추적할 수 있습니다. 유일한 대안이 아닌 OnTradeTransaction은 주문이 거부된 경우입니다. 예를 들어, 돈이 부족합니다.


배열(목록)을 해당 마법과 요청으로 채우는 100개의 비동기 작업을 수행한 것으로 나타났습니다. 요청에 대한 응답이 OnTradeTransaction에서 수신되는 즉시 항목이 목록에서 제거되었습니다. 산/사자 명단에서 마법사의 빛을 보자마자 그 항목을 제거했다. 이것은 어느 정도 통제됩니다. 제대로 이해하셨나요?


마법 대신 다른 필드(SL/TP, Comment)를 사용할 수 있습니다.

네 맞습니다. OnTradeTransaction은 비활성화되지 않으며 검사 기능만 주기적으로 호출됩니다(OnTradeTransaction이 작동하지 않는 경우). 모든 것이 주문으로 결정되는 즉시 플래그가 재설정됩니다.

덧글은 캐쥬얼하게 사용하는 방법인데 SL/TP는?

 
fxsaber :

그리고 각 On-bunch를 확인할 수 있는데 왜 기다려야 합니까?

내 전략에서 정확히 무엇이 OnTradeTransaction 인지 중요하기 때문입니다.

나는 On-Puke를 사용하지 않습니다 :)

추가됨

이벤트가 들어왔다면   OnTradeTransaction 은 모든 것이 재설정되므로 장애가 없습니다.

 
prostotrader :

덧글은 캐쥬얼하게 사용하는 방법인데 SL/TP는?

위에 추가된...

필요한 정보가 저장된 값으로 가짜 SL을 노출합니다. 예를 들어, MT4에서 한도 제한을 통해 채워진 포지션의 시가를 저장했습니다.

 
prostotrader :

내 전략에서 정확히 무엇이 OnTradeTransaction 인지 중요하기 때문입니다.

그래서 바로 OnTradeTransaction에서 마법을 확인하십시오. 그게 내가 할 일입니다.


일반적으로 요청의 대안으로 마법을 사용하는 아이디어가 멋지다!

 
fxsaber :

위에 추가된...

필요한 정보가 저장된 값으로 가짜 SL을 노출합니다. 예를 들어, MT4에서는 한도를 통해 채워진 포지션의 시가를 저장했습니다.

포지션이 없으면 SL 설정이 가능한가요?

 
prostotrader :

포지션이 없으면 SL 설정이 가능한가요?

이것은 시장에 대해 수행될 수 없습니다. 나는 오랫동안 지정가 주문을 통해서만 거래를 해왔습니다.

 
fxsaber :

이것은 시장에 대해 수행될 수 없습니다. 나는 오랫동안 지정가 주문을 통해서만 거래를 해왔습니다.

이런 방식으로 정보를 저장하는 "멍청한" 결정. 글쎄, 당신은 더 잘 볼 수 있습니다.

FOREX 시장 은 전혀 관심이 없기 때문에 기호 이름에서 6개의 기호와 한 차트에 65365개의 mogik가 있으면 내 요구에 충분합니다.

또한 거래일당 2,000건의 거래만 가능합니다.

 
prostotrader :

FOREX 시장 은 전혀 관심이 없기 때문에 기호 이름에서 6개의 기호와 한 차트에 65365개의 mogik가 있으면 내 요구에 충분합니다.

또한 거래일당 2,000건의 거래만 가능합니다.

외환에 관한 것이 아닙니다. 그리고 OnTradeTransaction에도 동일한 문제가 있습니다. 따라서 보편적인 솔루션

 #include <crc64.mqh> // https://www.mql5.com/en/blogs/post/683577

string GetMagicString()
{
   return ( MQLInfoString ( MQL_PROGRAM_PATH /*MQL_PROGRAM_NAME*/ ) + _Symbol + ( string ) ChartID () /* + (string)_Period*/ );
}

// Формирует мэджик с изменяемой частью ReserveBits для прописывания туда Num-значения
ulong GetMagic( const int Num = 0 , const int ReserveBits = 12 )
{
   uchar Bytes[];
  
   return ((crc64( 0 , Bytes, ( StringToCharArray (GetMagicString(), Bytes))) << ReserveBits) + (Num % ( 1 << ReserveBits)));
}

// Определяет, свой ли исходный мэджик с изменяемой частью ReserveBits
bool IsMyMagic( const ulong Magic, const int ReserveBits = 12 )
{
   return (GetMagic( 0 , ReserveBits) >> ReserveBits == Magic >> ReserveBits);
}

#define PRINT(A) Print ( #A + " = " + ( string )(A))

void OnStart ()
{  
   for ( int i = 0 ; i < 10 ; i++)
  {
    PRINT(GetMagic(i));
    PRINT(IsMyMagic(GetMagic(i)));
  }
  
  PRINT(IsMyMagic( MathRand ()));
}
 

물론 이 경우 이벤트 모델은 불편합니다. 예를 들어 On-function을 벗어나지 않고 비동기 작업을 수행하고 결과를 가져와야 하는 경우입니다.

이제 이러한 행동은 목발을 통해 가능합니다.

  1. 표시기는 모든 트랜잭션을 공공 장소(예: 리소스)에 기록하는 OnTradeTransaction 을 사용하여 (버퍼 및 입력 변수 없이) 기록됩니다.
  2. EA는 iCustom을 통해 이 지표를 생성합니다.
  3. 실행의 어느 시점에서든 어드바이저는 지표가 기록한 모든 수신 트랜잭션을 볼 수 있습니다.

그 결과 엄청난 유연성이 생깁니다.

예를 들어 100개의 비동기 주문을 보내고 깊은 곱창을 떠나지 않고 실행을 기다리면서 코드를 계속 실행할 수 있습니다.


물론 우리는 요청에 대해 이야기하고 있습니다. 그리고 마법 테마는 그것과 아무 관련이 없습니다.


ZY 개발자의 공개 배열에 있는 트랜잭션 기록이 정기적으로 실행되는 것이 합리적이지만. 표시기 없음.

 
fxsaber :

외환에 관한 것이 아닙니다. 그리고 OnTradeTransaction에도 동일한 문제가 있습니다. 따라서 보편적인 솔루션

위협 비트 연산 없이 수행하는 것이 가능하지만(훨씬 더 좋습니다) crc64 + Num 입니다.
 2018.08 . 25 22 : 10 : 48.913 Test (BR- 9.18 ,M1)       1749671450686091264
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091265
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091264
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091265
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091264
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091265
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091264
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091265
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091272
2018.08 . 25 22 : 10 : 48.914 Test (BR- 9.18 ,M1)       1749671450686091273

우연이 있다...

사유: