انتقل إلى المحتوى

كيفية إنشاء إضافات إطار مخصصة

غالبًا ما يسعى المتداولون للحفاظ على مواقع الويب التي تحتوي على معلومات تداول وتحليل فني مهمة قريبة قدر الإمكان من الرسوم البيانية. تمكنهم الإضافات من تحقيق ذلك من خلال الإطارات المخصصة.

في هذا المقال والفيديو المصاحب له، سنوضح لك كيفية إنشاء إطارات مخصصة يمكنها استضافة مواقع الويب ومربعات النصوص باستخدام إضافة.

إنشاء إطار مخصص يعرض موقع ويب

سنقوم بإنشاء إطار مخصص في منطقة الرسوم البيانية لاستضافة موقع ويب.

انتقل إلى تطبيق Algo وقم بالتبديل إلى علامة التبويب Plugins. انقر على زر New لإنشاء إضافة جديدة. حدد خيار Blank. أعط إضافتك اسمًا، مثل "My Custom Frame Example"، وانقر على زر Create.

عند ظهور محرر الكود، قم بتهيئة كائن WebView.

1
_cTraderWebView = new WebView();

اشترك في حدث تحميل WebView.

1
_cTraderWebView.Loaded += _cTraderWebView_Loaded;

قم بتعيين منتدى cTrader كموقع ويب في WebView عند تحميله.

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

قم بتهيئة إطار رسم بياني مخصص.

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

قم بتعيين WebView كعنصر فرعي للإطار الرسم البياني المخصص.

1
webViewFrame.Child = _cTraderWebView;

قم بتعيين الإطار الرسم البياني المخصص إلى وضع الرسم البياني المتعدد.

1
webViewFrame.ChartContainer.Mode = ChartMode.Multi;

قم بإرفاقه بالرسوم البيانية.

1
webViewFrame.Attach();

يمكنك نسخ الكود الكامل أدناه:

 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
        }
    }        
}

لبناء إضافتنا، استخدم مفاتيح الاختصار Ctrl+B أو انقر على زر Build.

لعرض النتائج، انتقل إلى تطبيق Trade. في حالتنا، يتم الآن عرض صفحة ويب منتدى cTrader في إطارنا المخصص في منطقة الرسوم البيانية.

إدارة الإطار المخصص

يمكن إدارة الإطار المخصص الذي يستضيف موقع ويب منتدى cTrader مثل أي إطار رسم بياني في cTrader. يمكن فصله وإعادة إرفاقه بمنطقة الرسم البياني، وتغيير حجمه، وتبديله أو استبداله برسوم بيانية أخرى.

تغيير عنوان URL لموقع الويب

سنقوم باستبدال موقع ويب منتدى cTrader بصفحة ويب أخرى.

عد إلى تطبيق Algo وقم بتحرير كود الإضافة. استبدل عنوان URL لمنتدى cTrader (https://ctrader.com/forum) بعنوان URL لـ Spotware (https://www.spotware.com).

يجب أن يكون هذا هو سطر الكود الناتج:

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

قم ببناء الإضافة مرة أخرى وانتقل إلى تطبيق Trade لعرض التغييرات. يتم الآن عرض موقع ويب Spotware على الإطار المخصص.

إضافة إطارات متعددة

سنقوم بتحديث كود الإضافة لإضافة إطارين مخصصين، كل منهما يعرض موقع ويب. أضف كائن WebView جديد وكرر خطوات الكود والأسطر من المثال السابق.

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

يمكنك نسخ الكود الكامل أدناه:

 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
        }
    }        
}

قم ببناء الإضافة. عند العودة إلى تطبيق Algo، يجب أن ترى موقعي ويب (منتدى cTrader و Spotware) في إطارات فردية.

إنشاء مربع نص

بالإضافة إلى إطارات الرسم البياني التي تستضيف صفحات الويب، تتيح لك الإضافات إضافة إطارات مخصصة تحتوي على كائنات أخرى. على سبيل المثال، يمكنك إضافة إطار يحتوي على مربع نص.

قم بإزالة جميع أسطر كود WebView وأضف الأسطر التالية لمربع النص بدلاً من ذلك:

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();

يمكنك نسخ الكود الكامل أدناه.

 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
        }
    }        
}

قم ببناء الإضافة وعرض النتائج في تطبيق Trade. هذه المرة، يجب أن ترى مربعًا يحتوي على نص Hello World في منطقة الرسوم البيانية.

الملخص

يجب أن تكون الآن بارعًا في استخدام الإضافات لدمج صفحات الويب ومربعات النصوص وعناصر مفيدة أخرى في منطقة الرسم البياني.