ChatGPT aracılığıyla cBot nasıl oluşturulur
Üretken yapay zeka yükselişte ve tek bir kod satırı yazmak zorunda kalmadan bir cBot oluşturmak artık bir hayal değil, bir gerçeklik. Bu makalede ve ilgili videosunda, ChatGPT kullanarak nasıl bir cBot oluşturabileceğinizi göstereceğiz. Ayrıca, ChatGPT tarafından sağlanan cBot kodunu nasıl değerlendirebileceğinizi ve yapay zeka tarafından oluşturulan botunuzun sadece birkaç dakika içinde çalışır durumda olduğundan nasıl emin olabileceğinizi de göstereceğiz.
Doğru istemi oluşturun
Bu videonun amaçları doğrultusunda GPT-3.5 modelini kullanacağız. Herkese ücretsizdir ve daha yeni GPT modellerine kıyasla özellik eksikliklerine rağmen harika sonuçlar üretir.
ChatGPT ile harika bir cBot oluşturmanın ilk adımı doğru istemi yazmaktır. İyi bir istemi oluşturan birkaç kural aşağıdadır:
1. ChatGPT'yi profesyonel bir cBot geliştiricisi rolünü üstlenmeye teşvik edin.
Bunu, "cTrader için nitelikli bir algoritmik işlem geliştiricisi olduğunuz bir oyun oynayalım..." veya "cTrader için profesyonel bir cBot geliştiricisi gibi davranın..." gibi kelimelerle bir başlangıç istemi yazarak başarabilirsiniz.
2. Spesifik olun.
ChatGPT'ye ne kadar çok ayrıntı verirseniz o kadar iyi olur. Bana kârlı bir cBot oluştur... gibi istemler yapay zeka tarafında çok fazla kafa karışıklığına yol açacaktır.
cBot'unuzun her bir bölümünü mümkün olduğunca hassas bir şekilde belirtmenizi öneririz. Hangi parametrelere sahip olması gerektiğini, hangi koşullara tepki vermesi gerektiğini ve hangi işlem operasyonlarını gerçekleştirmesi gerektiğini düşünün. Bir özel işlem paneli oluşturuyorsanız, hangi kullanıcı arayüzü (UI) öğelerine sahip olması gerektiğini ve bunların nereye yerleştirilmesi gerektiğini düşünün.
3. Kibar ve saygılı olun.
Bu şaşırtıcı gelebilir ancak araştırmalar, ChatGPT'ye karşı kibar olmanın çıktı kalitesini artırdığını göstermiştir. Şunu yaparsanız minnettar olurum..., "Şu olursa güzel olur..." veya benzeri ifadeler ekleyin.
Renk bazlı işlem yapan bir cBot oluşturun
Başlangıç olarak, her çubuk açılışında yeni bir piyasa emri veren basit bir cBot oluşturmak istiyoruz. Emrin yönü, önceki çubuğun yeşil mi yoksa kırmızı mı olduğuna bağlıdır. Çubuk kırmızıysa bir satış emri, yeşilse bir alış emri vermek istiyoruz.
İşte doğru istemleri sağlayarak bunu nasıl yapabileceğimiz.
- Başlangıç cümlesi: "cTrader için profesyonel bir cBot geliştiricisi gibi davranın, çok basit ve anlaşılır kod yazın."
- Spesifik gereksinimler: "Bir cBot oluşturun. Her çubukta, koruma mekanizması olmayan yeni bir piyasa emri vermelidir. Emir hacmi (birim cinsinden) özelleştirilebilir bir parametre olmalıdır. Önceki çubuk yeşilse bir alış emri verilmelidir. Önceki çubuk kırmızıysa bir satış emri verilmelidir."
- Nezaket: "Bu görevi yaparsanız gerçekten minnettar olurum, teşekkür ederim!"
ChatGPT'nin çıktı verdiği kod farklılık gösterebilir ancak her durumda, doğru olup olmadığını ve istediğimiz mantığı uygulayıp uygulamadığını görmek için kod düzenleyici penceresine kopyalayıp yapıştırabiliriz.
Genellikle, düzeltilmesi gereken sadece birkaç kritik olmayan hata vardır. Bizim durumumuzda, düzeltilmesi gereken tek şey ExecuteMarketOrder yöntemindeki Symbol nesnesini SymbolName dizesiyle değiştirmekti. Tüm bunları yaptıktan sonra elde ettiğimiz son kod aşağıdadır.
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 | |
Her zamanki gibi, botu kaydedip derliyoruz. İşlem uygulamasında, botun örneğini bir grafiğe ekliyor ve beklendiği gibi çalışıp çalışmadığını görüyoruz. Bot kusursuz çalışıyor ve geçmiş çubukların rengine yeni emirler vererek tepki veriyor. Emir hacmi de özelleştirilebilir bir parametredir.
Not
ChatGPT tarafından çıktı verilen kodu okumamıza bile gerek kalmadığını unutmayın. Kod düzenleyicide görüntülenen her uyarıyı düzelttik ve ardından botu başlattık.
Trend bazlı işlem yapan bir cBot oluşturun
Önceki cBot harika çalışsa da, basit bir mantık kullanıyordu ve piyasa trendlerine dikkat etmiyordu. Daha önce olduğu gibi aynı istem yaklaşımını kullanarak daha karmaşık bir şey oluşturmaya çalışacağız.
- Başlangıç cümlesi: "cTrader için yetenekli bir cBot geliştiricisi olduğunuzu hayal edelim. Ben sizin müşteriniz olacağım."
- Spesifik gereksinimler: "Bir cBot oluşturun. Her çubukta, 50 günlük Moving Average'ın 200 günlük Moving Average'ın üstünde mi yoksa altında mı olduğunu kontrol etmelidir. Üstündeyse, bot bir alış emri vermelidir. Altındaysa, bot bir satış emri vermelidir. Aynı yönde açık bir pozisyon zaten varsa bot emir vermemelidir. Emir hacmi özelleştirilebilir bir parametre olmalıdır."
- Nezaket: "Yardımınız için teşekkür ederim!"
Bir kez daha, ChatGPT tarafından bize verilen kodu kod düzenleyici penceresine kopyalayıp yapıştıracak ve botu derlemeye çalışacağız. İşte aldığımız tüm derleme hataları:
- Kod, güncel olmayan
MarketSeriesAPI üyesini kullanıyor. BunuBars.ClosePriceskoleksiyonuyla değiştirebiliriz. Symbolargümanını bir kez dahaSymbolNameile değiştirmemiz gerekiyor.- Ayrıca
ExecuteMarketOrderyöntemlerinden bazı gereksiz argümanları silmeliyiz çünkü bunlar mevcut yöntem aşırı yüklemelerinden hiçbirine uymuyor.
Mantığımızın nasıl gerçekleştirildiğine de bakabiliriz. OnStart() yönteminde, Moving Averages'ımızı başlatıyoruz. ChatGPT, biz istemesek bile Moving Average dönemlerini özelleştirilebilir parametreler olarak belirledi. Temel mantığı etkilemeden olduğu gibi bırakabiliriz.
Ancak OnBar() yönteminde, botun yalnızca açık pozisyon olmadığında (Positions.Count ==0) yeni emirler verdiğini görebiliriz. Bu istediğimiz şey değil çünkü pozisyon yönünü de kontrol etmek istiyoruz. Kodu biraz değiştirerek aşağıdaki botu elde edebiliriz.
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 | |
Belirli bir etikete sahip tüm pozisyonları almak ve sayılarını hesaplamak için Positions.FindAll(string label) yöntemini kullandık.
Botu derlediğimizde, bir grafiğe ekleyebiliriz. cBot davranışlarını değerlendirebilmek için 50 ve 200 günlük Moving Averages da ekleyeceğiz. Biraz bekledikten sonra, botun beklendiği gibi çalıştığını görebiliriz. Gerektiğinde yeni emirler verilir, ancak belirli bir yönde birden fazla açık pozisyon bulunmaz.
Başka bir yapay zeka kullanarak cBot oluşturun
Özet
ChatGPT, hassas bir şekilde tanımlanmış mantığa sahip bir cBot'u hızlı bir şekilde oluşturmanız gerektiğinde değerli bir araç olabilir. ChatGPT bazı hatalar üretse de, bunlar genellikle önemsizdir ve hızlı bir şekilde düzeltilebilir.
