Lewati ke isi

Konverter mata uang

Dalam trading algo, memberikan kemampuan kepada cBot dan indikator untuk mengonversi mata uang secara otonom menggunakan kurs pasar saat ini sangatlah penting. Dalam panduan API ini, kami membahas bagaimana fitur ini diimplementasikan di cTrader.

Konversi mata uang dalam satu menit!

  • Metode Convert (double value, Asset from, Asset to dan Convert(double value, string from, string to)) mengembalikan nilai konversi yang tepat antara aset yang ditentukan atau aset dengan nama yang ditentukan. Akseslah metode tersebut melalui properti AssetConverter baru dari kelas Algo.
  • Kelas Asset menyertakan metode Convert(Asset to, double value) dan Convert(string to, double value) miliknya sendiri yang dapat dengan mudah dipanggil dari objek Asset mana pun.
  • Saat melakukan backtesting, cTrader akan secara otomatis menggunakan nilai konversi historis. Ini berarti Anda selalu dapat mengharapkan hasil yang akurat secara historis dan mengevaluasi kinerja cBot Anda secara menyeluruh.

Cara kerja konversi mata uang

Antarmuka IAssetConverter dalam namespace cAlgo.API.Internals berisi metode Convert() yang memiliki overload berikut:

  • double Convert(double value, Asset from, Asset to) - mengonversi nilai yang ditentukan dari aset from ke aset to.
  • double Convert(double value, string from, string to) - mengonversi nilai yang ditentukan dari aset yang namanya cocok dengan string from ke aset yang namanya cocok dengan string to.

Kelas Algo kini menyertakan properti AssetConverter dengan tipe IAssetConverter. Anda dapat mengakses dua metode di atas dengan mengetikkan hal berikut.

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

Kelas Asset juga memiliki metode Convert() sendiri dengan overload berikut:

  • double Convert(Asset to, double value) - mengonversi nilai yang ditentukan dari aset tempat metode ini dipanggil ke aset to.
  • double Convert(string to, double value) - mengonversi nilai yang ditentukan dari aset tempat metode ini dipanggil ke aset yang namanya cocok dengan string to.

Perhatikan contoh di bawah ini di mana cBot kita mengonversi GBP menjadi JPY dan kemudian mengeksekusi order pasar baru menggunakan nilai yang dihitung sebagai volume order.

 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");
        }


    }
}

Jika kita melihat log, kita dapat melihat bahwa cBot kita berperilaku sesuai harapan. Pada saat instance dimulai, harga bid untuk GBPJPY sama dengan 159,619.

Konversi mata uang dalam backtesting

cTrader sepenuhnya mendukung nilai konversi historis dalam backtesting.

Ini berarti bahwa, ketika Anda melakukan backtesting cBot yang menggunakan salah satu metode yang dijelaskan di atas, perhitungan konversi akan dilakukan menggunakan data yang akurat secara historis daripada nilai tukar saat ini antara aset yang ditentukan. Fitur ini memastikan bahwa hasil backtesting dan optimisasi seakurat mungkin mengingat kondisi pasar masa lalu.

Perhatikan bahwa cTrader dapat membangun rantai konversi yang akurat menggunakan instrumen trading yang berpotensi tidak terbatas. Akibatnya, bahkan jika mata uang deposit akun Anda berbeda dari aset dasar atau kuotasi simbol tempat Anda ingin melakukan backtesting, cTrader akan menangani semua perhitungan yang diperlukan untuk memberikan hasil backtesting yang tepat.

Singkatnya, nilai konversi merupakan alat berharga lainnya untuk memastikan bahwa cBot dan indikator Anda bekerja persis seperti yang diharapkan. Karena cTrader mendukung penggunaan data historis saat mengonversi aset dalam backtesting, Anda dapat yakin bahwa semua hasil backtesting dan optimisasi akurat secara historis.