7bit : 아이디어: 항상 같은 매직 번호를 사용하여 매직 번호를 사용하는 다른 모든 것과 호환되도록 할 수 있지만 각 거래 쌍에 고유한 번호를 주석에 포함하여 주석 문자열과 결합할 수도 있습니다. 그런 다음 동일한 마법 과 댓글이 있는 거래를 간단히 찾아 각 거래 쌍의 다른 거래를 찾을 수 있습니다.
7bit : 구매 및 판매에 별도의 마법이 필요하지 않으며 OrderType()으로 쉽게 필터링할 수 있습니다.
OrderSymbol()을 사용하여 통화 쌍 을 필터링할 수 있습니다.
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--) if (
OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == Magic.Number // my magic number
&& OrderSymbol() == Symbol () ){ // and period and symbol
//+------------------------------------------------------------------+//| 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);
}
감사합니다, 마침내 이 스레드를 다시 방문하게 되었고 이것을 시도하고 있습니다. 나는 샘플을 이해하지 못합니다. 왜 OrderSend > 0이고 다른 OrderSend를 수행합니까? 도와주세요!
나는 시퀀스 번호가 모든 주문과 함께 증가한다는 것과 댓글이나 매직 넘버에 할당할 수 있다는 것을 깨달았습니다. 가장 좋은 점은 MT4를 다시 시작한 후에도 시스템에 남아 있다는 것입니다.
그러나 나중에 어떻게 식별하고 비교합니까?
각 주문 세트가 배치되는 방법:
string sNumber=DoubleToStr(SequenceNumber(),0);
int ticket= OrderSend ( Symbol (),OP_BUY,LotSize,MarketInfo( Symbol 1,MODE_ASK), 3 , 0 , 0 , sNumber , 12345 , 0 , Green )
& ticket= OrderSend ( Symbol (),OP_SELL,LotSize,MarketInfo( Symbol 2,MODE_ASK), 3 , 0 , 0 , sNumber , 12345 , 0 ,Red);
아이디어: 항상 같은 매직 번호를 사용하여 매직 번호를 사용하는 다른 모든 것과 호환되도록 할 수 있지만 각 거래 쌍에 고유한 번호를 주석에 포함하여 주석 문자열과 결합할 수도 있습니다. 그런 다음 동일한 마법 과 댓글이 있는 거래를 간단히 찾아 각 거래 쌍의 다른 거래를 찾을 수 있습니다.
댓글과 매직넘버로 주문은 어떻게 찾나요?
나는 15개의 방아쇠를 가지고 있다
TP 200 SL 300과 같은 표준을 원하지 않습니다.
각 통화 쌍 은 트리거의 통계에 따라 다른 TP와 SL을 갖습니다.
더 높은 확률의 트리거가 오면 식별하고 조치를 취하고 싶습니다.
trigger1 eur/usd 100 확률: 94%, usd/jpy 300 확률: 74% eur/jpy 200 prob.100%
트리거 1이 eur/usd 쌍 중 하나에 대해 거래된 경우 해당 트리거에 대한 쌍에 대해 더 이상 거래하지 않음
나는 여전히 trigger2 trigger3 및 (trigger1은 다른 쌍으로) 거래하고 싶습니다.
어때서
구매 및 판매에 별도의 마법이 필요하지 않으며 OrderType()으로 쉽게 필터링할 수 있습니다.
도와주셔서 감사합니다
구매 및 판매에 별도의 마법이 필요하지 않으며 OrderType()으로 쉽게 필터링할 수 있습니다.
저는 RANGE의 매직 넘버를 사용하므로 거래에 다른 SL 방법을 사용할 수 있습니다.
예: MAGIC_NUMBER_BASE = 1234500
그런 다음 0-99의 '오프셋'을 사용하여 SL 유형별로 내 거래를 그룹화합니다. 그런 다음 다음과 같은 코드를 사용합니다.
if (OrderMagicNumber() < MY_MAGIC_LO || OrderMagicNumber() > MY_MAGIC_HI)
내 거래를 찾기 위해 (사실 그 코드는 내 거래를 제외하는 것입니다!)
Jon 이 함수는 고유 번호를 발행합니다.
감사합니다, 마침내 이 스레드를 다시 방문하게 되었고 이것을 시도하고 있습니다. 나는 샘플을 이해하지 못합니다. 왜 OrderSend > 0이고 다른 OrderSend를 수행합니까? 도와주세요!
나는 시퀀스 번호가 모든 주문과 함께 증가한다는 것과 댓글이나 매직 넘버에 할당할 수 있다는 것을 깨달았습니다. 가장 좋은 점은 MT4를 다시 시작한 후에도 시스템에 남아 있다는 것입니다.
그러나 나중에 어떻게 식별하고 비교합니까?
각 주문 세트가 배치되는 방법:
즉, 나는 페어로 거래하고, 1과 2를 주문하고 3과 4를 주문하는 식입니다....
주문 1 - 시퀀스 #1
주문 2 - 시퀀스 #2
주문 3 - 시퀀스 #3
주문 4 - 시퀀스 #4
주문 5 - 시퀀스 #5
주문 6 - 시퀀스 #6
이제 증가하는 고유한 시퀀스 번호가 있으므로
어떻게 선택하고 비교합니까?
선택하여 비교하고 싶습니다.
1 & 2 주문, 3 & 4 주문, 5 & 6 주문, 등등...
미리 감사드립니다!
... 위의 답변에서 계속됨
아니면 시퀀스 번호가 증가할 때를 제어할 수 있습니까?
즉, 각 주문 세트 후에? 2 주문 후처럼.
따라서 선택하고 비교할 때 동일한 시퀀스 번호를 가진 주문만 선택할 수 있습니다.
그것을 코딩하는 방법?
감사해요!
Array[][]에 저장
예시.
무역 1
TicketArray [1] [0] = Ticket0;
TicketArray [1] [1] = Ticket1;
무역 2
티켓어레이 [2] [0]
티켓어레이 [2] [1]
무역 3
티켓어레이 [3] [0]
티켓어레이 [3] [1]
... 등등