GBP cinsinden hesapta XAUUSD yanlış lot büyüklüğü mü? - sayfa 5

 
DomGilberto :
Teşekkürler :) - Şimdi kontrol edeceğim!

Ayrıca, sizce FXCM Onay Değerini nasıl gördüğüm konusunda yanlış mı? Tamamen normal olduğu konusunda kararlılar mı? Neden batırdıklarını bilmiyorsun, değil mi?
Neyi neden yapıyorlar bilmiyorum. . . Argümanlarınızın arkasında biraz ağırlık istiyorsanız, rakiplerinden birkaçını kurun ve Tick Value setinin nasıl olduğunu görün, sonra onlara rakiplerinin ne yaptığını söyleyin. . . ve hala "normal" hissedip hissetmediklerini sorun. . .
 
Oh inan bana, 5-6 farklı komisyoncuyu kontrol ettim ! Çok sinirliyim çünkü onlarla ticarete çoktan başladım. Tüm brokerler arasında FXCM'nin böyle bir sikke yapacağını düşünmezdim :(

Sadece meraktan - eklediğiniz önceki bağlantıyı okudum; böyle yapmak daha kolay değil mi? - Parmak izleri de orada. Bunu az önce FXCM ile canlı hesabıma bıraktım... Şimdi bana GBPUSD onay değerine dayalı oldukça doğru bir TickValue veriyor ve sadece * 0.10 ?

Bilmediğim tek şey, bir anahtarın nasıl oluşturulacağı, sizin de söylediğiniz gibi, eğer komisyoncu doğru ayrıntılara sahipse, bunları kullanın ??? (beni doğru yöne işaret edebilir mi?)
   double risk_amount = AccountBalance( )* 2.00 / 100 ;
   double Lot_Step = MarketInfo( Symbol (), MODE_LOTSTEP);
   double ts = MarketInfo( Symbol (), MODE_TICKSIZE);
   double tv = MarketInfo( Symbol (), MODE_TICKVALUE);
   double minlot = MarketInfo( Symbol (), MODE_MINLOT);
   
   double GBPUSD = MarketInfo( "GBPUSD" , MODE_TICKVALUE);
   
       double CustomTickValue = 0.10 * GBPUSD;
         Print ( " Custom Tick Value is: " , 0.10 , " * " , GBPUSD, " = " , CustomTickValue);

2013.11 . 12 11 : 32 : 33      Tick Value test XAUUSD,H1:  Custom Tick Value is: 0.1 * 0.6296 = 0.063

            
       double loss_for_1_lot = 25.25 / ( 0.10 * GBPUSD ) * ts ;
         Print ( " loss_for_1_lot formula: " , 25.25 , " / " , ts, " * (" , CustomTickValue, ") = " , loss_for_1_lot );

2013.11 . 12 11 : 32 : 33      Tick Value test XAUUSD,H1:  loss_for_1_lot formula: 25.25 / 0.01 * ( 0.063 ) = 4.0106

      
       double LotSize_Buy = MathFloor ( risk_amount / loss_for_1_lot/ Lot_Step) * Lot_Step ;
         Print ( " LotSize_Buy: ( " , risk_amount, " / " , loss_for_1_lot, " / " , Lot_Step, " ) * " , Lot_Step, " = " , LotSize_Buy); 

2013.11 . 12 11 : 32 : 33      Tick Value test XAUUSD,H1:  LotSize_Buy: ( 76.0598 / 4.0106 / 1 ) * 1 = 18
 
DomGilberto :
Oh inan bana, 5-6 farklı komisyoncuyu kontrol ettim! Çok sinirliyim çünkü onlarla ticarete çoktan başladım. Tüm brokerler arasında FXCM'nin böyle bir sikke yapacağını düşünmezdim :(

Sadece meraktan - eklediğiniz önceki bağlantıyı okudum; böyle yapmak daha kolay değil mi?

Sembolün XXXUSD olduğu ve hesap para biriminizin GBP olduğu yerde bu işe yarayabilir/işe yarayacaktır (yeterince ayrıntılı bakmadım), XXXYYY gibi bir sembol ve ZZZ hesap para birimi için çalışan bir işleve sahip olmayı tercih etmez miydiniz? o zaman işiniz bitti ve bu konu hakkında tekrar endişelenmenize gerek yok. . .

Bilmediğim tek şey, bir anahtarın nasıl oluşturulacağı, sizin de söylediğiniz gibi, eğer komisyoncu doğru ayrıntılara sahipse, bunları kullanın ??? (beni doğru yöne işaret edebilir mi?)
Basitçe hesaplamayı yapabilir ve hesaplanan değeri MarketInfo() değeriyle ve %10'dan fazla farklılık varsa %20 ile karşılaştırabilirsiniz. . . Yeterince büyük bir hata olduğunu düşündüğünüz şey, hesaplanan değeri kullanırsınız. Hesaplamanızda kullandığınız değerlerin doğru olduğundan emin olmanız yeterlidir, bu amaçla, temel para birimi (EURGBP) hesabınızın para birimi (GBP) ile aynı olan bir sembolün Onay Değerini alırsanız, 1.0 olacaktır. (5 haneli Broker) daha sonra bundan Tick Değerini bulmanız gereken sembole geri dönün.
 
İyi bağır! Tamam, biraz oynadım - bir dakikan olursa, ne düşündüğünü görmek için şuna bir göz atabilir misin? Bunu çok sağlam yapmadığım için teşekkür ederim - sadece geçici bir düzeltme arıyorum (ki bu geçici kelimesinin tehlikeli bir kelime olduğunu biliyorum!), bu arada özellikle FXCM ile sağlam kalacak... Aşağıdaki bu özellikle XAGUSD! ( Üzgünüm, yanlış bir tane gönderdiğim için güncellemem gerekiyordu! )

minLot her zaman gümüş için 50,00 veya altın için 1.00'dır.
 //+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 

  
   double ts = MarketInfo( Symbol (), MODE_TICKSIZE);
   double tv = MarketInfo( Symbol (), MODE_TICKVALUE);
   
   double GBPUSD_BID = MarketInfo( "GBPUSD" , MODE_BID);
   double CustomTickValue;
   
   double EqualityTickValue = (( 0.10 / GBPUSD_BID * minLot ) - tv ) * 1000 ;
       Print ( " EqualityTickValue formula is: ( " , 10 , " / " , GBPUSD_BID, " * " , 50 , " ) - " , tv, ") * " , 1000 , " = " , EqualityTickValue);

2013.11 . 12 14 : 40 : 08      Tick Value test XAUUSD,H1:  EqualityTickValue formula is: ( 10 / 1.5911 * 50 ) - 0.01 ) * 1000 = 3132.401


      
   
   if ( EqualityTickValue > 20.00 ) 
     {
      CustomTickValue = ( 0.10 / GBPUSD_BID  * minLot );
       Print ( " CustomTickValue is custom: " , 10 , " / " , GBPUSD_BID, " * " , 50.00 , " = " , CustomTickValue); 

2013.11 . 12 14 : 40 : 08      Tick Value test XAUUSD,H1:  CustomTickValue is custom: 10 / 1.5911 * 50 = 3.1424

     }
   if ( EqualityTickValue < 20.00 )
     { 
      CustomTickValue = tv;
       Print ( " CustomTickValue is MarketInfo: " , tv);



     } 
     
//----
   return ( 0 );
  }
 
DomGilberto :
İyi bağır! Tamam, biraz oynadım - bir dakikan olursa, ne düşündüğünü görmek için şuna bir göz atabilir misin? Bunu çok sağlam yapmadığım için teşekkür ederim - sadece geçici bir düzeltme arıyorum (ki bu geçici kelimesinin tehlikeli bir kelime olduğunu biliyorum!), bu arada özellikle FXCM ile sağlam kalacak... Aşağıdaki bu özellikle XAGUSD! ( Üzgünüm, yanlış bir tane gönderdiğim için güncellemem gerekiyordu! )

minLot her zaman gümüş için 50,00 veya altın için 1.00'dır.


İşte daha genel bir şey...

Farklı brokerler tarafından diğer sembolleri kapsayacak şekilde genişletilebilir.

Burada dikkat edilmesi gereken temel girdiler BidUSD ve AskUSD'dir. BidUSD, marj para biriminin dolar fiyatıdır, bu nedenle TradeSymbol'unuzun GBPJPY olduğunu varsayalım, o zaman BidUSD, GBPUSD'nin fiyatı olacaktır. Benzer şekilde, AskUSD USDJPY olacaktır. Marj veya kâr para birimlerinden herhangi biri, örneğin ana dallardan herhangi biri USD ise, bu durumda BidUSD==USD Sor==TradeSymbol'ün mevcut fiyatı.

Bu fonksiyon tarafından döndürülen, belirli bir PriceDelta (girişlerden biri) aracılığıyla TradeSymbol'un bir lotunu (1.0) tutmanın kazanç/kayıplarıdır.

 //+------------------------------------------------------------------+
//|                                                       Profit.mqh |
//|                                                              ssn |
//+------------------------------------------------------------------+
#property copyright "ssn"

//#property version   "3.31"

double Profit( string TradeSymbol, double PriceDelta, double BidUSD, double AskUSD)
   {
       double _profit= 0.0 ;
      
       if ( StringFind (TradeSymbol, "TNOTE" , 2 )>= 0 ||
         StringFind (TradeSymbol, "aTND" , 0 )>= 2 ){
         _profit+=MarketInfo(TradeSymbol,MODE_LOTSIZE)*BidUSD;
         _profit*=PriceDelta;}
      
       else if ( StringFind (TradeSymbol, "US500" , 0 )>= 0 ||
               StringFind (TradeSymbol, "a500" , 0 )>= 0 ||
               StringFind (TradeSymbol, "SPY" , 0 )>= 0 ){
         _profit+=MarketInfo(TradeSymbol,MODE_LOTSIZE)*BidUSD;
         _profit*=PriceDelta;}
      
       else if ( StringFind (TradeSymbol, "XAG" , 0 )>= 0 || StringFind (TradeSymbol, "XAU" , 0 )>= 0 ){
         _profit+=MarketInfo(TradeSymbol,MODE_LOTSIZE)*BidUSD;
         _profit*=PriceDelta; }
      
       else if ( StringFind (TradeSymbol, "EUR" , 0 )>= 0 ||
         StringFind (TradeSymbol, "GBP" , 0 )>= 0 ||
         StringFind (TradeSymbol, "AUD" , 0 )>= 0 ||
         StringFind (TradeSymbol, "NZD" , 0 )>= 0 ){
         _profit+=MarketInfo(TradeSymbol,MODE_LOTSIZE)*BidUSD;
         if ( StringFind (TradeSymbol, "USD" , 0 )>= 0 ){ 
            _profit*=PriceDelta; }
         else if ( StringFind (TradeSymbol, "USD" , 0 )< 0 ){
             if ( StringFind (TradeSymbol, "GBP" , 0 )>= 0 ||
               StringFind (TradeSymbol, "AUD" , 0 )>= 0 ||
               StringFind (TradeSymbol, "NZD" , 0 )>= 0 ){
               _profit*=PriceDelta*AskUSD; }
             else if ( StringFind (TradeSymbol, "CAD" , 0 )>= 0 ||
                   StringFind (TradeSymbol, "CHF" , 0 )>= 0 ||
                   StringFind (TradeSymbol, "JPY" , 0 )>= 0 ){
               _profit*=PriceDelta;
               if (AskUSD!= 0.0 ) { _profit/=AskUSD; }
               else if (AskUSD== 0.0 ) {
                   Print ( " Ask's USD price is zero! ensure it's provided. " );
                   return ( 0.0 ); }}}}
      
       else if ( StringFind (TradeSymbol, "USD" , 0 )>= 0 ){
         _profit = MarketInfo(TradeSymbol,MODE_LOTSIZE);
         if ( StringFind (TradeSymbol, "CAD" , 0 )>= 0 ||
             StringFind (TradeSymbol, "CHF" , 0 )>= 0 ||
             StringFind (TradeSymbol, "JPY" , 0 )>= 0 ){
            _profit*=PriceDelta;
             if (AskUSD!= 0.0 ) { _profit/=AskUSD; }
             else if (AskUSD== 0.0 ) {
               Print ( " Ask's USD price is zero! ensure it's provided. " );
               return ( 0.0 ); }}}
               
       else if ( StringFind (TradeSymbol, "CAD" , 0 )>= 0 ||
               StringFind (TradeSymbol, "CHF" , 0 )>= 0 ){
         if (BidUSD!= 0.0 ) { _profit = MarketInfo(TradeSymbol,MODE_LOTSIZE)/BidUSD; }
         else if (BidUSD== 0.0 ) {
             Print ( " Bid's USD price is zero! ensure it's provided. " );
             return ( 0.0 ); }
         _profit*=PriceDelta;
         if (AskUSD!= 0.0 ) { _profit/=AskUSD; }
         else if (AskUSD== 0.0 ) {
             Print ( " Ask's USD price is zero! ensure it's provided. " );
             return ( 0.0 );  }}
             
       return (_profit);
   }
 

Posta arkadaşınız için teşekkürler - Bundan ne çıkardığımdan tam olarak emin değilim - yarın daha yakından bakacağız ...