Magic Number 배열을 만드는 방법은 무엇입니까? - 페이지 2

 
7bit :
귀하의 EA가 무엇을 할 것인지 대략적으로 설명해 주십시오. 개별적 으로 관리해야 하는 다른 유형의 주문이 얼마나 많은지. 귀하가 실제로 달성하려는 것이 무엇인지 안다면 귀하의 문제는 전혀 문제가 되지 않을 수도 있습니다.


주문할 때 매직넘버와 같은 고유한 태그를 갖고 싶습니다. 고정 주문 번호가 없습니다.

모든 새 주문은 새 그룹으로 처리되고 별도로 관리됩니다.

 int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green)
&   ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green);

수정 12345 대신 1, 다음 주문 2, 3, 4 등과 같은 모든 새 주문과 함께 매직 번호가 증가하기를 원합니다.

또한 OrderSend는 반복되지 않는 함수에 있습니다. 그런 일을 하는 방법?

언젠가는 동적 배열[i] ???

닫으려고 할 때 OrdersTotal() 및 모든 고유한 마법 번호 array[i] ??? 그리고 조건이 충족되면 같은 그룹의 그룹을 닫습니다.

 
7bit :
그런 헛소리는 추천하지 말아주세요. 매직 넘버는 주문 자체에 이미 포함된 값을 저장하기 위한 것이 아닙니다.

주문 기간 ()에 정확히 어디에 포함되어 있는지 보여 주시겠습니까? ?
 
qjol :
주문 기간 ()에 정확히 어디에 포함되어 있는지 보여 주시겠습니까? ?

그렇지 않다.

IMHO, 이 전문가에게 다른 전문가를 사용할 계획이 없고 양도할 계획이 없다면 Magic Number를 사용하여 원하는 모든 것을 저장할 수 있습니다...

 
qjol :

주문 기간 ()에 정확히 어디에 포함되어 있는지 보여 주시겠습니까? ?
OrderPeriod() 란 무엇입니까???
 
gordon :

그렇지 않다.

IMHO, 이 전문가에게 다른 전문가를 사용할 계획이 없고 양도할 계획이 없다면 Magic Number를 사용하여 원하는 모든 것을 저장할 수 있습니다...


증가하는 매직 넘버를 저장하는 함수

각 OrderSend 전에 함수를 실행하여 다음에 할당할 매직 번호를 찾으십시오.

이와 같은 기능을 만드는 방법에 대한 아이디어가 있습니까?

 
johnnybegoode :

이와 같은 기능을 만드는 방법에 대한 아이디어가 있습니까?

이 기사에는 비교적 복잡한 예가 있습니다 -> http://mqlmagazine.com/mql-programming/object-oriented-trading-an-oop-approach-to-trading/ .
 
gordon :
이 기사에는 비교적 복잡한 예가 있습니다 -> http://mqlmagazine.com/mql-programming/object-oriented-trading-an-oop-approach-to-trading/ .


감사해요!
정말 복잡합니다. 더 쉬운 방법이 있습니까?
 
johnnybegoode :


1, 다음 주문 2, 3, 4 등과 같은 모든 새 주문에 따라 매직 번호가 증가하고 싶습니다.

그러나 이것이 동일한 고유 번호를 가진 두 개의 주문이 절대 없다는 것을 보장하지 않습니까? 귀하의 "그룹"은 각 그룹에서 단 하나의 거래로 구성됩니까? 내가 당신을 올바르게 이해 했습니까?

당신은 문제에 대한 유일한 해결책으로 보이는 것을 기반으로 무엇을 하고 싶은지(MN 배열 등) 설명했지만 여전히 문제 자체, 거래 시스템이 어떤 주문을 마감하고 어떤 것을 유지할지. 이것을 수동으로 거래하려는 경우 어떻게 작동할까요? 개념을 설명하고 이것이 어떤 유형의 시스템인지 명확하게 설명할 만큼 충분히 유사한 공개적으로 사용 가능한 거래 시스템이 있습니까?

예를 들어 "보통"(매우 자주) "가장 오래된 주문", "x pips 이익", "손익분기점", "x pips loss" 와 같이 주문 자체에서 결정할 수 있는 특정 요구 사항을 충족하는 주문을 마감하려고 합니다. 등이며 매직 넘버는 자신의 거래와 완전히 다른 EA의 거래를 구분하는 데만 사용됩니다.

이미 개설된 주문이 있는 차트를 보고 ID가 기록되지 *않은* 경우 이 시스템을 수동으로 거래(거래 계속)할 수 있습니까?

주문 마감 여부를 결정하기 위해서만 단일 주문의 단일 ID가 필요한 시스템은 무엇입니까? 어쨌든 모든 주문이 고유한 경우 티켓 번호 자체를 사용할 수 없는 이유는 무엇입니까?

이것에 대해 더 많이 알면 뒤로 물러서서 다른 각도에서 전체를 볼 수 있고 훨씬 더 우아하고 쉬운 솔루션을 찾을 수 있습니다.

 
7bit :

그러나 이것이 동일한 고유 번호를 가진 두 개의 주문이 절대 없다는 것을 보장하지 않습니까? 귀하의 "그룹"은 각 그룹에서 단 하나의 거래로 구성됩니까? 내가 당신을 올바르게 이해 했습니까?

당신은 문제에 대한 유일한 해결책으로 보이는 것을 기반으로 무엇을 하고 싶은지(MN 배열 등) 설명했지만 여전히 문제 자체, 거래 시스템이 어떤 주문을 마감하고 어떤 것을 유지할지. 이것을 수동으로 거래하려는 경우 어떻게 작동할까요? 개념을 설명하고 이것이 어떤 유형의 시스템인지 명확하게 설명할 만큼 충분히 유사한 공개적으로 사용 가능한 거래 시스템이 있습니까?

예를 들어 "보통"(매우 자주) "가장 오래된 주문", "x pips 이익", "손익분기점", "x pips loss" 와 같이 주문 자체에서 결정할 수 있는 특정 요구 사항을 충족하는 주문을 마감하려고 합니다. 등이며 매직 넘버는 자신의 거래와 완전히 다른 EA의 거래를 구분하는 데만 사용됩니다.

이미 개설된 주문이 있는 차트를 보고 ID가 기록되지 *않은* 경우 이 시스템을 수동으로 거래(거래 계속)할 수 있습니까?

주문 마감 여부를 결정하기 위해서만 단일 주문의 단일 ID가 필요한 시스템은 무엇입니까? 어쨌든 모든 주문이 고유한 경우 티켓 번호 자체를 사용할 수 없는 이유는 무엇입니까?

이것에 대해 더 많이 알면 뒤로 물러서서 다른 각도에서 전체를 볼 수 있고 훨씬 더 우아하고 쉬운 솔루션을 찾을 수 있습니다.


"그러나 이것이 동일한 고유 번호를 가진 두 개의 주문이 절대 없다는 것을 보장하지 않을까요?"

네, 고유번호로 2개 이상 주문 가능합니다. 그룹 주문 후 증분 수행

 

Jon 이 함수 는 고유 번호를 발행합니다.

 //+------------------------------------------------------------------+
//| Function..: SequenceNumber                                       |
//| Purpose...: Generate a sequential number.                        |
//| Returns...: dSeqNum - next sequence number.                      |
//| Notes.....: MT4 keeps the value of the global variable at the    |
//|             client terminal for 4 weeks since the last access.   |                        
//|             Use SequenceNumber() to generate a unique identity   |
//|             for each order (and passed via parameter <magic>     |
//|             number, or converted to a string and passed via the  |
//|             parameter <comment> to the OrderSend() function) as  |
//|             the trade servers of some brokers do modify the      |
//|             ticket number of a pending order when it changes to  |
//|             a market order.                                      |
//|             The same sequence number could, for example, be used |
//|             to identify the two positions of a straddle order.   |
//|             ******************************************************
//|             * If the expert has to close partial lots, then MT4  *
//|             * retains in the new order the contents of the       *
//|             * OrderMagicNumber() but loses OrderComment().       *
//|             ******************************************************
//| Sample....: string sNumber=DoubleToStr(SequenceNumber(),0);      |
//|             if(OrderSend("EURUSD",OP_BUY,1,Ask,3,Ask-25*Point,   |
//|                          Ask+25*Point,sNumber,16384,0,Green) > 0)|
//|                OrderSend("EURUSD",OP_BUY,1,Ask,3,Ask-25*Point,   |
//|                          Ask+65*Point,sNumber,16384,0,Green);    |
//+------------------------------------------------------------------+
double SequenceNumber() {
   double dSeqNum= 1 , d;
   string sName= "SequenceNumber" ;

   while ( GlobalVariableCheck ( "Semaphore" )) d+= 0 ;
   GlobalVariableSet ( "Semaphore" , 1 );
   if ( GlobalVariableCheck (sName)) dSeqNum= GlobalVariableGet (sName)+ 1 ;
   GlobalVariableSet (sName,dSeqNum);
   GlobalVariableDel ( "Semaphore" );
   return (dSeqNum);
}