TICK이란 무엇입니까? - 페이지 2

 

좋아, 좋은 주제 !!!!

볼륨이란 무엇입니까? 틱 변경 횟수 또는 거래 횟수 또는 기간의 거래 자금 금액 ?

 

다시 말하려면:

내 기본 발견은 쌍에 대한 MarketInfo ()에 변경 사항이 있는 경우 "틱"이 수신된다는 것입니다.

.

"변경 사항을 찾을 수 없음"과 같은 예외가 있을 수 있지만 틱이 수신되었지만 매우 드뭅니다.

가격 변경 없이 수신된 틱은 드물지 않으며 해당 쌍에 대한 MarketInfo의 다른 변경 사항을 나타냅니다.

.

볼륨은 수신된 틱 수와 같습니다. 즉, start() 함수가 호출된 횟수이며, 구체적으로 거래 또는 Bid/Ask 변경이 아닙니다. MarketInfo()의 변경은 틱을 트리거하고 틱 수 = 볼륨입니다.

 
phy :

.

Volume은 수신된 틱 수, 즉 start() 함수가 호출된 횟수와 같습니다.


예, 하지만 이전 start() 가 아직 완료되지 않았기 때문에 일부 틱이 누락될 수 있습니다(start() 함수가 호출되지 않음).

신규 견적이 들어오면 첨부된 전문가 및 커스텀 인디케이터의 start() 함수가 실행됩니다. 이전 견적에서 시작된 start() 함수가 새 견적이 왔을 때 실행 중이었다면 전문가는 새 견적을 건너뜁니다 . 프로그램이 실행되는 동안 모든 새 견적 수입은 start() 함수의 현재 실행이 완료될 때까지 프로그램에서 건너뜁니다. 그 후 start() 함수는 새로운 견적이 연속적으로 들어올 때만 실행됩니다. 사용자 지정 표시기의 경우 현재 차트 기호 또는 기간이 들어오는 새 시세에 따라 독립적으로 변경된 후 재계산을 위해 start() 함수가 시작됩니다. 전문가 속성 창이 열려 있으면 start() 함수가 실행되지 않습니다. 후자는 전문가 실행 중에 열 수 없습니다.

 

Start() 함수를 사용하여 트리거하는 것이 아니라 무한 루프가 있는 스크립트를 사용하여 MarketInfo ()를 검사하고 있습니다.

실험이 예상치 못한 방향으로 흘러갔기 때문에 스크립트를 다시 작성하겠습니다.

.


//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+


     double oldBid , oldAsk , oldVolume , oldCheckSum , oldTickValue , oldSpread , oldMarginRequired ;
     int oldTime ;
     int tickValueChange ;
     int checkSumCount = - 2 ;
     double checkSum ;

int start ()
   {

   oldBid = Bid ;
   oldAsk = Ask ;
   oldVolume = Volume [ 0 ] ;
   oldTime = Time [ 0 ] ;
   oldCheckSum          = GetCheckSum () ;
   oldTickValue          = MarketInfo ( Symbol () , MODE_TICKVALUE ) ;
   oldSpread              = MarketInfo ( Symbol () , MODE_SPREAD ) ;  
   oldMarginRequired      = MarketInfo ( Symbol () , MODE_MARGINREQUIRED ) ;
   
   int bidChange , askChange , eitherChange , neitherChange , bothChange , tickCount , spreadChange , marginChange ;

     while ( ! IsStopped ()){

       RefreshRates () ;
       if ( oldVolume != Volume [ 0 ]) tickCount += 1 ;
       if ( oldBid != Bid && oldAsk == Ask ) bidChange += 1 ;
       if ( oldAsk != Ask && oldBid == Bid ) askChange += 1 ;   
       if ( oldBid != Bid && oldAsk != Ask ) bothChange += 1 ;
       if ( oldBid == Bid && oldAsk == Ask && oldVolume != Volume [ 0 ]){
           if       ( oldTickValue != MarketInfo ( Symbol () , MODE_TICKVALUE )) tickValueChange += 1 ;
           else if ( oldSpread != MarketInfo ( Symbol () , MODE_SPREAD )) spreadChange += 1 ;
           else if ( oldMarginRequired != MarketInfo ( Symbol () , MODE_MARGINREQUIRED )) marginChange += 1 ;
           else neitherChange += 1 ;
       }
       
       GetCheckSum () ;
       
       Comment ( " \n " +
                   " Bid Change              = " + bidChange + " \n " +
                   " Ask Change             = " + askChange + " \n " +
                   " Both Change            = " + bothChange + " \n " +
                   " MarketInfo Change  = " + checkSumCount + " \n " +
                       " TickValueChange     = " + tickValueChange + " \n " +
                       " Margin Change        = " + marginChange + " \n " +
                       " Spread Change        = " + spreadChange + " \n " +
                   " No Change              = " + neitherChange + " \n " +
                   //" Checksum           = " + checkSum + "\n" +
                   " Sum of above          = " + ( bidChange + askChange + bothChange + spreadChange + neitherChange + checkSumCount + tickValueChange ) + " \n " +
                   " Tick Volume            = " + tickCount ) ;
                   
       Sleep ( 16 ) ;
                   
         oldVolume = Volume [ 0 ] ;
         oldBid = Bid ;
         oldAsk = Ask ;
        
    
     }


   return ( 0 ) ;
   }

double      GetCheckSum (){


     checkSum =
         
   ( 100 * MarketInfo ( Symbol () , MODE_LOW )) +
   ( 101 * MarketInfo ( Symbol () , MODE_HIGH )) +
   //(102*MarketInfo(Symbol(),MODE_TIME)) +
   //(103*MarketInfo(Symbol(),MODE_BID)) +
   //(104*MarketInfo(Symbol(),MODE_ASK)) +
   ( 105 * MarketInfo ( Symbol () , MODE_POINT )) +
   ( 106 * MarketInfo ( Symbol () , MODE_DIGITS )) +
   //(107*MarketInfo(Symbol(),MODE_SPREAD)) +
   ( 108 * MarketInfo ( Symbol () , MODE_STOPLEVEL )) +
   ( 109 * MarketInfo ( Symbol () , MODE_LOTSIZE )) +
   //(110*MarketInfo(Symbol(),MODE_TICKVALUE)) +
   ( 111 * MarketInfo ( Symbol () , MODE_TICKSIZE )) +
   ( 112 * MarketInfo ( Symbol () , MODE_SWAPLONG )) +
   ( 113 * MarketInfo ( Symbol () , MODE_SWAPSHORT )) +
   ( 114 * MarketInfo ( Symbol () , MODE_STARTING )) +
   ( 115 * MarketInfo ( Symbol () , MODE_EXPIRATION )) +
   ( 116 * MarketInfo ( Symbol () , MODE_TRADEALLOWED )) +
   ( 117 * MarketInfo ( Symbol () , MODE_MINLOT )) +
   ( 118 * MarketInfo ( Symbol () , MODE_LOTSTEP )) +
   ( 119 * MarketInfo ( Symbol () , MODE_MAXLOT )) +
   ( 120 * MarketInfo ( Symbol () , MODE_SWAPTYPE )) +
   ( 121 * MarketInfo ( Symbol () , MODE_PROFITCALCMODE )) +
   ( 122 * MarketInfo ( Symbol () , MODE_MARGINCALCMODE )) +
   ( 123 * MarketInfo ( Symbol () , MODE_MARGININIT )) +
   ( 124 * MarketInfo ( Symbol () , MODE_MARGINMAINTENANCE )) +
   ( 125 * MarketInfo ( Symbol () , MODE_MARGINHEDGED )) +
   //(126*MarketInfo(Symbol(),MODE_MARGINREQUIRED)) +
   ( 127 * MarketInfo ( Symbol () , MODE_FREEZELEVEL )) ;

     if ( checkSum != oldCheckSum ) checkSumCount += 1 ;
    
     oldCheckSum = checkSum ;
    
     return ( checkSumCount ) ;
}
 

가격 변경 또는 가격 변경 없이 수신된 틱, 틱 수 = 볼륨.

그러나 클라이언트 MT는 일시적으로 몇 초 동안 net break와 같은 몇 가지 이유로 모든 Tick을 받지 못할 수 있습니다.

그런 다음 틱 수 = 볼륨은 서버의 횟수 또는 변경 시간입니다. 또는 브로커가 정의한 기간 동안 가격을 몇 번이나 변경하려고 합니다.

그렇습니까?

브로커가 시장에 참여하여 고객의 티드 포지션을 헤지하기 위해 거래량은 또한 브로커가 일정 기간 동안 가격을 변경하고자 하는 것으로 정의됩니다.

맙소사!

볼륨 데이터를 사용하는 방법?

 

Marketinfo()에 대한 질문입니다.

무한 루프에서 과도한 Marketinfo() 호출이 브로커에 의해 스팸 으로 간주됩니까?

스팸 으로 간주되지 않는 것은 무엇입니까?

얼마나 자주 Marketinfo()를 실행하고 브로커를 화나게 하지 않을 수 있습니까?

Marketinfo() 명령이 Brokers 캐시에서 가져오나요, 아니면 실제 requote인가요 ?

감사해요

 

MarketInfo () 호출은 딜러로 가지 않고 딜러로부터 이미 받은 가장 최근 값을 읽습니다.

대리점에 대한 호출은 완료하는 데 각각 약 100-300밀리초가 소요됩니다.

 // script
int start(){
  
   int startTime = GetTickCount();  
   for(int i = 0; i < 10000; i++){   
      int spread = MarketInfo(Symbol(), MODE_SPREAD);  
   }   
   int endTime = GetTickCount();   
   Print("Time to collect 10000 instances of data = " + (endTime -startTime) + " milliseconds");  
   
   startTime = GetTickCount();  
   OrderSend(Symbol(), OP_BUY, 1, Ask, 0, 0, 0 , "", 0, 0, CLR_NONE);
   endTime = GetTickCount();   
   Print("Time to send one order to Server = " + (endTime -startTime) + " milliseconds");  
   return(0);
}
 
2008.10.27 16:32:37 Test GBPJPY,M15: Time to send one order to Server = 531 milliseconds
2008.10.27 16:32:37 Test GBPJPY,M15: open #8556064 buy 1.00 GBPJPY at 144.77 ok
2008.10.27 16:32:37 Test GBPJPY,M15: Time to collect 10000 instances of data = 438 milliseconds
 
좋은 주제!!! 위로
 

Phy - 이 주제를 다시 열어서 죄송합니다 :-)

나는 당신이 진드기의 본질에 대해 믿는 것과 이익/위험 등을 계산하는 방법 사이에 불일치가 있다고 생각합니다(일부 이전 게시물을 읽은 결과).

즉, 예금 통화로 표시되는 쌍의 핍 값을 결정하기 위해 자체적으로 MarketInfo (Symbol(),MODE_TICKVALUE)를 사용합니다.

그러나 MT4의 틱에 대해 믿는 것이 정확하다면 틱 값은 틱 사이의 핍 수에 따라 변경될 수 있습니다.

다시 말해서, 가격이 갑자기 몇 핍 상승하면 MarketInfo에 대한 이전 호출을 통해 TICKSIZE와 TICKVALUE가 각각 0.0001과 7.16임을 알 수 있습니다. 그런 다음 다음 호출은 0.0002 및 14.32를 반환할 수 있습니다.

이 경우 항상 MarketInfo(Symbol(),MODE_TICKSIZE) 및 MarketInfo(Symbol(),MODE_TICKVALUE)를 모두 수익/위험 공식에 포함하고 MarketInfo(Symbol(),MODE_TICKVALUE) 자체를 고려하지 않습니다.

정확합니까?


CB

 
MODE_TICKVALUE 16 예금 통화의 틱 값.
MODE_TICKSIZE 17 견적 통화의 눈금 크기.

.

MBtrading에서 유로의 경우:

10000 MODE_LOTSIZE 기본 통화의 로트 크기.
0.1 MODE_TICKVALUE 예금 통화의 틱 값.
0.00001 MODE_TICKSIZE 견적 통화의 눈금 크기.

.

원하는 경우 위의 "틱"이라는 단어를 "핍"으로 바꾸세요.

.

이 브로커는 미니 로트를 표준 크기로 사용합니다 -- MODE_LOTSIZE

가격은 3/5자리 숫자를 사용합니다. -- MODE_TICKSIZE

해당 "틱" 중 하나의 값은 $0.10 -- MODE_TICKVALUE입니다.

.

GBPAUD의 경우:

.

10000 MODE_LOTSIZE 기본 통화의 로트 크기.
0.080262 MODE_TICKVALUE 예금 통화의 틱 값입니다.
0.00001 MODE_TICKSIZE 견적 통화의 눈금 크기.

.

한 로트에서 GBPAUD 단일 핍 이동은 $0.080262를 지불합니다.

.

주문의 가격 변동을 순간적으로 계산하는 아이디어는...

PositionValueChange = PriceChangeInPips * MarketInfo ( OrderSymbol(), MODE_TICKVALUE) * OrderLots();

.

MB Trading Futures , Inc .
MBTrading - Demo Server

MB Trading Futures , Inc .
MBT MetaTrader 4
D : \Program Files ( x86 ) \MetaTrader\MBT MetaTrader 4
/ reports / MarketInfo_MB Trading Futures , Inc . _ . txt
2009.07 . 15 16 : 47 : 49



Report for EURUSD

1.39775      MODE_LOW                  Low day price . 
1.41344      MODE_HIGH                High day price . 
2009.07 . 15 16 : 47 : 48      MODE_TIME                The last incoming tick time ( last known server time ) . 
1.41044      MODE_BID                 Last incoming bid price . For the current symbol , it is stored in the predefined variable Bid 
1.41054      MODE_ASK                 Last incoming ask price . For the current symbol , it is stored in the predefined variable Ask 
0.00001      MODE_POINT                Point size in the quote currency . For the current symbol , it is stored in the predefined variable Point 
5      MODE_DIGITS              Count of digits after decimal point in the symbol prices . For the current symbol , it is stored in the predefined variable Digits 
10      MODE_SPREAD              Spread value in points . 
0      MODE_STOPLEVEL           Stop level in points . 
10000      MODE_LOTSIZE             Lot size in the base currency . 
0.1      MODE_TICKVALUE           Tick value in the deposit currency . 
0.00001      MODE_TICKSIZE            Tick size in the quote currency . 
- 0.6      MODE_SWAPLONG            Swap of the long position . 
- 2.4      MODE_SWAPSHORT           Swap of the short position . 
0      MODE_STARTING            Market starting date ( usually used for futures ) . 
0      MODE_EXPIRATION          Market expiration date ( usually used for futures ) .
1      MODE_TRADEALLOWED        Trade is allowed for the symbol . 
0.1      MODE_MINLOT              Minimum permitted amount of a lot . 
0.1      MODE_LOTSTEP             Step for changing lots . 
10000      MODE_MAXLOT              Maximum permitted amount of a lot . 
2      MODE_SWAPTYPE            Swap calculation method . 0 - in points ; 1 - in the symbol base currency ; 2 - by interest ; 3 - in the margin currency .
0      MODE_PROFITCALCMODE      Profit calculation mode . 0 - Forex ; 1 - CFD ; 2 - Futures . 
0      MODE_MARGINCALCMODE      Margin calculation mode . 0 - Forex ; 1 - CFD ; 2 - Futures ; 3 - CFD for indices .
0      MODE_MARGININIT          Initial margin requirements for 1 lot . 
0      MODE_MARGINMAINTENANCE   Margin to maintain open positions calculated for 1 lot .
0      MODE_MARGINHEDGED        Hedged margin calculated for 1 lot . 
141.05      MODE_MARGINREQUIRED      Free margin required to open 1 lot for buying . 
0      MODE_FREEZELEVEL         Order freeze level in points . If the execution price lies within the range defined by the freeze level , the order cannot be modified , cancelled or closed . 

Report for GBPAUD
2.04     MODE_LOW                Low day price. 
2.06095     MODE_HIGH               High day price. 
2009.07.15 16:47:42     MODE_TIME               The last incoming tick time (last known server time). 
2.04538     MODE_BID                Last incoming bid price. For the current symbol, it is stored in the predefined variable Bid 
2.04588     MODE_ASK                Last incoming ask price. For the current symbol, it is stored in the predefined variable Ask 
0.00001     MODE_POINT              Point size in the quote currency. For the current symbol, it is stored in the predefined variable Point 
5     MODE_DIGITS             Count of digits after decimal point in the symbol prices. For the current symbol, it is stored in the predefined variable Digits 
50     MODE_SPREAD             Spread value in points. 
0     MODE_STOPLEVEL          Stop level in points. 
10000     MODE_LOTSIZE            Lot size in the base currency. 
0.080262     MODE_TICKVALUE          Tick value in the deposit currency. 
0.00001     MODE_TICKSIZE           Tick size in the quote currency. 
-1.47     MODE_SWAPLONG           Swap of the long position. 
-3.65     MODE_SWAPSHORT          Swap of the short position. 
0     MODE_STARTING           Market starting date (usually used for futures). 
0     MODE_EXPIRATION         Market expiration date (usually used for futures).
1     MODE_TRADEALLOWED       Trade is allowed for the symbol. 
0.1     MODE_MINLOT             Minimum permitted amount of a lot. 
0.1     MODE_LOTSTEP            Step for changing lots. 
10000     MODE_MAXLOT             Maximum permitted amount of a lot. 
2     MODE_SWAPTYPE           Swap calculation method. 0 - in points; 1 - in the symbol base currency; 2 - by interest; 3 - in the margin currency.
0     MODE_PROFITCALCMODE     Profit calculation mode. 0 - Forex; 1 - CFD; 2 - Futures. 
0     MODE_MARGINCALCMODE     Margin calculation mode. 0 - Forex; 1 - CFD; 2 - Futures; 3 - CFD for indices.
0     MODE_MARGININIT         Initial margin requirements for 1 lot. 
0     MODE_MARGINMAINTENANCE  Margin to maintain open positions calculated for 1 lot.
0     MODE_MARGINHEDGED       Hedged margin calculated for 1 lot. 
164.21     MODE_MARGINREQUIRED     Free margin required to open 1 lot for buying. 
0     MODE_FREEZELEVEL        Order freeze level in points. If the execution price lies within the range defined by the freeze level, the order cannot be modified, cancelled or closed.