Pratik kılavuz: Güçlendirmeli öğrenme, ticareti ve yatırımı daha akıllı hale getirir (ayrıntılı eğitim dahil)

Tam metin 12845 Kelimeler, tahmini öğrenme süresi 37 dakika

Kaynak: Pexels

İster yüksek bahisli poker maçlarında ister "StarCraft" maçlarında birinci sınıf oyunculara karşı olsun, yapay zeka makineleri çok şey kazandı ve Tesla'nın gelecekteki spor arabalarını sürmek de kolay. Peki ortak yönleri ne? Her zaman, makinelerin bu son derece karmaşık görevleri yerine getiremeyeceğine inanılıyordu. Bugüne kadar, derin pekiştirmeli öğrenmede kaydedilen en son ilerleme, tüm bunların mümkün olduğunu göstermektedir.

Pekiştirmeli öğrenme dünyaya hâkim olmaya başladı.

Resim kaynağı: https://deepmind.com/blog/arti

İki aydan daha uzun bir süre önce, bu büyük değişikliğe katılmaya karar verdim, bu yüzden karlı bir Bitcoin ticaret stratejisi oluşturmak için en gelişmiş derin güçlendirme öğrenme algoritmasını kullanmaya başladım. Bu alanda önemli ilerlemeler kaydetmiş olsam da, bu tür projelerde kullanılan araçların engelleyici olabileceğini ve detaylarda kaybolmanın kolay olduğunu anlıyorum.

Önceki dağıtılmış yüksek performanslı bilgi işlem (HPC) sistem projelerini optimize ediyordum ve sonsuz veri ve özellik optimizasyonu konusunda kafam karıştı; Ayrıca verimli modelleri nasıl oluşturacağımı, ayarlayacağımı, eğiteceğimi ve değerlendireceğimi düşünüyorum. Böylece daha iyi bir yol bulunması gerektiğini anladım. Mevcut projeleri araştırmak, PyData konuşmalarını izlemek ve RLTrading Discord topluluğunun yüzlerce üyesiyle birçok kez etkileşimde bulunmak için çok zaman harcadıktan sonra, mevcut çözümlerin hiçbirinin mükemmel olmadığını fark ettim.

İnternette birçok parçalı pekiştirmeli öğrenim ticaret sistemi olmasına rağmen, hepsi istikrarsızdır ve mükemmel değildir. Bu amaçla, herhangi bir ticaret stratejisini bir fikirden pratik bir uygulamaya dönüştürmek için derin pekiştirmeli öğrenmeyi etkili bir şekilde kullanmak için açık kaynaklı bir Python çerçevesi oluşturmaya karar verdim.

TensorTrade böyle doğdu. Etkili pekiştirmeli öğrenme ticaret stratejilerini modüler ve sürdürülebilir bir şekilde oluşturmak için oldukça modüler bir çerçeve oluşturmayı amaçlamaktadır. Bu kulağa çok fazla jargon gibi geliyor. Şimdi konuya geçelim.

içindekiler

Özet

· Pekiştirmeli Öğrenmeye Giriş

· Başlangıç

· Kurulum

TensorTrade bileşenleri

· Ticaret ortamı

· Fatura Dönüşümü

· Özellik Kanalı

· Eylem stratejisi

· Ödül stratejisi

· Öğrenme Aracısı

· Kararlı taban çizgisi

· Tensorforce

· Ticaret tuhaflığı

Özet

· Ortam oluştur

· Bir temsilci seçin

· Eğitim stratejisi

Kaydet ve geri yükle

· Stratejiyi ayarlayın

· Strateji Değerlendirmesi

· Gerçek zamanlı ticaret

olasılık

· Sonuç

· Teşekkürler

· Referanslar

1. Özet

TensorTrade, derin takviye öğrenme yoluyla sağlam ticaret stratejilerini eğitebilen, değerlendirebilen ve uygulayabilen açık kaynaklı bir Python çerçevesidir. Çerçeve, sistemin tek bir CPU üzerinde basit bir ticaret stratejisinden HPC makine dağıtımında çalışan karmaşık bir yatırım stratejisine kadar genişlemesine izin vererek, yüksek derecede bir araya getirilebilirlik ve ölçeklenebilirliğe odaklanır.

Bu çerçeve altında TensorTrade, yüksek kaliteli veri ardışık düzenlerini ve öğrenme modellerini korumak için mevcut birçok makine öğrenimi kitaplığındaki API'leri kullanır. Temel hedeflerinden biri, algoritmik ticaret stratejilerini hızlı bir şekilde test etmek için numpy, pandas, gym, keras ve tensorflow tarafından sağlanan mevcut araçları ve boru hatlarını kullanmaktır.

Çerçevenin her bölümü yeniden kullanılabilir bileşenlere ayrıştırılabilir ve topluluk tarafından oluşturulan ortak bileşenler, özel özelliklerin gizliliği korunurken kullanılabilir. Amacı, güçlü ticaret aracılarını test etmek ve dağıtmak için derin takviye öğrenimi kullanma sürecini basitleştirmektir, böylece hem siz hem de ben karlı stratejiler oluşturmaya odaklanabilirsiniz.

1.1 Pekiştirmeli Öğrenmeye Giriş

Pekiştirmeli öğrenmeye aşina değilseniz, temel kavramları hızlıca gözden geçirebilirsiniz.

Takviyeli Öğrenme (RL), makine öğreniminin bir araştırma alanıdır ve kümülatif getirileri en üst düzeye çıkarmak için yazılım aracılarının bir ortamda nasıl çalıştığına odaklanır.

Her pekiştirmeli öğrenme problemi, bir ortamla ve bu çevre ile etkileşime girebilen bir veya daha fazla aracı ile başlar.

Bu teknolojinin temeli 1950'lerde Markov Karar Süreci'ne (MDP) kadar izlenebilir.

Temsilci önce ortamı gözlemleyecek ve ardından ortamın mevcut durumuna ve işlemin beklenen değerine dayalı bir model oluşturacaktır. Temsilci, bu modeli temel alarak, beklenen en yüksek değere sahip olduğuna inandığı eylemi gerçekleştirecektir.

Seçilen işlemin ortamdaki etkisine göre, temsilci, işlemin gerçek değerine karşılık gelen bir ödül alacaktır. Daha sonra, pekiştirmeyi öğrenen kişi, temel modelini bir deneme yanılma süreciyle (yani, pekiştirme yoluyla) geliştirebilir ve gelecekte nasıl daha fazla ödül alacağını öğrenebilir.

Yeni bir içerik öğrenmek istiyorsanız, bu makalenin referanslarında "Derin Pekiştirmeli Öğrenmeye Giriş" bağlantısını bulabilirsiniz Bu makale daha ayrıntılı ayrıntılara sahiptir.

1.2 Başlarken

Aşağıdaki eğitimler, basit ticaret stratejileri oluşturmak için TensorTrade kullanmayı öğretmek için yeterli örnekler sağlayacaktır. Ancak yakında, çerçevenin daha karmaşık yapılandırmalarla başa çıkabileceğini bileceksiniz.

Google Colab veya Github'daki eğiticilere de başvurabilirsiniz.

1.3 Kurulum

TensorTrade kurulumu Python 3.5 ve üstü gerektirir, bu nedenle pip ile kurulum yapmadan önce lütfen kullandığınız sürümün geçerli olduğundan emin olun.

pipinstall tensortrade

Öğreticinin tamamını tamamlamak için, bazı ek aksesuarlar yüklemeniz gerekir.

tensorflow, tensorforce, kararlı taban çizgileri, ccxt, TA-lib,

Hem de

stokastik.pipinstall tensortrade

Tüm işlevleri kullanmak istiyorsanız, bu web sitesinden de ta-lib uygulamasını yüklemeniz gerekir.

Bunların hepsi gerekli kurulum! İşte kod.

2. TensorTrade bileşeni

TensorTrade, bir ticaret stratejisine entegre edilmiş modüler bileşenler etrafında inşa edilmiştir. Ticaret stratejisi, takviye öğrenme aracılarını bir spor salonu ortamı biçiminde birleşik ticaret mantığı ile birleştirir. Ticaret ortamı, çok çeşitli ticaret ve yatırım stratejileri oluşturmak için karıştırılabilen ve eşleştirilebilen bir dizi modüler bileşenden oluşur. Bu nokta daha sonra açıklanacaktır, ancak şimdilik bu temel bilgileri anlamak yeterlidir.

Elektrik bileşenleri gibi, TensorTrade bileşenlerinin amacı da gerektiği gibi karıştırıp eşleştirebilmektir.

Bu bölümdeki kod segmentinin işlevi, yeni stratejilerin ve yeni bileşenlerin oluşturulmasına rehberlik etmek olmalıdır. Ne kadar çok bileşen tanımlanırsa, aşağıdaki bölümlerde ayrıntıları verilecek olan bazı uygulama ayrıntıları eksik olabilir.

2.1 Ticaret ortamı

Alım satım ortamı, OpenAI'nin gym.Env spesifikasyonuyla uyumlu, birçok mevcut pekiştirmeli öğrenme modelinin alım satım aracılarında kullanılmasına izin veren bir takviye öğrenme ortamıdır.

Alım satım ortamı, yüksek oranda birleştirilebilir InstrumentExchange, FeaturePipeline, eylem stratejileri ve ödül stratejisi bileşenleri içeren, tamamen yapılandırılabilir bir spor salonu ortamıdır.

· InstrumentExchange ortamı gözlemler ve aracı işlemlerini yürütür.

· FeaturePipeline, işlem çıktısını aracıya aktarmadan önce bir dizi daha anlamlı özelliğe dönüştürür.

· Eylem stratejisi, temsilcinin işlemlerini yürütülebilir işlemlere dönüştürür.

· Ödül stratejisi, temsilcinin faydasına göre her zaman adımı için ödülü hesaplar.

Şimdi biraz karmaşık görünüyor, ama aslında çok basit ve hepsi bu. Şimdi sadece bu bileşenleri tek tek eksiksiz ortama uydurmanız gerekiyor.

Ticaret ortamının sıfırlanması çağrıldığında, tüm alt bileşenler de sıfırlanacaktır. Her fatura dönüşümü, özellik kanalı, dönüştürücü, eylem stratejisi ve ödül stratejisinin dahili durumu, bir sonraki bağlantı için hazır olarak varsayılan değere sıfırlanacaktır.

Örnek bir ortamla başlayalım. Daha önce belirtildiği gibi, alım satım ortamını başlatmak bir fatura dönüşümü, bir eylem stratejisi ve bir ödül stratejisi gerektirir ve ayrıca bir özellik kanalı da eklenebilir.

tensortrade.environment adresinden importTradingEnvironmentenvironment = TradingEnvironment (exchange = exchange,

action_strategy = action_strategy,

reward_strategy = reward_strategy,

feature_pipeline = feature_pipeline)

Önerilen kullanım senaryosu, ticaret ortamını ticaret stratejisine eklemek olsa da, ticaret ortamının tek başına kullanılabileceği, ancak spor salonu ortamının da kullanılabileceği açıktır.

2.2 Fatura Dönüşümü (Enstrüman Borsaları)

Senet dönüştürme, işlem ortamında gerçekleştirilebilecek aralığı belirler, gözlem sonuçlarını her adımda işlem ortamına döndürür ve işlemi işlem ortamında yürütür. İki tür ticaret aracı vardır: gerçek zamanlı ticaret ve simüle ticaret.

Gerçek zamanlı ticaret, gerçek zamanlı fiyatlandırma verileri ve gerçek zamanlı işlem yürütme motoruyla desteklenen ticaret araçlarıyla gerçekleştirilir. Örneğin, CCXTExchange, fiyatlandırma verilerini döndürebilen ve yüzlerce gerçek zamanlı kripto para birimi borsasında (Binance ve Coinbase gibi) işlem gerçekleştirebilen gerçek zamanlı bir işlemdir.

tensortrade.exchanges.liveimport CCXTExchangecoinbase = ccxt.coinbasepro () exchange = CCXTExchange (exchange = coinbase, base_instrument = 'USD')

RobinhoodExchange ve InteractiveBrokersExchange gibi hisse senedi ve ETF ticareti için borsalar da var, ancak bunlar hala geliştirme aşamasındadır.

Öte yandan simüle edilmiş ticaret, simüle edilmiş fiyatlandırma verileri ve işlem yürütme ile desteklenen ticaret araçlarıyla gerçekleştirilir.

Örneğin, FBMExchange, fiyatlandırma ve hacim verilerini oluşturmak için Kesirli Brownian Hareketi (FBM) kullanan simüle edilmiş bir işlemdir. Simüle edilen fiyat yalnızca simüle edilmiş ticaret için kullanılır. Ticarette fiyat ve hacmin kaymasını simüle etmek için basit bir kayan model kullanılabilir. TensorTrade'deki tüm durumlarda olduğu gibi, bu sürgülü model daha karmaşık bir modelle kolayca değiştirilebilir.

tensortrade.exchanges.simulated importFBMExchangeexchange = FBMExchange (base_instrument = 'BTC', timeframe = '1h')

FBMExchange sanal fiyat ve hacim verilerini oluşturmak için rastgele modeller kullansa da, bu yalnızca simüle edilmiş işlemlerin gerçekleştirilmesidir. Simüle edilmiş ticaret, bir simülasyon oluşturmak için yalnızca geçmiş fiyatları kaydeden bir data_frame'e ihtiyaç duyar. Bu data_frame, bir kodlama uygulaması (FBMExchange gibi) tarafından sağlanabilir veya çalışma zamanında sağlanabilir (aşağıdaki örnek gibi).

pandaları pdfrom tensortrade.exchanges.simulatedimport olarak içe aktar SimulatedExchangedf = pd.read_csv ('./ data / btc_ohclv_1h.csv') exchange = SimulatedExchange (data_frame = df, base_instrument = 'USD')

2.3 Özellik Boru Hatları

Özellik kanalları, alım satım ortamındaki gözlemleri temsilcilerin öğrenmesi için anlamlı özelliklere dönüştürmek için kullanılır. Kanal belirtilen işleme eklenmişse, gözlem sonucu işlem ortamına çıkmadan önce FeaturePipeline'dan geçecektir. Örneğin, gözlemleri temsilciye geri göndermeden önce, bir özellik kanalı tüm fiyat değerlerini normalleştirebilir, bir zaman serisini değiştirmeden tutabilir, hareketli bir ortalama sütunu ekleyebilir ve gereksiz sütunları silebilir.

Karakteristik kanal, virgülle ayrılmış herhangi bir sayıda dönüştürücü ile başlatılabilir. Her FeatureTransformer, dönüştürülecek sütun ayarıyla başlatılmalıdır ve hiçbir şey iletilmezse tüm giriş sütunları dönüştürülür.

Her özellik dönüştürücü, her gözlemi (pandas.DataFrame) daha büyük bir veri kümesinden dönüştüren ve sonraki çerçeveyi dönüştürmek için gereken durumu kaydeden bir dönüştürme algoritmasına sahiptir. Bu nedenle, FeatureTransformer'ı genellikle sıfırlama ile düzenli olarak sıfırlamak gerekir. Bu işlem, üstün FeaturePipeline veya InstrumentExchange her sıfırlandığında otomatik olarak gerçekleştirilir.

Bir transfer örneği oluşturun ve bunu mevcut bir işleme ekleyin.

tensortrade.features'dan FeaturePipeline'ı içe aktarın

tensortrade.features.scalers'dan MinMaxNormalizer'ı içe aktarır

tensortrade.features.stationarity'den import FractionalDifference

tensortrade.features.indicators'dan içe aktar SimpleMovingAverageprice_columns = normalize_price = MinMaxNormalizer (price_columns)

move_averages = SimpleMovingAverage (fiyat_sütunları)

fark_all = FractionalDifference (fark_sırası = 0.6) feature_pipeline = FeaturePipeline (adımlar =) exchange.feature_pipeline = feature_pipeline

Bu özellik kanalı, fiyat değerini 0 ile 1 arasında normalleştirir, ardından bazı hareketli ortalama sütunları ekler ve tüm zaman serilerini kesirli olarak farklı olan sürekli değerlerle değiştirmeden tutar.

2.4 Eylem stratejisi

Eylem stratejisi, ticaret ortamının eylem alanını tanımlar ve temsilcinin eylemlerini yürütülebilir işlemlere dönüştürür. Örneğin, 3 eylemlik ayrı bir eylem alanı kullanılırsa (0 = beklet, 1 = hepsini satın, 2 = tümünü sat), öğrenen temsilcinin, geri dönen operasyon 1'in satın almaya eşdeğer olduğunu bilmesine gerek yoktur. Aksine, temsilcinin belirli koşullar altında operasyon 1'e dönerek elde ettiği ödülü bilmesi gerekir ve operasyonu bir işleme dönüştürmenin uygulama detayları, tamamlanması için eylem stratejisine bırakılır.

Her eylem stratejisinin, aracının belirtilen eylemlerini yürütülebilir işlemlere dönüştüren bir get_trade algoritması vardır. Stratejide, mevcut işlem durumunu izlemek gibi ek durum depolamak genellikle gereklidir. Bu durum, eylem stratejisinin sıfırlama algoritması her çağrıldığında sıfırlanmalıdır. Bu adım, üstün ticaret ortamı sıfırlandığında otomatik olarak tamamlanabilir.

tensortrade.actions import DiscreteActionStrategyaction_strategy = DiscreteActionStrategy (n_actions = 20,

instrument_symbol = 'BTC')

Bu ayrık eylem stratejisi, 5 işlem türüne (piyasa alış / satış, limit alış / satış ve bekletme) eşdeğer olan 20 ayrı işlem kullanır ve her işlem türünün 4 ayrı tutarı vardır. Örneğin, = bekletme, 1 = pazar satın alma% 25, 2 = pazar satışı% 25, 3 = sınırlı satın alma% 25, 4 = sınır satış% 25, 6 = pazar satın alma% 50, 7 = Pazar% 50 satıyor vb.

2.5 Ödül stratejisi

Ödül stratejisi, her adımda gerçekleştirilen işlemi alır ve bu işlemin kârına karşılık gelen bir kayan nokta döndürür. Örneğin, bu adımda atılan eylem kârda artışa neden olacak şekilde satmaksa, ödül stratejisi bu tür işlemleri daha fazla teşvik etmek için pozitif bir sayı döndürebilir. Aksine, işlem zarara neden olan bir satış davranışı ise, strateji, acenteye gelecekte benzer işlemler yapmamasını bildirmek için negatif bir kar döndürebilir.

Bu örnek algoritmanın bir versiyonu SimpleProfitStrategy'de görülebilir, ancak bunun yerine açıkça daha karmaşık stratejiler kullanılabilir.

Her ödül stratejisinin, her zaman adımında yürütülen işlemleri kabul eden ve bu işlemin değerine karşılık gelen bir kayan nokta döndüren bir get_reward algoritması vardır. Eylem stratejilerinde olduğu gibi, çeşitli nedenlerle, ödül stratejisinde genellikle ek durum depolamak gerekir. Ödül stratejisinin sıfırlanması her çağrıldığında bu durum sıfırlanmalıdır; bu, üstün ticaret ortamı sıfırlandığında otomatik olarak yapılır.

tensortrade.rewards'dan import SimpleProfitStrategyreward_strategy = SimpleProfitStrategy ()

Basit kar stratejisi, işlem yapılmadığında -1, alım satım için 1, satın alma için 2 ve satış sırasında işlemden elde edilen (pozitif / negatif) kara karşılık gelen değer döndürür.

2.6 Öğrenme Aracısı

Şimdiye kadar, bu makale derin pekiştirmeli öğrenme çerçevesinin "derinliğine" değinmedi. Burası öğrenme aracısının devreye girdiği yerdir. Öğrenme ajanı, matematiğin (veya sihrin) devreye girdiği yerdir.

Temsilci, her zaman adımında alım satım ortamından gözlemlenen sonuçları girdi olarak alır, çalıştırmak için temel modelini (çoğunlukla sinir ağları) kullanır ve alınacak eylemleri çıkarır. Örneğin gözlem, işlemin bir önceki açılış, yüksek, düşük ve kapanış fiyatı olabilir. Öğrenme modeli, bu değerleri girdi olarak alır ve yapılacak eyleme karşılık gelen değeri (satın alma, satma veya elde tutma gibi) çıkarır.

Öğrenme modelinin, bu değerlerin temsil ettiği fiyatlar veya işlemler hakkında hiçbir yargıya sahip olmadığını unutmamak önemlidir. Aksine, model yalnızca en yüksek faydayı elde etmek için belirli bir girdi değeri veya girdi değeri dizisi için hangi değerlerin çıkarılması gerektiğini öğrenir.

2.7 Temel çizgiyi sabitleyin

Bu örnek, ticaret stratejileri için bir öğrenme aracı sağlamak için kararlı bir temel kitaplık kullanacaktır. Ancak TensorTrade çerçevesi, Tensorforce, Ray's RLLib, OpenAI baseline, Intel's Coach veya TensorFlow'un TF Agent'lar gibi herhangi bir ilgili ürünü gibi pek çok takviye öğrenme kitaplığıyla uyumludur.

Gelecekte, çerçeveye özel bir TensorTrade ticaret öğrenme aracısı eklemek mümkündür, ancak çerçevenin amacı, bu alanda koordineli büyümeyi teşvik etmek için her zaman mevcut takviye öğrenme kitaplıkları ile mümkün olduğunca birlikte çalışmaktır.

Ancak şu anda, istikrarlı temelin çalıştırılması basit ve insanların ihtiyaçlarını karşılayacak kadar güçlü.

stabil_baselines.common.policiesimport MlpLnLstmPolicy adresinden

stabil_baselines'ten PPO2 modelini içe aktar = PPO2

policy = MlpLnLstmPolicy

params = {"öğrenme_ hızı": 1e-5} aracı = model (politika, ortam, model_kwargs = parametreler)

Not: Bu öğretici sabit bir temel gerektirse de, TensorTrade kullanılırken gerekli değildir. Bu örnek, hiyerarşik olarak normalleştirilmiş bir LSTM algılayıcı ağına sahip GPU destekli bir PPO (Proksimal Politika Optimizasyonu) modelini kullanır. Kararlı temeller hakkında daha fazla bilgi edinmek istiyorsanız, bu makaleye göz atabilirsiniz.

2.8 Tensorforce

Aşağıda, takviye öğrenme çerçeveleri arasında serbestçe geçiş yapabilen Tensorforce kitaplığı kısaca tanıtılacaktır.

tensorforce.agents'tan Agentagent_spec = {içe aktar

"type": "ppo_agent",

"step_optimizer": {

"type": "adam",

"öğrenme_ hızı": 1e-4

},

"indirim": 0,99,

"likelihood_ratio_clipping": 0.2,

} network_spec = agent = Agent.from_spec (spec = agent_spec,

kwargs = dict (ağ = network_spec,

durumlar = ortam. durumlar,

eylemler = environment.actions))

Tensorforce ajanı hakkında daha fazla bilgi edinmek istiyorsanız, lütfen bu makaleye bakın

2.9 Ticaret Stratejisi

Bir ticaret stratejisi, bir öğrenme aracısı ve ayarlama, eğitim ve değerlendirme için bir veya daha fazla ticaret ortamı içerir. Ayarlamaların, eğitimlerin ve değerlendirmelerin yapılabileceği tek bir ticaret ortamı vardır. Birden fazla ticaret ortamı varsa, her adımda ayrı bir ticaret ortamı sağlanabilir.

from tensortrade.strategies importTensorforceTradingStrategy,

StableBaselinesTradingStrategya_strategy = TensorforceTradingStrategy (ortam = ortam,

agent_spec = agent_spec,

network_spec = network_spec) b_strategy = StableBaselinesTradingStrategy (ortam = ortam,

model = PPO2,

policy = MlpLnLSTMPolicy)

Politikanın başlatılmasını henüz anlamadıysanız endişelenmeyin, daha sonra daha ayrıntılı olarak açıklanacaktır.

3. Özet

Artık bir ticaret stratejisini oluşturan bileşenlerin her birini anladığınıza göre, bir sonraki adım bir ticaret stratejisi oluşturmak ve değerlendirmektir.

Basitçe söylemek gerekirse, bir ticaret stratejisi, bir ticaret ortamı ve bir öğrenme aracısından oluşur. Alım satım ortamı, bir Enstrüman Değişimi, bir eylem stratejisi, bir ödül stratejisi ve isteğe bağlı bir Özellik Pipeline içeren bir spor salonu ortamıdır ve gözlem sonuçlarını ve öğrenme aracısının eğitim ve değerlendirmesinin faydalarını döndürür.

3.1 Ortam oluştur

İlk adım, yukarıdaki bileşenleri kullanarak bir ticaret ortamı oluşturmaktır.

tensortrade.exchanges.simulatedimport FBMExchange adresinden

tensortrade.features.scalers'dan MinMaxNormalizer'ı içe aktarır

tensortrade.features.stationarity'den importFractionalDifference

tensortrade.features'dan FeaturePipeline'ı içe aktarın

tensortrade.rewards'dan SimpleProfitStrategy'yi içe aktarın

tensortrade.actions import DiscreteActionStrategy

tensortrade.environment sitesinden importTradingEnvironmentnormalize_price = MinMaxNormalizer ()

fark = Kesirli Fark (fark_sırası = 0.6)

feature_pipeline = FeaturePipeline (steps =) exchange = FBMExchange (timeframe = '1h',

base_instrument = 'BTC',

feature_pipeline = feature_pipeline) reward_strategy = SimpleProfitStrategy () action_strategy = DiscreteActionStrategy (n_actions = 20,

enstrüman_symbol = 'ETH / BTC') ortamı = Ticaret Ortamı (takas = takas,

action_strategy = action_strategy,

reward_strategy = reward_strategy,

feature_pipeline = feature_pipeline)

Çok basit, mevcut ticaret ortamı, herhangi bir uyumlu ticaret stratejisi veya öğrenme aracı tarafından kullanılabilen bir spor salonu ortamıdır.

3.2 Temsilcinin belirlenmesi

Artık ticaret ortamı kurulduğuna göre, bir sonraki eğitim aracısı oluşturulmalıdır. Benzer şekilde, burada da kararlı bir temel gereklidir ve diğer herhangi bir takviye öğrenme aracı buraya eklenebilir.

Bu makale istikrarlı bir temel ticaret stratejisi kullandığından, yapılması gereken, temel sinir ağını eğitmek için bir model türü ve strateji türü sağlamaktır. Bu örnek, basit bir PPO modeli ve hiyerarşik olarak normalleştirilmiş bir LSTM politika ağı kullanacaktır.

Daha fazla model ve politika spesifikasyonu örneği için, kararlı temel belgelerine bakın.

stabil_baselines.common.policiesimport MlpLnLstmPolicy adresinden

stabil_baselines'ten PPO2 modelini içe aktar = PPO2

policy = MlpLnLstmPolicy

params = {"öğrenme_ hızı": 1e-5}

3.3 Eğitim stratejisi

Bir ticaret stratejisi oluşturmak, bir aracı ve ticaret ortamı eklemek kadar basittir.

from tensortrade.strategies importStableBaselinesTradingStrategystrategy = StableBaselinesTradingStrategy (ortam = ortam,

model = model,

politika = politika,

model_kwargs = parametreler)

Ardından, stratejiyi eğitmek (yani, temsilciyi mevcut ticaret ortamında eğitmek) için yapmanız gereken tek şey, çalıştırmak istediğiniz toplam adım veya bölüm sayısını kullanarak strateji.run () çağrısı yapmaktır.

performans = strateji.run (adımlar = 100000,

episode_callback = stop_early_callback)

Yaklaşık üç saat sürer ve aracının tamamlandığını görebileceğiniz binlerce rapor oluşturulabilir!

Bu geri bildirim döngüsünün biraz yavaş olduğunu düşünüyorsanız, çalışması için bir geri arama işlevi gönderebilir ve her bölümün sonunda geri arama işlevini çağırabilirsiniz. Geri çağırma işlevi, aracının bölümdeki performansını içeren ve bir Boolean değeri döndürmeyi bekleyen bir veri çerçevesi içinde iletir. Doğruysa, temsilci eğitime devam eder, aksi takdirde temsilci durur ve genel performansına geri döner.

Temsilcinin son 5 bakiyesi ve net değeri dahil olmak üzere bölüm bittikten sonraki basit performans çıktısı.

3.4 Kaydet ve geri yükle

Tüm ticaret stratejileri, temsilcilerini daha sonra geri yüklemek üzere dosyalara kaydedebilir. Alım satım ortamı, kaydedilmesi gerekmediğinden kaydedilemez. TensorflowTradingStrategy'yi bir dosyaya kaydetmek için, yalnızca dosyadan stratejiye giden yola ihtiyacınız vardır.

strateji.save_agent (yol = "../ ajanlar / ppo_btc_1h")

Aracıyı dosyadan geri yüklemek için, önce ilkeyi başlatmanız ve ardından restore_agent'i çağırmanız gerekir.

from tensortrade.strategies importStableBaselinesTradingStrategystrategy = StableBaselinesTradingStrategy (ortam = ortam,

model = model,

politika = politika,

model_kwargs = parametreler) strateji.restore_agent (yol = "../ ajanlar / ppo_btc / 1h")

Politika artık önceki durumuna geri döndü ve tekrar kullanılmaya hazır.

3.5 Ayarlama stratejisi

Bazen, bir ticaret stratejisinin tam olarak çalışması için bir dizi hiperparametreyi veya ticaret ortamının özelliğini ayarlaması gerekir. Bu örnekte, her ticaret stratejisi isteğe bağlı bir ayarlama yöntemi sağlar.

Modeli ayarlamak eğitim modeline benzer, ancak en iyi modelin ağırlıklarını ve sapmalarını ayarlamaya ve kaydetmeye ek olarak, strateji modeli oluşturan hiper parametreleri de ayarlar ve kaydeder.

tensortrade.environment sitesinden importTradingEnvironment

tensortrade.exchanges.simulated import FBMExchangeexchange = FBMExchange (zaman aralığı = '1h',

base_instrument = 'BTC',

feature_pipeline = feature_pipeline) ortam = Ticaret Ortamı (takas = takas,

action_strategy = action_strategy,

reward_strategy = reward_strategy) strategy.environment = environmenttuned_performance = strateji.tune (bölümler = 10)

Bu durumda, temsilcinin 10 bölüm eğitimine ihtiyacı olacaktır ve her bölüm farklı bir hiperparametre setine sahip olacaktır. En iyi küme, stratejiye kaydedilecek ve daha sonra, Strategy.run () çağrılacaktır.

3.6 Strateji Değerlendirmesi

Temsilciler ayarlandı ve eğitildiğine göre, sonuçları test etmenin zamanı geldi. Bir stratejinin görünmez veriler üzerindeki performansını değerlendirmek için, bu verilerle desteklenen yeni bir ticaret ortamında çalıştırılması gerekir.

pandalardan ithalat pdfrom tensortrade.enilitiesimport TradingÇevre

tensortrade.exchanges.simulated import SimulatedExchangedf = pd.read_csv ('./ btc_ohlcv_1h.csv') exchange = SimulatedExchange (data_frame = df,

base_instrument = 'BTC',

feature_pipeline = feature_pipeline) ortam = Ticaret Ortamı (takas = takas,

action_strategy = action_strategy,

reward_strategy = reward_strategy) Strategy.environment = environmenttest_performance = Strategy.run (bölümler = 1, test = True)

Tamamlandıktan sonra, Strategy.run, aracının her bir adımdaki net değeri ve bakiyesi dahil olmak üzere, aracının performansının Pandalar veri çerçevesini döndürür.

Performans değerlendirme örneği - Bu aracı, bu özellik kümesi için eğitilmedi, bu nedenle performansı biraz gelişigüzel.

3.7 Gerçek zamanlı ticaret

Şu anda, karlı bir ticaret stratejisi oluşturulmuş, bir aracı makul işlemler yürütmek üzere eğitilmiş ve stratejinin yeni veri seti için "evrensel yeteneği" sağlanmıştır Gerisi kârdır. Gerçek zamanlı ticareti kullanarak (CCXTExchange gibi), stratejiyi ekleyebilir ve çalıştırabilirsiniz!

Spekülatif tüccarlar aynı stratejiyi kısıtlama olmaksızın yürütmek isteyebilirler, ancak yüksek riskten kaçınan yatırımcılar, strateji her işlem yapmak üzereyken çağrılan trade_callback'i de kullanabilir. Bu geri çağırma işlevi, önceki bağlantıdaki işleve benzer, aracının genel performansını içeren bir veri çerçevesi içinde geçirir ve bir Boole değeri döndürür. Doğruysa, temsilci işleme devam eder, aksi takdirde temsilci durur ve oturum sırasında performansına geri döner.

ccxtfrom tensortrade. ortamları ithalat Ticaret Ortamı

tensortrade.strategies adresinden StableBaselinesTradingStrading

tensortrade.exchanges.live import CCXTExchangecoinbase = ccxt.coinbasepro (...) exchange = CCXTExchange (exchange = coinbase,

zaman aralığı = '1h',

base_instrument = 'USD',

feature_pipeline = feature_pipeline) ortam = Ticaret Ortamı (takas = takas,

action_strategy = action_strategy,

reward_strategy = reward_strategy) Strategy.environment = environmentstrategy.restore_agent (yol = "../ agent / ppo_btc / 1h") live_performance = Strategy.run (steps = 0, trade_callback = episode_cb)

Stratejinin çalıştığını belirtmek için adımlar = 0 girin, aksi takdirde çalışmayı durdurur.

Özetle, basit bileşenler ve derin takviyeli öğrenme kullanarak karmaşık ticaret stratejileri oluşturmak çok basittir. Ne için bekliyorsun? Şimdi pratik yapmaya başlayalım ve daha fazla TensorTrade olasılığını keşfedelim.

4. Beklentiler

Çerçeve şu anda erken aşamalarında. Şimdi odak noktası, bir ürün prototipi ve yüksek kârlı bir strateji oluşturmak için gerekli tüm birikimi elde etmektir. Bir sonraki adım, gelecek için bir plan çizmek ve gelecekte hangi bileşenlerin topluluğun gelişiminde önemli bir rol oynayabileceğine karar vermektir.

Yakında, çerçeveye eklenen son derece görselleştirilmiş ticaret ortamı bilgilerini ve daha derinlemesine ticaret stratejileri ve eğitim stratejilerini göreceğiz.

Daha önce oluşturulan ortam görselleştirme örneği.

TensorTrade sınırsız potansiyele sahiptir. Temel çalışma (yani çerçeve) atıldı ve şimdi bir sonraki yöne karar vermek topluluğun elinde. Umarım katılabilirsiniz.

Sonuç

TensorTrade, oldukça modüler ve yüksek performanslı bir ticaret sistemi oluşturabilen güçlü bir çerçevedir. Yeni ticaret ve yatırım stratejileri, bir stratejideki bileşenlerin başka bir stratejide kullanılmasına izin verirken, oldukça basit ve kolaydır. Ama benim fikirlerimi tamamen takip etmeyin.Ayrıca kendi stratejinizi oluşturabilir ve robotunuzu sınırsız potansiyelini gerçekleştirmek için eğitmeye başlayabilirsiniz.

Bu proje çok pratik. Ancak, kişisel zaman sınırlıdır ve herkesin açık kaynak kod tabanına değerli katkılarda bulunabileceğine inanıyorum. Bu nedenle, en gelişmiş ticaret sistemini oluşturmakla ilgilenen bir geliştirici veya veri bilimcisiyseniz, basit bir test durumu olsa bile katılmaya çok hoş geldiniz!

Yorum Beğen Takip Et

AI öğrenme ve geliştirmenin kuru mallarını paylaşalım

Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

Veri bilimi geliştirme ortamının "bakır duvarı ve demir duvarı" nasıl yapılır? (El ele eğitim dahildir)
önceki
Verilerin "ayrıntılandırılması" ne kadar korkunç? İnternet kel olacağımı nereden biliyor?
Sonraki
DNA'nın% 97'si bir tür karmaşık yorum kodudur Uzaylı bir uygarlık hiç yer değiştirdi mi?
Dronlar sırf kutsal ağacı kurtarmak için Hawaii'ye mi "ilerliyorlar"?
"The Moment to Hold the Sword" mobil oyun değerlendirmesi: Otome temalı başyapıtta rüzgara doğru
Hayatın güvenini kazanmak için her şeyi yapın | Zhang Jianxin, Otorhinolaryngology, Baş ve Boyun Cerrahisi, Belediye Hastanesi Direktörü
Aklımda TGA2019 kazanan oyunlar ve kazanma nedenleri büyük tahminler
Çocukların kaliteli eğitim markası "Bao Tuan Development" yeni bir trend haline geldi
Günlük ücret: programcılar arasında usta bir yazar olmayı öğretmek
TGA aday listesine bir göz atın: Bu yılki "Run King" "Death Stranding" mi olacak?
garip! Amazon'un yapay zeka duygu tanıma yazılımı duygusal ifadeyi karıştırıyor
"Tools Up!" 3 Aralık'ta yayınlanacak, 4 kişi işbirliği yapıyor ve dekorasyonun tadını çıkarıyor
Kanadalı gazeteci Çin'in müdahalesi olduğunu iddia ederek girişi reddetti
Einstein'ın yaşamının gizemi: dünyadaki her şey hiç var olmayabilir, ancak insan bilincinin bir ürünüdür
To Top