Ana içeriğe geç

Custom Window Plugin

Genel Bakış

Custom Window Plugin, aşağıdaki temel işlevler aracılığıyla kullanıcı girişine dayalı eylemleri tetiklemek için cTrader'da basit bir arayüz oluşturur:

  • İşlem çalışma alanının yanında özel bir görsel bileşen görüntülemek için cTrader platformunda bir pencere arayüzü oluşturur.
  • Eylemleri manuel olarak başlatmak için kullanıcı etkileşimi için bir düğme ekler.
  • Düğme tıklamasında önceden tanımlanmış mantığı tetikler, işlem görevlerinin tutarlı bir şekilde ele alınmasını sağlar.
  • Belirlenen koşullara göre açık pozisyonları günceller, değişiklikleri yalnızca belirli kriterler karşılandığında uygular.

Eklenti, tüm açık pozisyonlarınızda belirli bir eylemi gerçekleştirebileceğiniz bir pencere ekler. Bu, her bir pozisyonu ayrı ayrı değiştirmek zorunda kalmadan aynı kuralı tüm pozisyonlara aynı anda uygulamanıza olanak tanıyarak manuel işlem yapmaya yardımcı olur.

Eklenti oluşturma

Adım adım rehberlerimizde C# veya Python kullanarak eklentiler oluşturmayı öğrenin.

Custom Window eklenti kodu, herkese açık C# ve Python depolarımızda mevcuttur. Aynı kod, cTrader Windows veya Mac'teki algoritma oluşturma sihirbazında bir şablon olarak sağlanmıştır veya aşağıdaki kod parçasını kopyalayıp kullanabilirsiniz:

 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
46
47
48
49
50
51
52
53
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 CustomWindowPlugin : Plugin
    {
        private Button _buttonAddTakeProfit;
        private Window _window;

        protected override void OnStart()
        {
            _buttonAddTakeProfit = new Button
            {
                BackgroundColor = Color.SeaGreen,
                Height = 50,
                Text = "Add Take Profit"
            };

            _buttonAddTakeProfit.Click += _buttonAddTakeProfit_Click;

            _window = new Window
            {
                Height = 150,
                Width = 150,
                Padding = new Thickness(5, 10, 10, 5)
            };

            _window.Child = _buttonAddTakeProfit;
            _window.Show();
        }

        private void _buttonAddTakeProfit_Click(ButtonClickEventArgs args)
        {
            foreach (var position in Positions)
            {
                if (position.TakeProfit is null)
                {
                    position.ModifyTakeProfitPips(20);
                }
            }
        }        

        protected override void OnStop()
        {
            // Handle Plugin stop here
        }
    }        
}
 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
import clr
clr.AddReference("cAlgo.API")

from cAlgo.API import *

class ShowWindowSample():
    def on_start(self):
        addTakeProfitButton = Button()
        addTakeProfitButton.BackgroundColor = Color.SeaGreen
        addTakeProfitButton.Height = 50
        addTakeProfitButton.Text = "Add Take Profit"
        addTakeProfitButton.Click += self.on_add_take_profit_button_click

        window = Window()
        window.Height = 150
        window.Width = 150
        window.Padding = Thickness(5, 10, 10, 5)

        window.Child = addTakeProfitButton;
        window.Show();

    def on_add_take_profit_button_click(self, args):
        for position in api.Positions:
            if position.TakeProfit is None:
                position.ModifyTakeProfitPips(20)

Özelleştirme seçenekleri

Parametre Açıklama Olası değerler
_buttonAddTakeProfit.Text Düğmede görüntülenen metin etiketini ayarlar. Add take profit
_buttonAddTakeProfit.Height Penceredeki düğmenin yüksekliğini belirtir. 50, 60, 65, vb.
_buttonAddTakeProfit.BackgroundColor Düğmenin arka plan rengini ayarlar. color.seagreen
_buttonAddTakeProfit.Click Düğmeye tıklandığında bir olayı tetikler. _buttonaddtakeprofit_click
_window.Height Pencerenin yüksekliğini ayarlar. 150, 200, 220, vb.
_window.Width Pencerenin genişliğini ayarlar. 150, 200, 220, vb.
_window.Padding Pencerenin içindeki alt içeriği çevreleyen boşluğu tanımlar. (5, 10, 10, 5), (8, 12, 12, 8), vb.
_window.Child Düğmeyi pencerenin içindeki içerik olarak atar. _buttonaddtakeprofit
position.TakeProfit Bir pozisyonun zaten bir kâr al ayarı olup olmadığını kontrol eder. null
position.ModifyTakeProfitPips Kâr al seviyesini sabit bir pip değerine ayarlayarak değiştirir. 20, 24, 26, vb.

Kullanım durumları

Kullanım durumu Senaryo Değer
Toplu kâr al ayarlayıcı Kâr al seviyesi olmayan birden fazla açık pozisyonunuz var. 20 piplik bir kâr al seviyesi ekleme gibi tekrarlayan görevi otomatikleştirir.
Reaktif işlem yöneticisi Piyasa hızla hareket ediyor ve kârları anında korumanız gerekiyor. Tek tıklamayla pozisyonlara kâr al uygular.
Toplu zarar durdur ayarlayıcı Açık pozisyonlarınıza hızlıca 20 piplik bir zarar durdur uygulamak istiyorsunuz. Her işlemi ayrı ayrı düzenlemeden tutarlı risk kontrolleri ayarlar.

Özet

Custom Window Plugin, kâr al seviyesi olmayan tüm açık pozisyonlara hızlıca 20 piplik bir kâr al seviyesi uygulamanıza olanak tanıyarak manuel işlem yapmayı geliştirir. Tek bir eylem düğmeli basit bir kayan arayüz aracılığıyla, işlem yönetimine hız ve tutarlılık getirir.

Daha fazla geliştirme ayrıntısı için eklenti belgelerimize bakın.