Ana içeriğe geç

Para birimi dönüştürücü

Algoritmik işlem yapmada, cBot'lara ve göstergelere mevcut piyasa kurlarını kullanarak para birimlerini otonom olarak dönüştürme yeteneği vermek çok önemlidir. Bu API kılavuzunda, bu özelliğin cTrader'da nasıl uygulandığını ele alıyoruz.

Bir dakikada para birimi dönüştürme!

  • Convert (double value, Asset from, Asset to ve Convert(double value, string from, string to)) yöntemleri, belirtilen varlıklar veya belirtilen adlara sahip varlıklar arasındaki tam dönüştürme oranını döndürür. Onlara Algo sınıfının yeni AssetConverter özelliği aracılığıyla erişin.
  • Asset sınıfı, herhangi bir Asset nesnesinden kolayca çağrılabilecek kendi Convert(Asset to, double value) ve Convert(string to, double value) yöntemlerini içerir.
  • Geriye dönük test yaparken cTrader, geçmiş dönüştürme oranlarını otomatik olarak kullanır. Bu, her zaman tarihsel olarak doğru sonuçlar bekleyebileceğiniz ve cBot'larınızın performansını tam olarak değerlendirebileceğiniz anlamına gelir.

Para birimi dönüştürme nasıl çalışır

cAlgo.API.Internals ad alanındaki IAssetConverter arayüzü, aşağıdaki aşırı yüklemelere sahip Convert() yöntemini içerir:

  • double Convert(double value, Asset from, Asset to) - belirtilen değeri from varlığından to varlığına dönüştürür.
  • double Convert(double value, string from, string to) - belirtilen değeri, adı from dizesiyle eşleşen varlıktan, adı to dizesiyle eşleşen varlığa dönüştürür.

Algo sınıfı artık IAssetConverter türünde AssetConverter özelliğini içerir. Yukarıdaki iki yönteme aşağıdakileri yazarak erişebilirsiniz.

1
AssetConverter.Convert(double value, Asset from, Asset to)

Asset sınıfı ayrıca aşağıdaki aşırı yüklemelere sahip kendi Convert() yöntemlerine sahiptir:

  • double Convert(Asset to, double value) - belirtilen değeri, bu yöntemin çağrıldığı varlıktan to varlığına dönüştürür.
  • double Convert(string to, double value) - belirtilen değeri, bu yöntemin çağrıldığı varlıktan, adı to dizesiyle eşleşen varlığa dönüştürür.

Aşağıdaki örneği ele alalım: cBot'umuz GBP'yi JPY'ye dönüştürüyor ve ardından hesaplanan değeri emir hacmi olarak kullanarak yeni bir piyasa emri yürütüyor.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Robots
{
    [Robot(AccessRights = AccessRights.None)]
    public class SampleConversionTestBot : Robot
    {
        [Parameter(DefaultValue = "Hello world!")]
        public string Message { get; set; }

        protected override void OnStart()
        {

            Asset baseAssetForNewOrder = Assets.GetAsset("GBP");

            Asset quoteAssetForNewOrder = Assets.GetAsset("JPY");

            double newOrderVolume = baseAssetForNewOrder.Convert(quoteAssetForNewOrder, 1000.00);

            ExecuteMarketOrder(TradeType.Buy, SymbolName, newOrderVolume);

            Print($"New order has been executed with {newOrderVolume} as its volume");
        }


    }
}

Günlüğe bakarsak, cBot'umuzun beklendiği gibi davrandığını görebiliriz. Örnek başlatıldığında, GBPJPY için alış fiyatı 159.619'a eşitti.

Geriye dönük testte para birimi dönüştürme

cTrader, geriye dönük testte geçmiş dönüştürme oranlarını tam olarak destekler.

Bu, yukarıda açıklanan yöntemlerden herhangi birini kullanan bir cBot'u geriye dönük test ettiğinizde, dönüştürme hesaplamalarının belirtilen varlıklar arasındaki güncel döviz kurları yerine tarihsel olarak doğru veriler kullanılarak yapılacağı anlamına gelir. Bu özellik, geçmiş piyasa koşulları göz önüne alındığında geriye dönük test ve optimizasyon sonuçlarının mümkün olduğunca hassas olmasını sağlar.

cTrader'ın potansiyel olarak sınırsız işlem enstrümanları kullanarak doğru dönüştürme zincirleri oluşturabileceğini unutmayın. Sonuç olarak, hesabınızın para yatırma birimi, geriye dönük test yapmak istediğiniz sembolün temel veya karşıt varlıklarından farklı olsa bile, cTrader size hassas geriye dönük test sonuçları sağlamak için gerekli tüm hesaplamaları yapacaktır.

Özetle, dönüştürme oranları, cBot'larınızın ve göstergelerinizin beklendiği gibi performans gösterdiğinden emin olmak için başka bir değerli araçtır. cTrader, geriye dönük testte varlıkları dönüştürürken geçmiş verilerin kullanımını desteklediği için, tüm geriye dönük test ve optimizasyon sonuçlarının tarihsel olarak doğru olduğundan emin olabilirsiniz.