Benim temel bulgum, eğer çift için MarketInfo'da () bir değişiklik olursa, bir "tik" alınır.
.
"Değişiklik bulunamadı" gibi istisnalar olabilir, ancak bir onay işareti alındı, ancak bu çok nadirdir.
Fiyat değişikliği olmadan alınan keneler nadir değildir ve çift için MarketInfo'da başka bir değişikliğe işaret eder.
.
Hacim, alınan onayların sayısına eşittir, yani start() işlevinin çağrılma sayısıdır, özel olarak işlemler veya Teklif/Soruşturma değişiklikleri değildir. MarketInfo()'daki değişiklik bir onay işaretini tetikler ve onay sayısı = hacim.
Yeni teklifler geldiğinde, ekteki uzmanların start() işlevi ve özel göstergeler yürütülecektir. Yeni bir fiyat teklifi geldiğinde önceki alıntıda başlatılan start() işlevi çalışıyorsa, yeni alıntı uzman tarafından atlanır . Program yürütülürken tüm yeni kotasyon gelirleri, start() işlevinin mevcut yürütmesi tamamlanana kadar program tarafından atlanır. Bundan sonra, start() işlevi yalnızca art arda yeni bir teklif geldiğinde çalıştırılacaktır. Özel göstergeler için, gelen yeni fiyat tekliflerinde mevcut grafik sembolü veya zaman çerçevesi bağımsız olarak değiştirildikten sonra yeniden hesaplama için start() işlevi başlatılacaktır. Uzman özellikleri penceresi açıkken start() işlevi çalıştırılmayacaktır. İkincisi, uzman uygulaması sırasında açılamaz.
Ancak Müşteri MT'si, geçici olarak bazı saniyelerde net kesinti gibi bazı nedenlerden dolayı TÜM Onayları almamış olabilir.
sonra kene sayısı = hacim, sunucudaki zamanları sayar veya değiştirir. veya komisyoncu tarafından tanımlanan bir dönemde fiyatını kaç kez değiştirmek ister.
Bu doğru mu ?
Bir komisyoncu için, müşterilerin geçici pozisyonlarından korunmak için piyasada yer alması için, Hacim, komisyoncu tarafından bir dönemde ne kadar çok kez fiyatını değiştirmek istediği de tanımlanır.
MarketInfo () aramaları Bayiye gitmez, bayiden alınan en son değerleri okur.
Bayiye yapılan aramaların her birinin tamamlanması için yaklaşık 100-300 milisaniye gerekir.
// 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
Bir kenenin doğası hakkında inandıklarınız ile kar/risk vb. hesaplama yönteminiz arasında bir uyumsuzluk olduğunu düşünüyorum (önceki bazı yazıları okumaktan).
Yani, mevduat para birimi cinsinden ifade edilen çiftin pip değerini belirlemek için MarketInfo'yu (Symbol(),MODE_TICKVALUE) tek başına kullanırsınız.
Ancak, MT4'teki tikler hakkında inandığınız şey doğruysa, tik değeri, tikler arasındaki tırtıl sayısının bir faktörü kadar değişebilir.
Başka bir deyişle, fiyat aniden birkaç pip atlarsa, MarketInfo'ya önceden yapılan bir çağrı, TICKSIZE ve TICKVALUE'nin sırasıyla 0.0001 ve 7.16 olduğunu ortaya çıkarabilir. Sonra bir sonraki çağrı 0.0002 ve 14.32'ye dönebilir.
Bu durumda, hem MarketInfo(Symbol(),MODE_TICKSIZE) hem de MarketInfo(Symbol(),MODE_TICKVALUE) her zaman kâr/risk formüllerinize dahil edersiniz ve asla MarketInfo(Symbol(),MODE_TICKVALUE) tek başına olmaz.
10000 MODE_LOTSIZE Temel para biriminde parti boyutu. 0.1 MODE_TICKVALUE Mevduat para birimindeki değeri işaretleyin. 0.00001 MODE_TICKSIZE Karşıt para biriminde onay boyutu.
.
İsterseniz yukarıdaki "kene" kelimesini "pip" ile değiştirin.
.
Bu komisyoncu standart boyut olarak mini lot kullanır -- MODE_LOTSIZE
Fiyat için 3/5 basamak kullanıyorlar -- MODE_TICKSIZE
Bu "tiklerden" birinin değeri 0,10 ABD dolarıdır -- MODE_TICKVALUE
.
GBPAUD için:
.
10000 MODE_LOTSIZE Temel para biriminde parti boyutu. 0.080262 MODE_TICKVALUE Mevduat para birimindeki değeri işaretleyin. 0.00001 MODE_TICKSIZE Karşıt para biriminde onay boyutu.
.
Bir lotta GBPAUD tek pip hareketi 0,080262 dolar ödüyor
.
Siparişinizin fiyat değişimini bir andan diğerine hesaplama fikriniz...
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.1516:47:49
Report for EURUSD
1.39775MODE_LOWLow day price .1.41344MODE_HIGHHigh day price .2009.07.1516:47:48MODE_TIME The last incoming tick time ( last known server time ).1.41044MODE_BID Last incoming bid price . For the current symbol , it is stored in the predefined variable Bid1.41054MODE_ASK Last incoming ask price . For the current symbol , it is stored in the predefined variable Ask0.00001MODE_POINTPoint size in the quote currency . For the current symbol , it is stored in the predefined variable Point5MODE_DIGITS Count of digits after decimal point in the symbol prices . For the current symbol , it is stored in the predefined variable Digits10MODE_SPREAD Spread value in points .0MODE_STOPLEVEL Stop level in points .10000MODE_LOTSIZE Lot size in the base currency .0.1MODE_TICKVALUE Tick value in the deposit currency .0.00001MODE_TICKSIZE Tick size in the quote currency .-0.6MODE_SWAPLONG Swap of the long position .-2.4MODE_SWAPSHORT Swap of the short position .0MODE_STARTING Market starting date ( usually used for futures ).0MODE_EXPIRATION Market expiration date ( usually used for futures ).1MODE_TRADEALLOWED Trade is allowed for the symbol .0.1MODE_MINLOT Minimum permitted amount of a lot .0.1MODE_LOTSTEP Step for changing lots .10000MODE_MAXLOT Maximum permitted amount of a lot .2MODE_SWAPTYPE Swap calculation method .0- in points ;1- in the symbol base currency ;2- by interest ;3- in the margin currency .0MODE_PROFITCALCMODE Profit calculation mode .0- Forex ;1- CFD ;2- Futures .0MODE_MARGINCALCMODE Margin calculation mode .0- Forex ;1- CFD ;2- Futures ;3- CFD for indices .0MODE_MARGININIT Initial margin requirements for1 lot .0MODE_MARGINMAINTENANCE Margin to maintain open positions calculated for1 lot .0MODE_MARGINHEDGED Hedged margin calculated for1 lot .141.05MODE_MARGINREQUIRED Free margin required to open 1 lot for buying .0MODE_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.
Tamam, Harika konu !!!!
o zaman Hacim Nedir? tik değişim zamanlarının sayısı mı, yoksa işlem zamanlarının sayısı mı veya bir dönemdeki ticaret fonu miktarı mı?
Yeniden belirtmek için:
Benim temel bulgum, eğer çift için MarketInfo'da () bir değişiklik olursa, bir "tik" alınır.
.
"Değişiklik bulunamadı" gibi istisnalar olabilir, ancak bir onay işareti alındı, ancak bu çok nadirdir.
Fiyat değişikliği olmadan alınan keneler nadir değildir ve çift için MarketInfo'da başka bir değişikliğe işaret eder.
.
Hacim, alınan onayların sayısına eşittir, yani start() işlevinin çağrılma sayısıdır, özel olarak işlemler veya Teklif/Soruşturma değişiklikleri değildir. MarketInfo()'daki değişiklik bir onay işaretini tetikler ve onay sayısı = hacim.
.
Hacim, alınan onayların sayısına eşittir, yani start() işlevinin çağrılma sayısı.
Evet, ancak önceki start() hala tamamlanmadığından bazı işaretler kaçırılabilir (start() işlevi çağrılmadı).
Yeni teklifler geldiğinde, ekteki uzmanların start() işlevi ve özel göstergeler yürütülecektir. Yeni bir fiyat teklifi geldiğinde önceki alıntıda başlatılan start() işlevi çalışıyorsa, yeni alıntı uzman tarafından atlanır . Program yürütülürken tüm yeni kotasyon gelirleri, start() işlevinin mevcut yürütmesi tamamlanana kadar program tarafından atlanır. Bundan sonra, start() işlevi yalnızca art arda yeni bir teklif geldiğinde çalıştırılacaktır. Özel göstergeler için, gelen yeni fiyat tekliflerinde mevcut grafik sembolü veya zaman çerçevesi bağımsız olarak değiştirildikten sonra yeniden hesaplama için start() işlevi başlatılacaktır. Uzman özellikleri penceresi açıkken start() işlevi çalıştırılmayacaktır. İkincisi, uzman uygulaması sırasında açılamaz.
Tetiklemek için Start() işlevini kullanmıyorum, MarketInfo'yu () incelemek için sonsuz döngülü bir komut dosyası kullanıyorum.
Deney beklenmedik bir yöne gittiği için senaryoyu yeniden yazacağım.
.
Fiyat değişikliği ile veya fiyat değişikliği olmadan alınan keneler, tik sayısı = hacim.
Ancak Müşteri MT'si, geçici olarak bazı saniyelerde net kesinti gibi bazı nedenlerden dolayı TÜM Onayları almamış olabilir.
sonra kene sayısı = hacim, sunucudaki zamanları sayar veya değiştirir. veya komisyoncu tarafından tanımlanan bir dönemde fiyatını kaç kez değiştirmek ister.
Bu doğru mu ?
Bir komisyoncu için, müşterilerin geçici pozisyonlarından korunmak için piyasada yer alması için, Hacim, komisyoncu tarafından bir dönemde ne kadar çok kez fiyatını değiştirmek istediği de tanımlanır.
Tanrım !
Hacim verileri nasıl kullanılır?
Marketinfo() ile ilgili sorular.
Sonsuz bir döngüdeki aşırı Marketinfo() çağrıları Aracı tarafından spam olarak kabul edilecek mi?
Neler spam olarak kabul edilmez?
Marketinfo()'yu ne sıklıkla çalıştırabilir ve Broker'ı üzmeyebilirsiniz?
Marketinfo() komutu Aracıların önbelleğinden mi alıyor, yoksa gerçek bir alıntı mı?
teşekkürler
MarketInfo () aramaları Bayiye gitmez, bayiden alınan en son değerleri okur.
Bayiye yapılan aramaların her birinin tamamlanması için yaklaşık 100-300 milisaniye gerekir.
// 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); }Phy - bu konuyu tekrar açtığım için üzgünüm :-)
Bir kenenin doğası hakkında inandıklarınız ile kar/risk vb. hesaplama yönteminiz arasında bir uyumsuzluk olduğunu düşünüyorum (önceki bazı yazıları okumaktan).
Yani, mevduat para birimi cinsinden ifade edilen çiftin pip değerini belirlemek için MarketInfo'yu (Symbol(),MODE_TICKVALUE) tek başına kullanırsınız.
Ancak, MT4'teki tikler hakkında inandığınız şey doğruysa, tik değeri, tikler arasındaki tırtıl sayısının bir faktörü kadar değişebilir.
Başka bir deyişle, fiyat aniden birkaç pip atlarsa, MarketInfo'ya önceden yapılan bir çağrı, TICKSIZE ve TICKVALUE'nin sırasıyla 0.0001 ve 7.16 olduğunu ortaya çıkarabilir. Sonra bir sonraki çağrı 0.0002 ve 14.32'ye dönebilir.
Bu durumda, hem MarketInfo(Symbol(),MODE_TICKSIZE) hem de MarketInfo(Symbol(),MODE_TICKVALUE) her zaman kâr/risk formüllerinize dahil edersiniz ve asla MarketInfo(Symbol(),MODE_TICKVALUE) tek başına olmaz.
Bu doğru mu?
CB
.
MBTrading'de Euro için:
10000 MODE_LOTSIZE Temel para biriminde parti boyutu.
0.1 MODE_TICKVALUE Mevduat para birimindeki değeri işaretleyin.
0.00001 MODE_TICKSIZE Karşıt para biriminde onay boyutu.
.
İsterseniz yukarıdaki "kene" kelimesini "pip" ile değiştirin.
.
Bu komisyoncu standart boyut olarak mini lot kullanır -- MODE_LOTSIZE
Fiyat için 3/5 basamak kullanıyorlar -- MODE_TICKSIZE
Bu "tiklerden" birinin değeri 0,10 ABD dolarıdır -- MODE_TICKVALUE
.
GBPAUD için:
.
10000 MODE_LOTSIZE Temel para biriminde parti boyutu.
0.080262 MODE_TICKVALUE Mevduat para birimindeki değeri işaretleyin.
0.00001 MODE_TICKSIZE Karşıt para biriminde onay boyutu.
.
Bir lotta GBPAUD tek pip hareketi 0,080262 dolar ödüyor
.
Siparişinizin fiyat değişimini bir andan diğerine hesaplama fikriniz...
PositionValueChange = PriceChangeInPips * MarketInfo ( OrderSymbol(), MODE_TICKVALUE) * OrderLots();
.