Pip Başına Fiyat - sayfa 9

 
gordon :

Tanımım, bağlam dışında alıntı yapıldığında orijinal anlamını kaybeder. Açıklığa kavuşturmak gerekirse - MODE_TICKSIZE tanımındaki 'fiyat' kelimesi gerçek olası fiyat tekliflerini ifade ederken, Point tanımında herhangi bir fiyatı ifade eder.

- Gordon, benim tanımım da çok sıcak değil (Nokta = en düşük ondalık fiyat için çarpım faktörü) ve onaltılık benzetme çok topal... Ama burada bir kazanan olabilir...

mantık:
Broker'ın, MODE_LOTSIZE 100.000 birim kote para birimi ve MODE_TICKVALUE 10 birim kotasyon para birimi etrafında dönmesi için çiftler arasında Fiyat ilişkileri kurması gerekir. Yalnızca bu eşit karşılıklı ilişki koşuluyla, fiyat kendi aralarında kote edilebilir. Bunun forex fiyat oluşturmanın temeli olduğunu varsayıyorum.

Puan = MODE_LOTSIZE / İşaret değeri, belirtilen para biriminde. Örneğin:
GBPUSD 0.0001 = 100.000 / 10 USD
USDJPY 0.01 = 100.000 / 1.000 JPY <-- MathRound( MODE_TICKVALUE * kote edilen para biriminin en son Teklifi)
CHFJPY .... vb. siz veya herhangi biri onaylayabilirse harika olur.

Vadeli işlem sözleşmeleri hakkında konuşmaya başlayacaksak, tüm bahisler kapalı. Örneğin, FXPro'nun normale yakın biçimde #AAmy biçiminde vadeli işlem sözleşmeleri vardır; burada "benim" M0 gibi standart bir sona erme kodudur. EUR_JPY_fut kulağa tuhaf bir sentetik sözleşme gibi geliyor.

- Tamam Jjc... Geleceğin de farklı Fiyat ve TICK_VALUE binası olduğunu varsayıyorum. Yani bu kesinlikle forex olmayan tüm enstrümanları ekarte eder. Ön ekler ve ara düzeltmeler daha az olası kabul edilir.

- CB Yukarıdaki hesaplamayla ilgili görüşlerinizi duymak isterim. Şimdiye kadarki görüşünüz için teşekkür ederiz.

saygılarımla
kamera hücresi

 
cameofx :

- Gordon, benim tanımım da çok sıcak değil (Nokta = en düşük ondalık fiyat için çarpım faktörü) ve onaltılık benzetme çok topal... Ama burada bir kazanan olabilir...

mantık:
Broker'ın, MODE_LOTSIZE 100.000 birim kote para birimi ve MODE_TICKVALUE 10 birim kotasyon para birimi etrafında dönmesi için çiftler arasında Fiyat ilişkileri kurması gerekir. Yalnızca bu eşit karşılıklı ilişki koşuluyla, fiyat kendi aralarında kote edilebilir. Bunun forex fiyat oluşturmanın temeli olduğunu varsayıyorum.

Puan = MODE_LOTSIZE / İşaret değeri, belirtilen para biriminde. Örneğin:
GBPUSD 0.0001 = 100.000 / 10 USD
USDJPY 0.01 = 100.000 / 1.000 JPY <-- MathRound( MODE_TICKVALUE * kote edilen para biriminin en son Teklifi)
CHFJPY .... vb. siz veya herhangi biri onaylayabilirse harika olur.

- Tamam Jjc... Geleceğin de farklı Fiyat ve TICK_VALUE binası olduğunu varsayıyorum. Yani bu kesinlikle forex olmayan tüm enstrümanları ekarte eder. Ön ekler ve ara düzeltmeler daha az olası kabul edilir.

- CB Yukarıdaki hesaplamayla ilgili görüşlerinizi duymak isterim. Şimdiye kadarki görüşünüz için teşekkür ederiz.

saygılarımla
kamera hücresi

Rakamlar = 5 veya Rakamlar = 3 ise mantık değişir mi?
 

Sonunda gönderi bağlantınız var...

Would the logic change if Digits = 5 or Digits = 3?

Engcomp yok, mantığın değişmesi gerekmiyor. En azından ben bunu anlamaya çalışıyorum.

Birkaç şeyin temeline inmeye çalışıyorum, Yayınlar şu ana kadar: Point, MODE_TICKVALUE, MODE_TICKSIZE, Price. Sonunda onları sadece yeni bir ışık altında sunabilirim ama oradan faydalanabilirsem buna değecektir.

IMO, MODE_TICKVALUE'nin kote para birimine dönüştürülmesi çok önemlidir . Bu yüzden tartışma aşkına QUOTE_TICKVALUE diyeceğim. Bu arada, önceki denklem geriye doğru.

Puanın gerçekten olup olmadığını hesaplamak için: QUOTE_TICKVALUE (karşıt para biriminde TickValue) / MODE_LOTSIZE, buna sahibim. (Calc_Point'in Point ile eşleşmesi gerekir)

 string Sym = Symbol ();
double Calc_Point = QUOTE_TICKVALUE(Sym) / MarketInfo(Sym, MODE_LOTSIZE);
int QUOTE_TICKVALUE( string Sym)
{
   string quoted_currency_name = StringSubstr (Sym, 3 , 3 ); double TV, QTV = 0.0 ;
   if (MarketInfo( StringConcatenate ( "USD" , quoted_currency_name), MODE_LOTSIZE)) > 0 )
   {
     TV = MarketInfo(Sym, MODE_TICKVALUE);
     QTV = MathRound (TV * MarketInfo(Sym, MODE_BID));
     return (QTV);
   }
   else if ((MarketInfo( StringConcatenate (quoted_currency_name, "USD" ), MODE_LOTSIZE)) > 0 )
   {
     TV = MarketInfo(Sym, MODE_TICKVALUE);
     QTV = MathRound (TV * MarketInfo(Sym, MODE_BID));
     return (QTV);
   }
}
Not: USD biçiminde (örn. EURGBP) temel olarak döviz kurmuş olan çapraz çiftler için yukarıdakilerin biraz değiştirilmesi gerekecektir.

Yani herhangi bir zamanda, herhangi bir fiyat :

USDJPY, GBPJPY, AUDJPY, XXXJPY........................ QUOTE_TICKVALUE değerinde --> 1000 [JPY]
EURUSD, AUDUSD, GBPUSD, XXXUSD ........'nin QUOTE_TICKVALUE değeri --> 10 [USD]
EURCHF, USDCHF, XXXCHF....................... QUOTE_TICKVALUE değerine sahiptir --> MathPow(10, x) [CHF]

Kayan TICK_VALUE öğesinden QUOTE_TICKVALUE 'çıkarttığımın' altını çizmem gerekiyor. Bence bunun anlamı QUOTE_TICKVALUE komisyoncu tarafından önceden belirlenir ve daha da önemlisi: bunlar, kote edilen para birimi olarak hizmet eden her para birimi arasında paralel olarak tutarlı olacaktır. MODE_LOTSIZE = 100.000 ve USD'nin QUOTE_TICKVALUE = 10 olduğu sürece, teklif para birimi olarak hizmet eden diğer sembol bileşenlerinin de tutarlı olacağından emin olabiliriz (yani, diğer QUOTE_TICKVALUE'ları da 10'a bölmeden 10 USD'yi 1 USD'ye değiştiremezsiniz -- Bu, Valid_Point'imi genel olarak belirleyebileceğimiz yer olduğuna inanıyorum). Umarım bu açıktır...

(Hayatım boyunca) bu günlerde aynı anda net ve MT4'e sahip olamam (karmaşık ..). Yani birisi yardım edebilir veya doğrulayabilirse harika olur.

kamera hücresi

 

İhtiyacım olanı buldum, Valid_Point ve hatta daha fazlası. Genel olarak Point, TickValue, Ticksize, Symbol() ve fiyat hakkında daha derinlemesine bir anlayış. LEHayes bu konuyu başlattığından beri görüşlerini ve yorumlarını paylaşan herkese teşekkürler.

Saygılarımla
kamera hücresi

 

Dostum, sebep olduğum beyin fırtınasına bak. Umarım faydalı olmuştur. Konuyu takip edecek vaktim olmadı ama umarım inceleme fırsatı bulurum.

Tüm bu tartışma ve mükemmel çalışmadan sonra, aradığımız şeyi üretmek için bir tür standart fonksiyona sahip olduğumuz bir noktaya geldik mi? Bu soru bizi bir özete götürmek içindir.

 

Metaller veya çapraz para birimleri dışındaki diğer sembollerle ilgili yukarıdaki hesaplama ipuçlarını deneyimleyen var mı?

Sembolde bir Nokta hareketinin hesap para birimindeki fiyat değişiminin hesaplanmasıyla ilgilendiğim için bu konuyu buldum.

Temel teorim şuydu:

Pip başına fiyat = Sözleşme boyutu * Puan

Hesap para biriminde pip başına fiyat = Pip başına fiyat * Hesap Karşı Çapraz oranı,

nerede

Sözleşme boyutu = MarketInfo(Symbol(), MODE_LOTSIZE)

Nokta = Nokta = MarketInfo(Symbol(), MODE_POINT)

Hesap Karşı Çapraz oran, sembolün karşıt para biriminin hesabın para birimi cinsinden ifade edilen fiyatıdır (AAA'nın hesap para birimi ve CCC'nin sembolün karşı para birimi olduğu durumlarda CCCAAA teklif oranı).

Yukarıdakileri farklı broker demo hesaplarıyla (icm, insta, fxopen, fxopen ecn) Hesap Geçmişindeki gerçek 1.0 lot işlemlere karşı kontrol ettim. Ayrıca cloudbreaker'ın tickvalue hesaplama yöntemini de kontrol ettim.

Aşağıdakileri buldum:

- Bir sembolün bir Puan hareketinin fiyatı, farklı brokerlerle ve metaller söz konusu olduğunda hesaplamak kolay değildir

- cloudbreaker'ın tickvalue * point / ticksize formülü bile yanlış sonuçlara yol açabilir (insta - gümüş, icm - eurusd, fxopen - gümüş ve altın)

- icm durumunda - altın, hatta Sözleşme boyutu * Puan kötü sonuca yol açar (gerçek 5.0 yerine 0.5, komisyoncu veri hatası mı?)

Ayrıntılı sonuçları burada bulabilirsiniz: Pip başına fiyat .

Sonuç olarak, pip başına Fiyat hesaplamanın %100 güvenilir bir yöntemi olmadığı sonucuna varıyorum.

 
Yazdığınız bu küçük programı paylaştığınız için teşekkürler. Bu kadar kolay olduğuna inanamıyorum!! bana çok zaman kazandırdın :-)
engcomp :

Ekli, sorunuza cevap verebilecek geliştirdiğim küçük bir komut dosyasıdır.

Komut dosyalarının "harici" parametreleri olmadığından, bunları kodda değiştirmeniz ve yeniden derlemeniz gerekir.

Uzmanlar/komut dosyaları klasörünüze yükleyin, derleyin ve bir grafiğe ekleyin.

Nasıl gittiğini bana haber ver, Helmut

 
DE30 hakkındaki yorumları not edin
 double   PointValuePerLot( string pair= "" ){
     /* Value in account currency of a Point of Symbol.
     * In tester I had a sale: open=1.35883 close=1.35736 (0.0147)
     * gain$=97.32/6.62 lots/147 points=$0.10/point or $1.00/pip.
     * IBFX demo/mini       EURUSD TICKVALUE=0.1 MAXLOT=50 LOTSIZE=10,000
     * IBFX demo/standard   EURUSD TICKVALUE=1.0 MAXLOT=50 LOTSIZE=100,000
     *                                  $1.00/point or $10.0/pip.
     *
     * https://forum.mql4.com/33975 CB: MODE_TICKSIZE will usually return the
     * same value as MODE_POINT (or Point for the current symbol), however, an
     * example of where to use MODE_TICKSIZE would be as part of a ratio with
     * MODE_TICKVALUE when performing money management calculations which need
     * to take account of the pair and the account currency. The reason I use
     * this ratio is that although TV and TS may constantly be returned as
     * something like 7.00 and 0.0001 respectively, I've seen this
     * (intermittently) change to 14.00 and 0.0002 respectively (just example
     * tick values to illustrate).
     * https://forum.mql4.com/43064#515262 zzuegg reports for non-currency DE30:
     * MarketInfo(Symbol(),MODE_TICKSIZE) returns 0.5
     * MarketInfo(Symbol(),MODE_DIGITS) return 1
     * Point = 0.1
     * Prices to open must be a multiple of ticksize */
     if (pair == "" ) pair = Symbol ();
     return (   MarketInfo (pair, MODE_TICKVALUE)
           / MarketInfo (pair, MODE_TICKSIZE) ); // Not Point.
}
 
Forex dışı sembollerin risk yüzdesini hesaplamaya çalışıyorum, ancak çoğu forex dışı sembol çok farklı davrandığı için uzaktan bile güvenilir bir şey bulamadım. Doğru bir risk yüzdesi hesaplamak için forex dışı sembollerde doğru pip değerinin nasıl hesaplanacağına dair herhangi bir işaretçisi olan var mı?
 
Yukarıdakiler nasıl doğru ÇALIŞMAZ?