Pip Başına Fiyat - sayfa 6

 
jjc :
Gordon'un "neredeyse her zaman"ına bir açıklama ekleyerek, bunun doğru olmadığı bir forex enstrümanı hemen aklıma gelmiyor, ancak komisyoncular metal, endeks vb. (ve Nokta 0.01'dir). Bildiğim kadarıyla MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS))

jjc, Cevabınız için teşekkürler:

Sanırım bunun nedeni, hesaplama ve sayıları algılamada matematiksel kuralımız olarak ondalık sayı kullanmamız. Bunun yerine örneğin Hexadecimal kullanırsak, Point'in uygunluğunu bir ile sonlandırmazdık. Bir örnek, kaç metrenin 5 cm olduğunu dönüştürmek olabilir, bunu sadece yüzde birlik dönüştürme faktörü ile çarpardık. ( 5 cm * 0.01 --> 0.05 m ) -- tam 10 [cm birimi] sayma -- on kez. Ama bir Onaltılık kullanırsak. Modülü 4 olan tam bir 6 - 16 kez saymamız gerekirdi.

Yani bir Nokta ondalık bir dönüştürme faktörüdür. Eğer piyasa kuralı, örneğin GBPUSD'nin cari fiyat oranının 1.3535 olduğunu gösteriyorsa, bunun tek nedeni, biz/onlar, 1.3535 USD ile 1 GBP satın almanın 5. sıradaki ondalık dönüşüm değerini ticaret ekonomisi için önemsiz saymamızdandır. Ancak ticaret daha büyük (belki de yarda değerinde) ve sık olmalı. O zaman biz/onlar bunu fiyat oranının olması gereken en az önemli kuruşa kadar kovalardık. Örneğin 1.3535665 gibi.

Bu yüzden, siz eşitledikçe Noktanın her zaman = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS)) olacağına katılıyorum.

EDIT: Üzgünüm beyler, ilk taslak geçti. Göndermek için hala çok EKLENDİ. umarım bu daha iyidir...

 
1005phillip :

Ekli rar dosyasında mevcuttur. Kullanımla ilgili sorularınız olacağına eminim, ateş edin.

Phillip, sana ne kadar teşekkür etsem azdır! Bu çok harika! Bunu anlamak için biraz zamana ihtiyacım var. Ama ilk bakışta yorumların hepsi açık ve ben de excel dosyasını anlamakta sorun yaşamıyorum. Bu, cephaneliğime değerli bir katkı. Bu çalışmayı Philip topluluğuyla paylaşmanız çok cömert bir davranış. Tekrar teşekkürler!

Bu doğru. Ancak yüzde hatası, basitçe puan cinsinden spread'in satış fiyatına bölünmesidir (döviz çiftine bağlı olarak ~%0.02-%0.05)... bu sadece her kuruşun hesabını yapmak istiyorsanız önemlidir.

Bu çok ilginç!

Sorunuz şu anda yazıldığı için kolay cevap evet - USD'siz her çapraz kriterinizi karşılıyor. Ama sanırım farklı bir soru sormak istediniz - yani çapraz döviz çifti sunan ve aynı zamanda çapraz çiftin karşı para birimini ve hesabın para birimini içeren gerekli döviz çiftini sunmayan bir komisyoncuyla karşılaştım mı? mezhep?

Bu sorunun cevabı hayır ve bunun iyi bir nedeni var çünkü bir komisyoncu basitçe yapamaz. Bir komisyoncunun bunu yapamamasının nedeni, burada ayrıntıları verilen denklemlerdeki aynı temel fiyat bağlantılarına bağlı olmalarıdır... başka bir deyişle, çapraz döviz pozisyonunuzu hesaplamak ve raporlamak için aynı fiyat bilgisine erişmeleri gerekir. değerlendirmeler.

Örneğin diyelim ki Euro cinsinden bir hesabınız var ve 1 lot GBPUSD satın alıyorsunuz. GBPUSD'deki karşı para birimi USD'dir. Dolayısıyla GBPUSD pozisyonunuzdaki kar/zararınızı hesaplamak için komisyoncunuzun (ve sizin) EURUSD fiyatını da bilmeniz gerekir. (EUR, hesabınızın para birimidir, USD, pozisyon açtığınız çapraz çiftin karşı para birimidir)

Eğer komisyoncu teklif edilen bir çift olarak EURUSD'ye sahip değilse, MT4 terminali pozisyonunuzun değişken kar/zararını tik bazında hesaplayamazdı. Bu nedenle, hesabınızın para birimini içeren birincil döviz çiftini teklif etmeden size çapraz çift (hesabınızın değerine göre) ticaret yapma olanağı sunan bir komisyoncu asla bulamazsınız.

Evet, soruma ilişkin son yorumunuz doğru olanıdır. Benim açımdan kötü ifade. Bu, döviz çiftlerinin özelliklerine biraz daha aydınlanma katacaktır. Teşekkür ederim...

kamera hücresi

 
gordon :
"Bir 'Puan' (MODE_POINT) olası en küçük fiyat değişikliğidir" , bu nedenle açıkça 1 ile bitmesi gerekir.

Evet, çok saçma bir açıklama. Ama ben sadece Point'in TICK_SIZE ile karakteristik olarak farklı olacağının altını çizmeye çalışıyordum çünkü TICK_SIZE her zaman 1 ile bitmez. Broker, değerini dalgalanmanın / ekonomik değerine uygun gördüğü şekilde yeniden boyutlandırır.

"Daha önce de söylediğim gibi, belgelerde " Puan olarak kene boyutu " iddiasında bulunulmasına rağmen, bu açıkça yanlış. Fiyat açısından da öyle ."

Kalın Gordon ile yazılan kısmı anlamıyorum... Eğer açıklamak istersen...

"MODE_TICKVALUE : Karşı para biriminin taban oranına dönüştürülmesindeki mevcut değeri."

Bu tanım net değil... (belki İngilizce ana diliniz değil mi?).

Evet, bu benim ikinci dilim. Bu konuda geçmişte veya gelecekte saçma sapan gevezelik dizeleri üretmeye gelince bu bir engel teşkil etmese de :))))

Bir sonraki yazıda açıklamaya çalışacağım. Zamanım kısıtlı olduğu için özür dilerim. Her zamanki gibi çok teşekkürler Gordon!
 
cameofx :
"Daha önce de söylediğim gibi, belgelerde " Puan olarak kene boyutu " iddiasında bulunulmasına rağmen, bu açıkça yanlış. Fiyat açısından da öyle ."

Kalın Gordon ile yazılan kısmı anlamıyorum... Eğer açıklamak istersen...

Diyelim ki Nokta = 0.00001. MODE_TICKSIZE noktalarda olsaydı, örneğin MarketInfo(Symbol(),MODE_TICKSIZE) dönüş 1 olurdu ve bu 1*Puan=1*0.00001=0.00001 olarak yorumlanırdı. Ancak MarketInfo(Symbol(),MODE_TICKSIZE) bunu döndürmez, (örneğin) 0.00001 döndürür, dolayısıyla Puanı değil fiyatı temsil eden bir değer döndürür. Belgeler " Puan cinsinden kene boyutu " iddiasındadır, bu açıkça yanlıştır (muhtemelen Rusça'dan çeviride bir hata).
 
SDC :

Bu konuyu çelişkili bilgilerle dolu olmadan önce okudum.

BarrowBoy - teklif ve/veya teklifte bir değişiklik

Rosh - "yeni fiyat" etkinliği

kminler - her tik kapalı bir ticareti temsil eder

zımba - bir kene bir piptir

Tikler hakkındaki diğer konuları ve tartışmaları okuduktan sonra, bir tik'in belirli bir değeri olmadığı sonucuna vardım, çünkü tüm içerdiği yeni bir teklif ve son tikten 1 pip farklı olabilen, farklı pip farklı veya birkaç tane olabilen yeni bir taleptir. pip farkı vardır, bu nedenle kene kendi içinde fiyat farkı taşımaz, sadece yeni bir fiyat taşır.

Ama şimdi bir pipin değerini nasıl hesaplayacağımı araştırıyordum MarketInfo MODE_TICKVALUE statik bir set değeri gibi görünüyor, bu kendi içinde çoğu kişinin bir tick hakkında söyledikleriyle çelişiyor, sadece fiyattaki bir değişikliği ifade ediyor , belirli bir miktar yok, öyleyse MODE_TICKVALUE gibi bir şey nasıl olabilir, çoğu insan yanlış olmadıkça ve 1 tik aslında 1 pip'e eşit belirli bir değere sahip olmadıkça bir anlam ifade etmez, benim sorunum uygun belgelerin olmamasıdır nasıl Neyin doğru neyin yanlış olduğunu bulması gereken forum konuları, çoğu durumda önemli olmayan, ancak bu tür kabataslaklara dayalı bir program yazmaya çalışırken, gerçeklerden ziyade çoğu görüş veya varsayıma dayanan bazı bilgiler içerir. ve çelişkili bilgiler hayatı çok zorlaştırıyor


Evet, bu benim de endişem.

Araştırmamı sürdürmek için buraya geri dönüyorum, yarın bunu tekrar okumam gerekecek. Zaten çok az uyku ve bilgisayar başında çok fazla zaman geçirmekten dolayı okuma güçlüğü çekiyorum.

 

Vay canına, tüm okumaları burada yakaladım. Gerçekten çok yorgunum ve hala sorunu nasıl çözeceğimden emin değilim.

Yani, basitçe söyleyeceğim, şimdi endişelerimi anlıyor gibi görünüyoruz, teklif hala geçerli, fiyat hareketinin değerini en küçük değerlerden 1'inden diğerine (diğer bir deyişle x.0001'den) doğru bir şekilde hesaplamak için bir yöntem istiyorum. x.0002)'ye kadar, EA hangi sembolde olursa olsun, ilgili kaldıracı da hesaplamalıdır. (yani, 100.000 sözleşme ve 400:1 kaldıraçla, EURUSD'nin 10'a ya da elinizde ne varsa ona mal olmasını bekleyebilirim.


Karşılığında, pip değerini almak ve 2 set para yönetimi işlevi oluşturmak için işlevinizi kullanarak uygulayabileceğim 2 manuel ticaret gurusu Para Yönetimi formülüm var. Başka yöntemler de araştırıyorum. Aklımdaki fikir, çeşitli gurulara dayalı seçenekler içeren bir para yöneticisi paketi oluşturmak ve kullanıcı kendisine uygun olanı seçebilir.

Bu yüzden biri bana pip değerini verebilecek bir fonksiyon bulabilirse gerçekten minnettar olurum. Dürüst olmak gerekirse, bunun MT4'te zaten standart bir işlev olmamasına şaşırdım.

Puan, diyelim ki 1.1234 - 1.1233'ün değeriyse ve bu sonucun parasal değerini bulabilirseniz, aradığım şey bu. Bana göre buradaki nokta terimi, pip terimi kadar iyidir.

Kaldıraç değerini değiştirebilmek istiyorum, bu yüzden bu bir parametre olmalıdır.

Tamam, şimdi yaklaşık 53 saattir ayaktayım, bu yüzden biraz dinlenmem gerekiyor. Yeni sürümlerimiz için çekiçle uğraşmakla meşguldük ve tamamen tükendim.

 
LEHayes :

Yani, basitçe söyleyeceğim, şimdi endişelerimi anlıyor gibi görünüyoruz, teklif hala geçerli, fiyat hareketinin değerini en küçük değerlerden 1'inden diğerine (diğer bir deyişle x.0001'den) doğru bir şekilde hesaplamak için bir yöntem istiyorum. x.0002) EA'nın hangi sembolde olabileceğine göre

Eh, 6 sayfada anlatılanları kısmen özetlemek gerekirse, fiyattaki mümkün olan en küçük hareket MODE_TICKSIZE tarafından, lot başına nakit değeri ise MODE_TICKVALUE tarafından verilmektedir. Üç uyarı ile:

  • MODE_TICKSIZE ve MODE_TICKVALUE, kullanılan ondalık basamak sayısına bağlı olarak aracılar arasında değişebilir. Örneğin, Alpari (5DP) EURUSD'de TS'yi 0.00001 ve TV'yi 1.00 olarak bildiriyor. FXDD, TS'yi 0.0001 ve TV'yi buna uygun olarak 10.00 olarak rapor eder. MODE_TICKSIZE'ı aracılar arasında standartlaştırma girişimleri, örneğin https://www.mql5.com/en/forum/124692'de tartışıldığı gibi ayrı bir konudur.
  • MODE_TICKVALUE, sembolün karşıt para birimi, yatırdığınız para biriminden farklıysa (örneğin, bir USD hesabında EURUSD'nin sabit bir TICKVALUE'si vardır, ancak USDJPY dalgalıysa) zamanla değişir.
  • Cloudbreaker, değişen TICKSIZE örneklerini günlüğe kaydetti (örneğin, TICKSIZE, TICKVALUE'da karşılık gelen varyasyonla, art arda çağrılarda 0,0002 ve 0,0001 olarak bildiriliyor). Bunu 15 farklı brokerde şahsen hiç görmedim.
 
gordon :
Diyelim ki Nokta = 0.00001. MODE_TICKSIZE noktalar içindeyse, örneğin MarketInfo(Symbol(),MODE_TICKSIZE) 1 sonucunu verebiliriz , bu 1*Point=1*0.00001=0.00001 olarak yorumlanır. Ancak bu, MarketInfo(Symbol(),MODE_TICKSIZE) öğesinin döndürdüğü şey değildir, (örneğin) 0.00001 döndürür, dolayısıyla Puanı değil fiyatı temsil eden bir değer döndürür. Bu açıkça belgelerde bir hatadır (muhtemelen Rusça'dan çeviride bir hata).
Farklı olmak için yalvarıyorum Gordon, MODE_TICKSIZE puan olarak -- Kesin olmak gerekirse puan(lar). MODE_TICKSIZE her zaman Noktanın X katı olacaktır. 1, 2, 5, 35 vb. Nokta IMHO, bizi fiyat oranının son önemli ondalık basamağına götüren bir tür çift dönüştürme faktörüdür. Eğer bir komisyoncu müşteriye teklif edilecek bir pazarlık olarak 6. ondalık basamağı sunmayı uygun görürse, o zaman Puanı 0.000001 ve Basamak = 6 yapacaktır.
Bu konudaki rakamlar tam sayı olarak Noktayı temsil edecektir.
 
LEHayes :

Yani, basitçe söyleyeceğim, şimdi endişelerimi anlıyor gibi görünüyoruz, teklif hala geçerli, fiyat hareketinin değerini en küçük değerlerden 1'inden diğerine (diğer bir deyişle x.0001'den) doğru bir şekilde hesaplamak için bir yöntem istiyorum. x.0002)'ye kadar, EA hangi sembolde olursa olsun, ilgili kaldıracı da hesaplamalıdır. (yani, 100.000 sözleşme ve 400:1 kaldıraçla, EURUSD'nin 10'a ya da elinizde ne varsa ona mal olmasını bekleyebilirim.

Sayfa 5'te eklediğim rar dosyasındaki içerme dosyalarını kontrol edin... sorunuzu yanlış anlamadığım sürece ikisini de yapıyor.

edit: özellikle aşağıdaki kod parçaları.

"Para Birimi Sembolünü Analiz Et 2010.06.07.mqh" başlıklı içerme dosyasını kullanarak onay değeri için:

1. int SymbolType() işlevini çağırın

 int CalculatedSymbolType=SymbolType();

2. CounterPairForCross() işlevini çağırın

 string CalculatedCounterPairForCross=CounterPairForCross();


3. sonra, sembolün geçerli piyasa fiyatındaki onay değerini hesaplarsınız:

   switch (CalculatedSymbolType) // Determine the tickvalue for the financial instrument based on the instrument's SymbolType (major, cross, etc)
      {
       case 1    :   Print ( "Calculated TICKVALUE = " ,DoubleToStr(MarketInfo( Symbol (),MODE_POINT)*MarketInfo( Symbol (),MODE_LOTSIZE)/MarketInfo( Symbol (),MODE_BID), 6 ), " (Tick value in the deposit currency - base)" ); break ;
       case 2    :   Print ( "Calculated TICKVALUE = " ,DoubleToStr(MarketInfo( Symbol (),MODE_POINT)*MarketInfo( Symbol (),MODE_LOTSIZE), 6 ), " (Tick value in the deposit currency - counter)" ); break ;
       case 3    :   Print ( "Calculated TICKVALUE = " ,DoubleToStr(MarketInfo( Symbol (),MODE_POINT)*MarketInfo( Symbol (),MODE_LOTSIZE)/MarketInfo(CalculatedCounterPairForCross,MODE_BID), 6 ), " (Tick value in the deposit currency - " ,AccountCurrency(), " is Base to Counter)" ); break ;
       case 4    :   Print ( "Calculated TICKVALUE = " ,DoubleToStr(MarketInfo( Symbol (),MODE_POINT)*MarketInfo( Symbol (),MODE_LOTSIZE)/MarketInfo(CalculatedCounterPairForCross,MODE_BID), 6 ), " (Tick value in the deposit currency - " ,AccountCurrency(), " is Base to Counter)" ); break ;
       case 5    :   Print ( "Calculated TICKVALUE = " ,DoubleToStr(MarketInfo(CalculatedCounterPairForCross,MODE_BID)*MarketInfo( Symbol (),MODE_POINT)*MarketInfo( Symbol (),MODE_LOTSIZE), 6 ), " (Tick value in the deposit currency - " ,AccountCurrency(), " is Counter to Counter)" ); break ;
       default   :   Print ( "Error encountered in the SWITCH routine for calculating tickvalue of financial instrument " , Symbol ()); // The expression did not generate a case value
      }


"Para Birimi Sembolünü Analiz Et 2010.06.07.mqh" başlıklı içerme dosyasını kullanarak kaldıraç için:

1. int SymbolType() işlevini çağırın
 int CalculatedSymbolType=SymbolType();

2. BasePairForCross() işlevini çağırın

 string CalculatedBasePairForCross=BasePairForCross();


3. sonra, SymbolLeverage()'ı arayarak sembol için geçerli piyasa fiyatından sembole özgü kaldıracı hesaplarsınız:

 int    CalculatedLeverage=SymbolLeverage();   // Leverage for USDJPY is set to 100:1
Print ( "Leverage for " , Symbol (), " is set at " ,CalculatedLeverage, ":1" );
 
cameofx :
Farklı olmak için yalvarıyorum Gordon, MODE_TICKSIZE puan olarak -- Kesin olmak gerekirse puan(lar). MODE_TICKSIZE her zaman Noktanın X katı olacaktır. 1, 2, 5, 35 vb. [...]
Bu bir anlambilim meselesi gibi görünüyor... Genel kabul, bir 'değer x'tedir' dediğimizde, x'in kullanılan 'birim' olduğunu kastettiğimizi belirtir. Bu durumda Point, kullanılan birim değildir , bu nedenle MODE_TICKSIZE, Points içinde değildir . Bunun Point'in katı olduğu konusunda hemfikirim, ancak bu, Point'in olası en küçük fiyat değişikliği olmasından dolayıdır, bu nedenle tanım gereği, Point'in bir katı olmalıdır.
Neden: