Langkau tajuk talian

Penukar mata wang

Dalam dagangan algoritma, memberikan cBot dan indikator keupayaan untuk menukar mata wang secara autonomi menggunakan kadar pasaran semasa adalah penting. Dalam panduan API ini, kami meliputi bagaimana ciri ini dilaksanakan dalam cTrader.

Penukaran mata wang dalam satu minit!

  • Kaedah Convert (double value, Asset from, Asset to dan Convert(double value, string from, string to)) mengembalikan kadar penukaran tepat antara aset yang ditentukan atau aset dengan nama yang ditentukan. Akses kaedah ini melalui sifat AssetConverter baharu daripada kelas Algo.
  • Kelas Asset termasuk kaedah Convert(Asset to, double value) dan Convert(string to, double value) sendiri yang boleh dipanggil dengan mudah daripada mana-mana objek Asset.
  • Semasa ujian belakang, cTrader akan menggunakan kadar penukaran sejarah secara automatik. Ini bermakna anda sentiasa boleh menjangkakan keputusan yang tepat secara sejarah dan menilai prestasi cBot anda sepenuhnya.

Bagaimana penukaran mata wang berfungsi

Antara muka IAssetConverter dalam ruang nama cAlgo.API.Internals mengandungi kaedah Convert() yang mempunyai beban lebih berikut:

  • double Convert(double value, Asset from, Asset to) - menukar nilai yang ditentukan daripada aset from kepada aset to.
  • double Convert(double value, string from, string to) - menukar nilai yang ditentukan daripada aset yang namanya sepadan dengan rentetan from kepada aset yang namanya sepadan dengan rentetan to.

Kelas Algo kini termasuk sifat AssetConverter daripada jenis IAssetConverter. Anda boleh mengakses dua kaedah di atas dengan menaip yang berikut.

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

Kelas Asset juga mempunyai kaedah Convert() sendiri dengan beban lebih berikut:

  • double Convert(Asset to, double value) - menukar nilai yang ditentukan daripada aset yang kaedah ini dipanggil kepada aset to.
  • double Convert(string to, double value) - menukar nilai yang ditentukan daripada aset yang kaedah ini dipanggil kepada aset yang namanya sepadan dengan rentetan to.

Pertimbangkan contoh di bawah di mana cBot kita menukar GBP kepada JPY dan kemudian melaksanakan pesanan pasaran baharu menggunakan nilai yang dikira sebagai volum pesanan.

 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 boleh melihat bahawa cBot kita berkelakuan seperti yang dijangkakan. Pada masa apabila contoh dimulakan, harga bida untuk GBPJPY adalah sama dengan 159.619.

Penukaran mata wang dalam ujian belakang

cTrader menyokong sepenuhnya kadar penukaran sejarah dalam ujian belakang.

Ini bermakna bahawa, apabila anda menguji belakang cBot yang menggunakan mana-mana kaedah yang diterangkan di atas, pengiraan penukaran akan dilakukan menggunakan data yang tepat secara sejarah dan bukannya kadar pertukaran semasa antara aset yang ditentukan. Ciri ini memastikan bahawa keputusan ujian belakang dan pengoptimuman adalah setepat mungkin berdasarkan keadaan pasaran masa lalu.

Perhatikan bahawa cTrader boleh membina rantaian penukaran yang tepat menggunakan instrumen dagangan yang berpotensi tidak terhad. Hasilnya, walaupun jika mata wang deposit akaun anda berbeza daripada aset asas atau sebut harga simbol yang anda ingin lakukan ujian belakang, cTrader akan mengendalikan semua pengiraan yang diperlukan untuk memberikan anda keputusan ujian belakang yang tepat.

Secara ringkasnya, kadar penukaran merupakan alat berharga yang lain untuk memastikan bahawa cBot dan indikator anda berfungsi tepat seperti yang dijangkakan. Oleh kerana cTrader menyokong penggunaan data sejarah apabila menukar aset dalam ujian belakang, anda boleh yakin bahawa semua keputusan ujian belakang dan pengoptimuman adalah tepat secara sejarah.