MetaTrader 5 karı nasıl hesaplar?

 

Basit bir komut dosyası çalıştıralım:

 //+------------------------------------------------------------------+
//|                                                       profit.mq5 |
//+------------------------------------------------------------------+
string com;
string Sy[ 28 ]={ "EURGBP" , "EURAUD" , "EURNZD" , "EURUSD" , "EURCAD" , "EURCHF" , "EURJPY" , "GBPAUD" , "GBPNZD" , "GBPUSD" ,
               "GBPCAD" , "GBPCHF" , "GBPJPY" , "AUDNZD" , "AUDUSD" , "AUDCAD" , "AUDCHF" , "AUDJPY" , "NZDUSD" , "NZDCAD" ,
               "NZDCHF" , "NZDJPY" , "USDCAD" , "USDCHF" , "USDJPY" , "CADCHF" , "CADJPY" , "CHFJPY" };
double a[ 28 ],b[ 28 ],BuyPlus[ 28 ],BuyMinus[ 28 ],SellPlus[ 28 ],SellMinus[ 28 ];
double diff= 0.001 ;

void OnStart ()
  {com= "" ;
   for ( int i= 0 ;i< 28 ;i++)
      {b[i]= SymbolInfoDouble (Sy[i], SYMBOL_BID );a[i]= SymbolInfoDouble (Sy[i], SYMBOL_ASK );
       OrderCalcProfit ( ORDER_TYPE_BUY ,Sy[i], 1.0 ,a[i],a[i]+diff,BuyPlus[i]);
       OrderCalcProfit ( ORDER_TYPE_BUY ,Sy[i], 1.0 ,a[i],a[i]-diff,BuyMinus[i]);
       OrderCalcProfit ( ORDER_TYPE_SELL ,Sy[i], 1.0 ,b[i],b[i]+diff,SellPlus[i]);
       OrderCalcProfit ( ORDER_TYPE_SELL ,Sy[i], 1.0 ,b[i],b[i]-diff,SellMinus[i]);
       
       com=com+ "\n" +Sy[i]+ "  BuyPlus="   + DoubleToString (BuyPlus[i], 4 )
                         + "  BuyMinus=" + DoubleToString (BuyMinus[i], 4 )
                         + "  SellPlus=" + DoubleToString (SellPlus[i], 4 )
                         + "  SellMinus=" + DoubleToString (SellMinus[i], 4 );
      } //for
   Comment (com);
  } //start

Hata açık...

Sorun muhtemelen SYMBOL_TRADE_TICK_VALUE_PROFIT ve SYMBOL_TRADE_TICK_VALUE_LOSS'tan kaynaklanıyor.

SYMBOL_TRADE_TICK_VALUE_LONG ve SYMBOL_TRADE_TICK_VALUE_ SHORT'a ihtiyacınız olacak .

Arama ilginç bir şey ortaya çıkardı:

Renat :

Dün koda baktığımda bir noktanın yönüne göre farklı maliyeti konusunda kendimi yanlış ifade ettim.

Daha doğrusu, TickValue hedef para birimine dönüştürüldüğünde kârsız olup olmamasına bağlıdır. Yani, 1 piplik bir kaybımız varsa, bunu Alış fiyatından geri almamız ve kar 1 pip ise, Alış fiyatından satmamız gerekir.


Bu elbette yanlış. Kısa bir pozisyon için tam tersini değerlendirin....

Umarım hata dalga değildir! Düzeltin lütfen!

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 

Ne yazık ki, soru açıkça ifade edilmemiştir ve önerilen örnekten bir sonuç çıkarılmamıştır. Tam olarak neyin hata olarak gösterildiği belli değil.

Sorunuzu tam olarak formüle edin, elde edilen sonuçları ekleyin ve hatanın nerede olduğunu belirtin, lütfen.

Örneğin, hatanın nerede olduğunu belirtin:

EURGBP  BuyPlus=158.40000000  BuyMinus=-158.48000000  SellPlus=-158.48000000  SellMinus=158.40000000  Profit=1.58398000  Loss=1.58482000

SYMBOL_TRADE_TICK_VALUE_PROFIT ve SYMBOL_TRADE_TICK_VALUE_LOSS değerlerini en sona ekledim.

Kârın, işlemin kârlılığına veya kârsızlığına bağlı olarak, bir kenenin farklı maliyetini gerçekten hesaba kattığı görülebilir. Bunun nedeni, alınan finansal sonucu bir para biriminde satmanız (kar ise) veya dönüştürme için itfa etmeniz (zarar ise) gerektiğinde mevduat para birimine örtülü bir dönüştürme işleminin olmasıdır.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 

 

Kene değeri, ticaretin karlılığına veya kaybına bağlı değildir.

Kar ve zarar aynı fiyattan kapanacaktır. Dönüştürürken - çok.

Yalnızca kısa ve uzun işlemler, kene değerinde bir farka sahip olabilir ve mevduat para birimine dönüştürülmek için farklı şekilde sayılabilir.

Önceki örnekte BuyPlus ve BuyMinus eşit olmalıdır. SellPlus ve SellMinus - çok. Sadece Satın Alabilirsiniz.... Sat'tan farklıdır...

Burada bir şeyi karıştırıyorsunuz:

Renat :

... alınan finansal sonucu bir para biriminde satmanız (kar ise) veya dönüştürme için geri satın almanız (zarar ise) gerektiğinde.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

EURGBP'de bir işlem açtığınızda ve mevduat para birimi USD olduğunda, pratik olarak (yaklaşık olarak) EURUSD Al ve GBPUSD Sat seçeneğine sahipsiniz. (hacimdeki fark önemli değil, çünkü kapandıklarında değişmezler)

Açmak için: Satış fiyatından (EURUSD) EURUSD satın alın ve Sell GBPUSD - Bid(GBPUSD) için.

Kapanışta ( kar ise, zarar ise) Bid(EURUSD) ve Ask(GBPUSD) ile aynı fiyata sahip olursunuz.

Kar/ zarar için tik değeri neden farklı?!?!

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

Bu, uzun süredir devam eden bir geliştirici yanılgısının sonucudur:

Renat :

Daha doğrusu, TickValue hedef para birimine dönüştürüldüğünde kârsız olup olmamasına bağlıdır. Yani, 1 piplik bir kayıp alırsak, bunu Alış fiyatından geri almamız ve kar 1 pip ise, o zaman Alış fiyatından satmamız gerekir.

 
Manov :

Kene değeri, ticaretin karlılığına veya kaybına bağlı değildir .

Kar ve zarar aynı fiyattan kapanacaktır. Dönüştürürken - çok.

Sadece mesele bu, duruma göre değişir.

Bunu yapmak için , karmaşık çarpıların dönüşümleriyle hesaplamaların matematiğine yeterince derine dalmanız gerekir. EURUSD ve GBPUSD gibi ana dalları işlettiğiniz sürece hiçbir şey görmezsiniz.

Evet, ilk bakışta bağımlı olmaması gerektiği anlaşılıyor, ancak haçları daha yakından incelediğinizde bağlı olduğunu göreceksiniz.

 
Renat :

Mesele bu, duruma göre değişir.

Aslında bu tartışmalı bir nokta. Renat'ın mantığı anlaşılabilir ve hatta ilk bakışta doğru görünüyor:

Çapraz işlem yaparak, temel para biriminde kar elde edersiniz. Örneğin, EURGBP ticaretinden elde edilen kâr GBP cinsinden ölçülür. Ancak MT5'te çoklu para birimi karı kavramı yoktur, bu nedenle GBP karı anında hesap para birimine dönüştürülür. Ve öyle görünüyor ki, pozitif bir kârla, mevcut GBPUSD_Bid oranında ve negatif bir - GBPUSD_Ask oranında dönüştürülmelidir .

Ancak, bir karşı örnek :

  1. İki bağımsız hesabınız var. Ve birinden diğerine para transfer etmeye karar veriyorsunuz.
  2. EURGBP'de , bir BuyLimit hesabında spread'in içinde yayın yaparsınız. Buna göre, Teklif fiyatı sizin olur.
  3. Başka bir hesapta, bir SAT piyasa emri verin.
  4. Bu kadar basit bir işlemle kendinizi sattınız.
  5. Belli bir zaman geçer ve anlaşmaları kapatmaya karar verirsiniz.
  6. İlk hesapta, spread içinde SellLimit'i ayarlarsınız. Fiyatınız artık Satış fiyatı olur.
  7. Diğer hesapta, bir SATIN AL piyasa emri verin.
  8. Şimdi kendinizden satın aldığınız ortaya çıktı.
  9. Her hesaptaki her iki işlem de kapalı. Kendine alıp sattın.
  10. Bir hesabın kârı pozitif, diğerinin kârı negatif.
  11. Her iki hesabınızdaki para miktarının değiştiğini düşünüyor musunuz (aracı komisyonu hariç)?
  12. Mantıken Renata değişti . Çünkü bir hesaptaki kâr, diğer hesaptaki zarara eşit olmayacaktır. Ve bu, kendiniz satıp satın almanıza rağmen.
  13. Doğru mu?

Piyasa koşullarıyla ilgiliydi - ECN/STP komisyoncusu.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
hrenfx :

Ancak, bir karşı örnek :
  1. Doğru mu?

Piyasa koşullarıyla ilgiliydi - ECN/STP komisyoncusu.

Lütfen kendi spreadlerine sahip en az iki başka dahili dönüşüm olduğunu unutmayın.
 
Renat :

Sadece mesele bu, duruma göre değişir.

Bunu yapmak için , karmaşık çarpıların dönüşümleriyle hesaplamaların matematiğine yeterince derine dalmanız gerekir. EURUSD ve GBPUSD gibi ana dalları işlettiğiniz sürece hiçbir şey görmezsiniz.

Evet, ilk bakışta bağımlı olmaması gerektiği anlaşılıyor, ancak haçları daha yakından incelediğinizde bağlı olduğunu göreceksiniz.

Alış/Teklif fiyatını hesaplamak zor olabilir, ancak aslında tüm çaprazlar için 2 işleminiz var:

1. SYMBOL_CURRENCY_BASE - ACCOUNT_CURRENCY Alış/Teklif ile Al veya Sat

2. SYMBOL_CURRENCY_PROFIT - ACCOUNT_CURRENCY Alış/Teklif ile Al veya Sat

İşlemlerin her biri, Bid ile açılırsa - Ask ile kapatılır. Ve tam tersi...

Sonucun işareti, şu anda MetaTrader 5'te olduğu gibi, kapanış fiyatı için önemli değil !!

 
 
Renat :
Lütfen kendi spreadlerine sahip en az iki dahili dönüşüm daha olduğunu unutmayın.

Hangi dönüştürme işlemlerinden bahsediyoruz? Mantık basittir, birden fazla para birimi karını hesap para birimine dönüştürmeniz gerekir, artık değil. Örnek durumunda, GBP cinsinden karı USD'ye çevirmek gerekir. Kârın olumlu ya da olumsuz olması önemli değil, ancak dönüştürmeniz gerekiyor.

Çoklu para biriminde kârı sürdürme ve devir sırasında bunu dönüştürmeye yönelik piyasa düzeninden vazgeçtiniz. Bu, bir piyasa platformu olarak konumlandırılan MT5'in piyasa koşullarından bir sapmadır. Ancak basitlik adına, böyle bir ayrılma anlaşılabilir ve çoğu durumda (hiç de değil) ciddi maliyetlere yol açmaz.

Ancak kar hesaplaması söz konusu olduğunda, bir maça kürek demek, bilerek veya kazayla, MT5 kullanan bir komisyoncu lehine müşterilerden para almak için sahte bir düzeni kolaylaştırıyorsunuz. Açıklamama izin verin, şu anda komisyoncu MT5'te ek para alıyor. tüm müşterilerin ticaretinden elde edilen kâr, (kabaca) tüm müşterilerinin cross'lardaki cirosuna eşittir, ana dalların karşılık gelen yayılımı ile çarpılır.

Yayılmada ve herhangi birinde ücretsiz bir kazanç planı uyguladınız. Örneğin, haberler sırasında, aynı GBPUSD üzerinde, spread çok geniş olabilir ve brokerin müşterileri için bir kapanış / açılış varsa, o zaman broker bu devasa spread'i maviden kazanır.

Bu, çoklu para birimi karlarının reddedilmesinin bir eksidir, çünkü çoklu karlar, haberler sırasında çok kötü fiyatlara dönüştürülebilir. Ama aslında, devir sırasında, çok para birimli karların dönüştürülmesi, genel olarak tüm müşterilerin toplam netleşmesine göre gerçekleşir. Ve yukarıdaki karşı örnekte gösterildiği gibi bu tür çarpıtmalar hiçbir şekilde gerçekleşemez.