Langkau tajuk talian

Cara membuat plugin bingkai tersuai

Pedagang sering berusaha untuk menyimpan laman web dengan maklumat dagangan dan analisis teknikal yang penting sedekat mungkin dengan carta. Plugin membolehkan mereka mencapai ini melalui bingkai tersuai.

Dalam artikel ini dan video yang berkaitan, kami akan menunjukkan kepada anda cara membuat bingkai tersuai yang boleh menempatkan laman web dan kotak teks menggunakan plugin.

Buat bingkai tersuai yang menunjukkan laman web

Kami akan membuat bingkai tersuai di kawasan carta untuk menempatkan laman web.

Pergi ke aplikasi Algo dan tukar ke tab Plugin. Klik butang Baharu untuk membuat plugin baharu. Tandakan pilihan Kosong. Berikan nama kepada plugin anda, seperti "Contoh Bingkai Tersuai Saya", dan klik butang Buat.

Apabila editor kod muncul, mulakan objek WebView.

1
_cTraderWebView = new WebView();

Langgan acara WebView dimuatkan.

1
_cTraderWebView.Loaded += _cTraderWebView_Loaded;

Tetapkan Forum cTrader sebagai laman web dalam WebView apabila ia dimuatkan.

1
2
3
4
private void _cTraderWebView_Loaded(WebViewLoadedEventArgs args) 
{
    _cTraderWebView.NavigateAsync("https://ctrader.com/forum");
}

Mulakan bingkai carta tersuai.

1
var webViewFrame = ChartManager.AddCustomFrame("Forum");

Tetapkan WebView sebagai anak kepada bingkai carta tersuai.

1
webViewFrame.Child = _cTraderWebView;

Tetapkan bingkai carta tersuai kepada mod berbilang carta.

1
webViewFrame.ChartContainer.Mode = ChartMode.Multi;

Lampirkannya pada carta.

1
webViewFrame.Attach();

Anda boleh menyalin kod penuh di bawah:

 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 cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Plugins
{
    [Plugin(AccessRights = AccessRights.None)]
    public class MyCustomFrameExample : Plugin
    {

        WebView _cTraderWebView = new WebView();

        protected override void OnStart()
        {
            _cTraderWebView.Loaded += _cTraderWebView_Loaded;
            var webViewFrame = ChartManager.AddCustomFrame("Forum");
            webViewFrame.Child = _cTraderWebView;
            webViewFrame.ChartContainer.Mode = ChartMode.Multi;
            webViewFrame.Attach();
        }

        private void _cTraderWebView_Loaded(WebViewLoadedEventArgs args)
        {
            _cTraderWebView.NavigateAsync("https://ctrader.com/forum");
        }

        protected override void OnStop()
        {
            // Handle Plugin stop here
        }
    }        
}

Untuk membina plugin kita, gunakan kekunci pintas Ctrl+B atau klik butang Bina.

Untuk melihat hasilnya, pergi ke aplikasi Dagangan. Dalam kes kami, laman web Forum cTrader kini dipaparkan dalam bingkai tersuai kami di kawasan carta.

Urus bingkai tersuai

Bingkai tersuai yang menempatkan laman web Forum cTrader boleh diurus seperti mana-mana bingkai carta dalam cTrader. Ia boleh dipisahkan dan dilampirkan semula ke kawasan carta, diubah saiz, ditukar atau digantikan dengan carta lain.

Tukar URL laman web

Kami akan menggantikan laman web Forum cTrader dengan laman web lain.

Kembali ke aplikasi Algo dan edit kod plugin. Gantikan URL Forum cTrader ("https://ctrader.com/forum") dengan URL Spotware ("https://www.spotware.com").

Ini sepatutnya menjadi baris kod yang terhasil:

1
_cTraderWebView.NavigateAsync("https://www.spotware.com");

Bina plugin sekali lagi dan pergi ke aplikasi Dagangan untuk melihat perubahan. Laman web Spotware kini dipaparkan pada bingkai tersuai.

Tambah berbilang bingkai

Kami akan mengemaskini kod plugin untuk menambah dua bingkai tersuai, setiap satu memaparkan laman web. Tambah objek WebView baharu dan ulang langkah-langkah kod dan baris dari contoh sebelumnya.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
WebView _cTraderWebView = new WebView();
WebView _cTraderWebViewSite = new WebView();

_cTraderWebViewSite.Loaded += _cTraderWebViewSite_Loaded;
var webViewFrameSite = ChartManager.AddCustomFrame("Site");
webViewFrameSite.Child = _cTraderWebViewSite;
webViewFrameSite.ChartContainer.Mode = ChartMode.Multi;
webViewFrameSite.Attach();

private void _cTraderWebViewSite_Loaded(WebViewLoadedEventArgs args)
{
    _cTraderWebViewSite.NavigateAsync("https://www.spotware.com");
}

Anda boleh menyalin kod penuh di bawah:

 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
35
36
37
38
39
40
41
42
43
44
45
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Plugins
{
    [Plugin(AccessRights = AccessRights.None)]
    public class MyCustomFrameExample : Plugin
    {
        WebView _cTraderWebView = new WebView();
        WebView _cTraderWebViewSite = new WebView();

        protected override void OnStart()
        {
            _cTraderWebView.Loaded += _cTraderWebView_Loaded;
            var webViewFrame = ChartManager.AddCustomFrame("Forum");
            webViewFrame.Child = _cTraderWebView;
            webViewFrame.ChartContainer.Mode = ChartMode.Multi;
            webViewFrame.Attach();

            _cTraderWebViewSite.Loaded += _cTraderWebViewSite_Loaded;
            var webViewFrameSite = ChartManager.AddCustomFrame("Site");
            webViewFrameSite.Child = _cTraderWebViewSite;
            webViewFrameSite.ChartContainer.Mode = ChartMode.Multi;
            webViewFrameSite.Attach();
        }

        private void _cTraderWebView_Loaded(WebViewLoadedEventArgs args)
        {
           _cTraderWebView.NavigateAsync("https://www.ctrader.com/forum");
        }

        private void _cTraderWebViewSite_Loaded(WebViewLoadedEventArgs args)
        {
           _cTraderWebViewSite.NavigateAsync("https://www.spotware.com");
        }

        protected override void OnStop()
        {
            // Handle Plugin stop here
        }
    }        
}

Bina plugin. Apabila anda kembali ke aplikasi Algo, anda sepatutnya melihat dua laman web (Forum cTrader dan Spotware) dalam bingkai individu.

Buat kotak teks

Selain bingkai carta yang menempatkan laman web, plugin membolehkan anda menambah bingkai tersuai yang mengandungi objek lain. Contohnya, anda boleh menambah bingkai yang menempatkan kotak teks.

Buang semua baris kod WebView dan tambah baris-baris berikut untuk kotak teks sebaliknya:

1
2
3
4
5
6
7
8
9
var webViewFrame = ChartManager.AddCustomFrame("Hello World");

var txtHelloWorld = new TextBlock
{
    Text = "Hello World"
};
webViewFrame.Child = txtHelloWorld;
webViewFrame.ChartContainer.Mode = ChartMode.Single;
webViewFrame.Attach();

Anda boleh menyalin kod penuh di bawah.

 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
using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Plugins
{
    [Plugin(AccessRights = AccessRights.None)]
    public class MyCustomFrameExample : Plugin
    {
        protected override void OnStart()
        {
            var webViewFrame = ChartManager.AddCustomFrame("Hello World");

            var txtHelloWorld = new TextBlock
            {
                Text = "Hello World"
            };

            webViewFrame.Child = txtHelloWorld;
            webViewFrame.ChartContainer.Mode = ChartMode.Single;
            webViewFrame.Attach();
        }

        protected override void OnStop()
        {
            // Handle Plugin stop here
        }
    }        
}

Bina plugin dan lihat hasilnya dalam aplikasi Dagangan. Kali ini, anda sepatutnya melihat kotak dengan teks Hello World di kawasan carta.

Ringkasan

Anda kini sepatutnya mahir menggunakan plugin untuk menggabungkan laman web, kotak teks dan elemen berguna lain ke dalam kawasan carta.