Pip Başına Fiyat - sayfa 10

 

En kolay yol, MT4'te sizin için hesaplamayı yapan bir elektronik bahis komisyoncusu kullanmaktır, ticaret biletinizdeki hacim fiyatı lot olarak değil, Pound ve pencedir, örneğin pip başına 4,20 £ (veya istediğiniz para birimi) Bu, doğru ticaret boyutlandırmasını sağlar Çok basit.

http://www.gkfx.co.uk/spreadbetting-on-MetaTrader4 kullanıyorum

 
LEHayes :

Doğru yolda olup olmadığımdan emin değilim, ama şimdiye kadar bir araya getirdim.

Başka bir web sitesinden hesaplama şöyle bir şeydi:

(.0001/{mevcut çift fiyatı})*{sözleşme boyutu, yani 100.000; 10.000, vb} = {bir değer} * {USD fiyatı} = Pip Başına Fiyat

Bu çıkarmadan açıklanmıştır:

Forex pip değerini hesaplama formülü, bir pip alıp döviz çifti değerinin fiyatına bölmek ve ardından 10000 olan bir birim ile çarpmaktır. Daha sonra onu USD'ye çevirmeniz gerekir, böylece cari ile çarparsınız. fiyat. Örneğin USDCAD Kullanımı

(.0001/1.2148) X 10000 = .8232 X 1.2148 = 1,00 ABD doları

Her zaman olacaksın herhangi bir döviz çiftinde pip değerinin her 10000 para birimi için her zaman 1,00$ olduğunu görün. Bu değerin çok düşük olduğunu düşünebilirsiniz. Ancak almanız gerekir para birimlerinin, pip başına 10,00 ABD Doları olan 100.000,00 ABD Doları tutarında işlem gördüğü dikkate alınır. 10,00$'a bir lot satın aldığınızda ve para birimi 3 pip arttığında 30,00$ kazanmış olursunuz.


Teşekkürler arkadaşlar, biraz kod ödünç aldım ve işte benim katkım

 double GetPPP( string symbol = "" , double lots = 0.00 ){
   string sym = Symbol ();
   if ( symbol != "" ) sym = symbol ;
   double size = 1.00 ;
   if ( lots > 0 ) size = lots ;
   string first = StringSubstr ( symbol, 0 , 3 );
   string second = StringSubstr ( symbol, 3 , 3 );
   string currency = AccountCurrency();
   if ( symbol == "AUDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) )  * 100 );
   } else if ( symbol == "AUDUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) ); 
   } else if ( symbol == "AUDNZD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CADCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CADJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) )  * 100 );
   } else if ( symbol == "CHFJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) )  * 100 );
   } else if ( symbol == "EURAUD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURCAD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURGBP" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   }   else if ( symbol == "EURJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) )  * 100 );
   } else if ( symbol == "EURNZD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURusd" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPAUD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPCAD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPCHF" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPJPY" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) * 100 );
   } else if ( symbol == "GBPNZD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) * 100   );
   } else if ( symbol == "NZDUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   }   else if ( symbol == "USDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * 1 / AvgPrice( StringConcatenate ( first, second  ) ) );
   }   else if ( symbol == "USDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * 1 / AvgPrice( StringConcatenate ( first, second  ) ) );
   }   else if ( symbol == "USDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * PipPoints * 1 / AvgPrice( StringConcatenate ( first, second  ) ) * 100 ) ;
   } else {
       Print ( "Symbol " ,symbol, " is not supported." );
   }
}
 

üzgünüm çocuklar burada bir güncelleme, kaldırılmış PipPoints ve sabit sembol var ve bunun diğer kullanım yaşımdan birine bağlı olduğunu anlamadım:

double PPP = GetPPP( S ymbol() );

çift PPP = GetPPP( Sembol() , 0.5 );

çift PPP = GetPPP( " NZDJPY "   );

Umarım yardımcı olur ve başlangıç için teşekkürler.

 double AvgPrice( symbol ){
   double bid, ask;
   ask = NormalizeDouble ( MarketInfo( sym, MODE_ASK ), digits );
   bid = NormalizeDouble ( MarketInfo( sym, MODE_BID ), digits ); 
   return ( ( ask + bid ) / 2 );
}
double GetPPP( string symbol, double lots = 0.00 ){
   double size = 1.00 ;
   if ( lots > 0 ) size = lots ;
   string first = StringSubstr ( symbol, 0 , 3 );
   string second = StringSubstr ( symbol, 3 , 3 );
   string currency = AccountCurrency();
   if ( symbol == "AUDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "AUDUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) ); 
   } else if ( symbol == "AUDNZD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CADCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CADJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "CHFJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 / AvgPrice( StringConcatenate ( currency, first ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURAUD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURCAD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURGBP" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   }   else if ( symbol == "EURJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURNZD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "EURusd" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPAUD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPCAD" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPCHF" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPJPY" ){
     return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPNZD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "GBPUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   } else if ( symbol == "NZDUSD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * AvgPrice( StringConcatenate ( first, currency ) ) / AvgPrice( StringConcatenate ( first, second ) ) );
   }   else if ( symbol == "USDCAD" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * 1 / AvgPrice( StringConcatenate ( first, second  ) ) );
   }   else if ( symbol == "USDCHF" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.0001 * 1 / AvgPrice( StringConcatenate ( first, second  ) ) );
   }   else if ( symbol == "USDJPY" ){
       return ( size * MarketInfo( symbol, MODE_LOTSIZE ) * 0.01 * 1 / AvgPrice( StringConcatenate ( first, second  ) ) ) ;
   } else {
       Print ( "Symbol " ,symbol, " is not supported." );
   }
}
 

2013'ten bir ileti dizisine çarptığım için üzgünüm,

Ancak, bana pip başına ödeme yapmak için bir değer girebileceğim bir indi yapan veya bulan biri var mı ve bu bana bir yayılmış bahis hesabı gibi, ancak standart forex hesapları için döviz çifti başına lot büyüklüğü girdisini söyleyecek mi?

 
Asla hesabınızın küçük bir yüzdesinden fazlasını riske atmayın, kesinlikle işlem başına %2'den, toplamda %6'dan az.
  1. Kodda (MT 4 ): Risk, ilk zarar durdurmanıza, lot büyüklüğüne ve çiftin değerine bağlıdır. Marj ve kaldıraca bağlı değildir.
    1. Durağı olması gereken yere yerleştirirsiniz - ticaret nedeninin artık geçerli olmadığı yere. Örneğin, bir destek sıçraması ticareti, durdurma desteğin altına düşer.
    2. AccountBalance * yüzde/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Not OOP-OSL spread'i içerir ve DeltaPerLot genellikle 10$/pip civarındadır, ancak çiftin ve . hesap para biriminiz.)
    3. TickValue'u tek başına KULLANMAYIN - DeltaPerLot ve MODE_TICKVALUE öğesinin belgelerde vaat edildiği gibi mevduat para biriminizde bir değer döndürdüğünü veya enstrümanın temel para biriminde bir değer döndürüp döndürmediğini doğrulayın.
      MODE_TICKVALUE, birçok broker ile fx olmayan araçlarda güvenilir değil - MQL4 programlama forumu 2017.10.10
      Tick değeri için evrensel bir çözüm var mı? - Döviz Çiftleri - Genel - MQL5 programlama forumu 2018.02.11
      100 faktörlü parti değeri hesaplaması - MQL5 programlama forumu 2019.07.19
    4. Partileri düzgün bir şekilde normalleştirmeli ve min ve max değerlerine göre kontrol etmelisiniz.
    5. Stop out'tan kaçınmak için FreeMargin'i de kontrol etmelisiniz.

    Çoğu çift, PIP başına yaklaşık 10 ABD doları değerindedir. (Çok küçük) 5 PIP SL ile 5$'lık bir risk 5$/10$/5 veya maksimum 0.1 Lot'tur.

  2. Benimki gibi bir GUI/Ticari Asistan EA kullanın (MT 4 için): 'takycard' ile 'Para Yöneticisi Grafik Aracı' göstergesi - Risk Yönetimi - Makaleler, Kitaplık yorumları - MQL5 programlama forumu - Sayfa 6 #55
 
//+------------------------------------------------------------------+
//|                                                      getInfo.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Open Source"
#property link      
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {


   double LotSize= 1;
   double point= Point;
   if((Digits==3) || (Digits==5))
     {
      point*=10;
     }
   string DepositCurrency=AccountInfoString(ACCOUNT_CURRENCY);  
   double PipValue=(((MarketInfo(Symbol(),MODE_TICKVALUE)*point)/MarketInfo(Symbol(),MODE_TICKSIZE))*LotSize);
    
   
   
   MessageBox("DEPOSIT CURRENCY"+ DepositCurrency ,"ToolBox");
   MessageBox("VALUE OF ONE PIP (1 LOT)="+ PipValue ,"ToolBox");
   
   
  }
//+------------------------------------------------------------------+