هذه واجهة برمجة تطبيقات مقرها Pyhton باستخدام Selenium وطلبات للحصول على معلومات من منصة Trading212 ، يرجى ملاحظة أن أنا أو Trading212 تحمل مسؤولية النتائج المتعلقة باستخدام واجهة برمجة التطبيقات هذه.
سأستمر في العمل في هذا المشروع وسأقوم بتقديم أي ملاحظات.
PIP تثبيت APIT212
لبدء استخدام واجهة برمجة التطبيقات هذه ، ستحتاج أولاً إلى تسجيل الدخول إلى الحساب باستخدام APIT212 ، ستتمكن بعد ذلك من استخدام جميع الوظائف وإنشاء روبوت التداول الخاص بك أو استخدامه لبيانات Scarpe من منصة Trading212.
from apit212 import *
api = Apit212 ()
api . setup ( username = "[email protected]" , password = "pass******" , mode = "demo" )
from apit212 import *
api = Apit212 ()
api . setup ( username = "[email protected]" , password = "pass******" , mode = "live" )
من الممارسات الجيدة إعداد ملف ENV لحفظ المعلومات الحساسة مثل اسم المستخدم أو كلمة المرور. هنا رابط مفيد . env
USER = [email protected]
PASS = password123
from dotenv import load_dotenv
from apit212 import *
import os
load_dotenv ( '.env' )
username : str = os . getenv ( 'USER' )
password : str = os . getenv ( 'PASS' )
api = Apit212 ()
api . setup ( username = "[email protected]" , password = "pass******" , mode = "demo" )
واجهة برمجة التطبيقات هذه عديمة الفائدة بدون رمز المؤشر الصحيح ، لذا لدي حل.
from apit212 import Tickers
ticker = Tickers ()
print ( ticker . fetch_symbols ( symbol = 'META' ))
print ( ticker . find_by_name ( full_name = 'tesla' ))
هناك قدر كبير من البيانات التي يجب قراءتها ولكن المفتاح الذي تتبعه هو Ticker ، سيؤدي ذلك إلى إرجاع الرمز الذي يستخدمه منصة Trading212.
[{ ' ticker ' : ' FB ' , ' type ' : ' STOCK ' , ' currency ' : ' USD ' , ' shortName ' : ' META ' , ' fullName ' : ' Meta Platforms ' , ' description ' : ' Meta Platforms Inc ' , ' minTrade ' : 0.1, ' digitsPrecision ' : 2, ' exchangeId ' : 68, ' tradable ' : True, ' underlyingInstrumentTicker ' : ' FB_US_EQ ' , ' underlyingLeverageCoefficient ' : 1.0, ' dealerExclusions ' : [], ' maxOpenLong ' : 1121, ' leverage ' : ' 1:5 ' , ' insignificantDigits ' : 0, ' baseTicker ' : nan, ' expiryDate ' : nan, ' minTradeSizeCoefficient ' : 10.0, ' isin ' : ' US30303M1027 ' , ' countryOfOrigin ' : ' US ' , ' quantityPrecision ' : 1.0, ' priorityIndex ' : 25.0, ' maxTrade ' : nan, ' conditionalVisibility ' : nan, ' suspended ' : nan}]
[{ ' ticker ' : ' TSLA ' , ' type ' : ' STOCK ' , ' currency ' : ' USD ' , ' shortName ' : ' TSLA ' , ' fullName ' : ' Tesla ' , ' description ' : ' Tesla, Inc. ' , ' minTrade ' : 0.1, ' digitsPrecision ' : 2, ' exchangeId ' : 68, ' tradable ' : True, ' underlyingInstrumentTicker ' : ' TSLA_US_EQ ' , ' underlyingLeverageCoefficient ' : 1.0, ' dealerExclusions ' : [], ' maxOpenLong ' : 1405, ' leverage ' : ' 1:5 ' , ' insignificantDigits ' : 0, ' baseTicker ' : nan, ' expiryDate ' : nan, ' minTradeSizeCoefficient ' : 10.0, ' isin ' : ' US88160R1014 ' , ' countryOfOrigin ' : ' US ' , ' quantityPrecision ' : 1.0, ' priorityIndex ' : 100.0, ' maxTrade ' : nan, ' conditionalVisibility ' : nan, ' suspended ' : nan}]
from apit212 import Tickers
ticker = Tickers ()
meta = ticker . fetch_symbols ( symbol = 'META' )
print ( len ( meta ))
print ( meta [ 0 ][ 'ticker' ])
غالبًا ما يعيد العثور على مؤشر باستخدام Tecticer المستخدم على نطاق واسع نتيجة 1 ، ولكن في بعض المناسبات قد تحصل على نتائج متعددة ، وبالتالي فإن ممارستها الجيدة للتحقق من LEN من السلسلة التي تم إرجاعها.
1
FB
لتداول CFD ببساطة استدعاء فئة CFD
from apit212 import *
api = Apit212 ()
api . setup ( username = "[email protected]" , password = "pass******" , mode = "demo" )
cfd = CFD ( cred = api )
لتجارة الأسهم ببساطة استدعاء فئة الأسهم.
from apit212 import *
client = Apit212 ( username = "[email protected]" , password = "pass******" , mode = "live" )
equity = Equity ()
ستؤدي وظيفة Auth_validate إلى إرجاع معرف الحساب ونوع التجارة.
validate = cfd . auth_validate ()
print ( validate )
{ ' id ' : ' *******-****-****-****-************ ' , ' accountId ' : ******** , ' customerId ' : ********* , ' tradingType ' : ' CFD ' , ' customerUuid ' : ' ********-****-****-****-************ ' , ' frontend ' : ' WC4 ' , ' readyToTrade ' : True, ' deviceUuid ' : ' ' }
ستعيد وظيفة get_account تفاصيل حسابك.
account = cfd . get_account ()
print ( account )
{ ' demoAccounts ' : [{ ' id ' : ******** , ' type ' : ' DEMO ' , ' tradingType ' : ' CFD ' , ' customerId ' : ******** ,
' createdDate ' : ' 2023-01-17T03:20:48.000+00:00 ' , ' status ' : ' ACTIVE ' , ' registerSource ' : ' WC4 ' ,
' currencyCode ' : ' GBP ' , ' readyToTrade ' : True}], ' liveAccounts ' : [{ ' id ' : ******** , ' type ' : ' LIVE ' ,
' tradingType ' : ' CFD ' , ' customerId ' : ******** , ' createdDate ' : ' 2023-01-17T03:20:32.000+00:00 ' ,
' status ' : ' PENDING_ACTIVATION ' , ' registerSource ' : ' WC4 ' , ' currencyCode ' : ' GBP ' , ' readyToTrade ' : False}]}
ستعيد وظيفة get_funds أموال الحسابات.
funds = cfd . get_funds ()
print ( funds )
{ ' ******* ' : { ' accountId ' : ******** , ' tradingType ' : ' CFD ' , ' currency ' : ' GBP ' ,
' freeForWithdraw ' : 486.83, ' freeForCfdTransfer ' : 0, ' total ' : 486.83,
' lockedCash ' : { ' totalLockedCash ' : 0, ' lockedCash ' : []}}}
يعيد get_summary ملخصًا لحسابك.
summary = cfd . get_summary ()
print ( summary )
' open ' : { ' unfilteredCount ' : 1, ' items ' : [{ ' positionId ' : ' ********-****-****-****-************ ' , ' humanId ' : ' ******** ' ,
' created ' : ' 2023-07-03T18:17:46.563+03:00 ' , ' averagePrice ' : 192.25, ' averagePriceConverted ' : 150.73025341182984,
' currentPrice ' : 192.2, ' value ' : 1054.82, ' investment ' : 1055.11, ' code ' : ' AAPL ' , ' margin ' : 212.02, ' ppl ' : -0.28,
' quantity ' : 7, ' maxBuy ' : 9.0, ' maxSell ' : 7, ' maxOpenBuy ' : 2033.0, ' maxOpenSell ' : 2040.0, ' swap ' : -1.06, ' frontend ' : ' WC4 ' }]}
يعيد Get_companies أدوات Avaliable للتداول على منصة Trading212
companies = cfd . get_companies ()
print ( companies )
[{ ' ticker ' : ' SIGTl_EQ ' , ' isin ' : ' GB0008769993 ' }, { ' ticker ' : ' PDYPY_US_EQ ' , ' isin ' : ' US3440441026 ' }...]
سيقوم Get_instruments_info بإرجاع المعلومات حول أداة.
info = cfd . get_instruments_info ( instrument = "TSLA" )
print ( info )
{ ' code ' : ' TSLA ' , ' type ' : ' STOCK ' , ' margin ' : 0.2, ' shortPositionSwap ' : -0.07030593058663,
' longPositionSwap ' : -0.27928156941337, ' tsSwapCharges ' : ' 1970-01-01T23:00:00.000+02:00 ' ,
' marginPercent ' : ' 20 ' , ' leverage ' : ' 1:5 ' }
get_order_info get
orderInfo = cfd . get_order_info ( instrument = "TSLA" , quamtity = 1.5 )
print ( orderInfo )
{ ' buyMargin ' : 40.18, ' sellMargin ' : 40.18, ' buySwap ' : -0.2, ' sellSwap ' : -0.05}
tickers = [ "TSLA" , "AAPL" ]
deviation = cfd . get_deviations ( instruments = tickers )
print ( deviation )
[{ ' request ' : { ' ticker ' : ' TSLA ' , ' useAskPrice ' : False}, ' response ' : { ' timestamp ' : 1694073610000, ' price ' : 250.68, ' period ' : ' d1 ' }}, { ' request ' : { ' ticker ' : ' AAPL ' , ' useAskPrice ' : False}, ' response ' : { ' timestamp ' : 1694073610000, ' price ' : 178.18, ' period ' : ' d1 ' }}]
يعيد Get_position المعلومات لمعرف موضع معين ، يمكن أن يتم إخراجه هذا المعرف من وظيفة get_summary
position = cfd . get_position ( position_id = 274187113 )
print ( position )
[{ ' eventType ' : { ' action ' : ' opened ' , ' source ' : ' MARKET_ORDER ' },
' eventNumber ' : { ' name ' : ' MO3053019640 ' , ' id ' : ' 274187113 ' , ' frontend ' : ' WC4 ' }, ' time ' : ' 2023-08-02T22:42:54.000+03:00 ' ,
' direction ' : ' sell ' , ' quantity ' : 1.0, ' price ' : ' 105.29 ' , ' avgQuantity ' : 1.0, ' avgPrice ' : ' 105.2900 ' , ' modifiedDirection ' :
' sell ' }]
ستعيد وظيفة get_all_result قائمة بجميع نتائج التداول الخاصة بك. ستحتاج إلى طلب كل صفحة. قد تحتاج أيضًا إلى تمرير المنطقة الزمنية.
results = cfd . get_all_results ()
print ( results )
{ ' data ' : [{ ' direction ' : ' buy ' , ' code ' : ' AAPL ' , ' quantity ' : 0.1, ' orderNumber ' : { ' name ' : ' P************ ' , ' link ' : ' positionHistory/********-****-****-****-************ ' , ' id ' : ' ********-****-****-****-************ ' , ' frontend ' : ' WC4 ' }, ' price ' : ' 176.6700 ' , ' closePrice ' : ' 181.98 ' , ' result ' : ' 0.42 ' , ' eventNumber ' : { ' name ' : ' PO3062546222 ' , ' id ' : ' ********-****-****-****-************ ' }, ' eventType ' : ' closed ' , ' time ' : ' 2023-08-29T17:15:55.000+03:00 ' , ' openingTime ' : ' 2023-08-25T11:51:15.000+03:00 ' }, ...], ' nextPage ' : ' result?perPage=20&onlyFullyClosed=false&page=2 ' , ' currentPage ' : ' result?perPage=20&onlyFullyClosed=false&page=1 ' , ' totalSize ' : 133}
orderHist = cfd . get_order_hist ( page_number = 1 )
print ( orderHist )
{ ' data ' : [], ' currentPage ' : ' order?filter=all&perPage=20&from=2023-09-06T02:00:00.000+03:00&to=2023-09-08T01:59:59.173+03:00&page=1 ' , ' totalSize ' : 0}
positionHist = cfd . get_posistion_hist ( page_number = 1 )
print ( positionHist )
{ ' data ' : [], ' currentPage ' : ' position?perPage=20&from=2023-09-06T02:00:00.000+03:00&to=2023-09-08T01:59:59.173+03:00&page=1 ' , ' totalSize ' : 0}
يقوم Fast_price بإعادة سعر الأدوات كتعويم. إذا فشل الطلب لا يتم إرجاع أي شيء
price = cfd . fast_price ( instrument = "TSLA" )
print ( price )
253.49
يعيد chart_data قاموسًا مع تاريخ الشمعة OHLC (مفتوح ، مرتفع ، منخفض ، قريب) الفترة المطلوبة. الذي تم تعيينه على 1 دقيقة بشكل افتراضي.
charts = cfd . chart_data ( instrument = "TSLA" , period = "ONE_MINUTE" )
print ( charts )
[{ ' request ' : { ' ticker ' : ' TSLA ' , ' period ' : ' ONE_MINUTE ' , ' size ' : 500, ' useAskPrice ' : False}, ' response ' : { ' candles ' : [[1691152740000, 259.6, 259.97, 259.43, 259.49, 47], [1691152800000, 259.38, 259.94, 259.17, 259.56, 58], [1691152860000, 259.62, 260.34, 259.62, 260.19, 42]
ستعود وظيفة multi_price إلى آخر سعر Qouted لجميع الأدوات التي تم تمريرها.
tickers = [ "TSLA" , "AAPL" , "GOOG" ]
multiprice = cfd . multi_price ( instruments = tickers )
print ( multiprice )
[{ ' ticker ' : ' TSLA ' , ' price ' : 251.34}, { ' ticker ' : ' AAPL ' , ' price ' : 181.96}, { ' ticker ' : ' GOOG ' , ' price ' : 135.18}]
تقدم وظيفة Market_order طلب السوق وتتطلب السعر الحالي للأداة.
targetPrice = cfd . fast_price ( instrument = "TSLA" )
marketOrder = cfd . market_order ( instrument = "TSLA" , target_price = targePrice ,
quantity = 1.5 , take_profit = 10 , stop_loss = 10 )
تقدم وظيفة Limit_order ترتيبًا محددًا
marketOrder = cfd . limit_order ( instrument = "TSLA" , target_price = 127 ,
quantity = 1.5 , take_profit = 10 , stop_loss = 10 )
تتيح لك وظيفة set_limits تعديل أو إضافة stoploss أو takeprofit إلى منشور موجود (مطلوب الموضعية لتنفيذ هذه الوظيفة)
limits = cfd . set_limits ( position_id = 27361748 , TP = 10 , SL = 10 )
تضيف دالة Add_trailing_stop توقفًا زائد إلى وضع موجود
trailing = cfd . add_trailing_stop ( position_id = 27361748 , distance = 1 )
يتم استخدام وظيفة Close_position لإغلاق وضع مفتوح. سيتطلب السعر الحالي.
currentPrice = cfd . fast_price ( instrument = "TSLA" )
close = cfd . close_position ( position_id = 23948174 , current_price = currentPrice )
cancelAll = cfd . cancel_all_orders ()
يتم استخدام وظيفة Cancel_order لإلغاء أمر الحد.
cancel = cfd . cancel_order ( order_id = ** ** ** ** ** )
ستعيد وظيفة get_live السعر الحالي للمقدار
tickers = [ "TSLA" , "AAPL" ]
prices = cfd . live_price ( instruments = tickers )
print ( prices )
[{ ' request ' : { ' ticker ' : ' TSLA ' , ' useAskPrice ' : False}, ' response ' : { ' timestamp ' : 1690531210000, ' price ' : 255.8, ' period ' : ' d1 ' }}, { ' request ' : { ' ticker ' : ' AAPL ' , ' useAskPrice ' : False}, ' response ' : { ' timestamp ' : 1690531210000, ' price ' : 193.29, ' period ' : ' d1 ' }}]
ستعيد وظيفة get_funds صناديق حساباتك.
funds = cfd . get_funds ()
print ( funds )
{ ' 20434246 ' : { ' accountId ' : ******** , ' tradingType ' : ' CFD ' , ' currency ' : ' GBP ' ,
' freeForWithdraw ' : 486.83, ' freeForCfdTransfer ' : 0, ' total ' : 486.83,
' lockedCash ' : { ' totalLockedCash ' : 0, ' lockedCash ' : []}}}
تتيح لك وظيفة TrameRing_Stop إضافة توقف زائد إلى وضع مفتوح.
trailing_stop = cfd . trailing_stop ( position_id = "***-****-***" , distance = 0.5 )
تتيح لك وظيفة add_limits إضافة stoploss و takeprofit إلى موضع موجود.
update_limits = client . add_limits ( position_id = "***-****-***" , TP = 1 , SL = 1 )
لتعيين توقف جديد أو TakeProfit ، فقط تمرير المسافة إلى TP (خذ الأرباح) أو SL (توقف الخسارة). ستحصل الوظيفة على السعر الحالي وتطبيق المسافة.
ستعود وظيفة all_position_hist إلى تاريخ الموضع.
position_history = cfd . all_position_hist ()
يقوم All_order_hist بإرجاع بيانات الطلبات
order_history = cfd . all_order_hist ()
ستعمل وظيفة get_instrument على إعادة المعلومات حول الأداة.
tsla_info = cfd . get_instruments_info ( instrument = 'TSLA' )
print ( tsla_info )
{ ' code ' : ' TSLA ' , ' type ' : ' STOCK ' , ' margin ' : 0.2, ' shortPositionSwap ' : -0.07030593058663,
' longPositionSwap ' : -0.27928156941337, ' tsSwapCharges ' : ' 1970-01-01T23:00:00.000+02:00 ' ,
' marginPercent ' : ' 20 ' , ' leverage ' : ' 1:5 ' }
ستقوم وظيفة get_position بإرجاع المعلومات لـ Qouted positionId.
position = cfd . get_position ( position_id = "***-****-***" )
print ( position )
[{ ' eventType ' : { ' action ' : ' opened ' , ' source ' : ' MARKET_ORDER ' },
' eventNumber ' : { ' name ' : ' MO3053019640 ' , ' id ' : ' 274187113 ' , ' frontend ' : ' WC4 ' }, ' time ' : ' 2023-08-02T22:42:54.000+03:00 ' ,
' direction ' : ' sell ' , ' quantity ' : 1.0, ' price ' : ' 105.29 ' , ' avgQuantity ' : 1.0, ' avgPrice ' : ' 105.2900 ' , ' modifiedDirection ' :
' sell ' }]
ستعيد وظيفة get_summary ملخص الحساب. يمكن أيضًا استخدام هذه الوظيفة للحصول على معرف الطلب وهناك PPL الحالي
summary = cfd . get_summary ()
print ( summary )
' open ' : { ' unfilteredCount ' : 1, ' items ' : [{ ' positionId ' : ' ********-****-****-****-************ ' , ' humanId ' : ' ******** ' ,
' created ' : ' 2023-07-03T18:17:46.563+03:00 ' , ' averagePrice ' : 192.25, ' averagePriceConverted ' : 150.73025341182984,
' currentPrice ' : 192.2, ' value ' : 1054.82, ' investment ' : 1055.11, ' code ' : ' AAPL ' , ' margin ' : 212.02, ' ppl ' : -0.28,
' quantity ' : 7, ' maxBuy ' : 9.0, ' maxSell ' : 7, ' maxOpenBuy ' : 2033.0, ' maxOpenSell ' : 2040.0, ' swap ' : -1.06, ' frontend ' : ' WC4 ' }]}
ستعيد وظيفة Live_price سعر الطلب الحالي للأداة التي تم تمريرها.
ticker = [ "TSLA" , "AAPL" , "GOOG" ]
live_price = cfd . live_price ( instruments = ticker )
print ( live_price )
[{ ' ticker ' : ' TSLA ' , ' price ' : 253.49}, { ' ticker ' : ' AAPL ' , ' price ' : 182.08}, { ' ticker ' : ' GOOG ' , ' price ' : 128.44}]
ستعود وظيفة Fast_price إلى آخر سعر مخطط Qouted كتعويم
price = cfd . fast_price ( instrument = "TSLA" )
print ( price )
253.49
ستعود وظيفة chart_data إلى أحدث بيانات الرسم البياني للأداة التي تم تمريرها
chart = cfd . chart_data ( instrument = "TSLA" )
print ( chart )
[{ ' request ' : { ' ticker ' : ' TSLA ' , ' period ' : ' ONE_MINUTE ' , ' size ' : 500, ' useAskPrice ' : False}, ' response ' : { ' candles ' : [[1691152740000, 259.6, 259.97, 259.43, 259.49, 47], [1691152800000, 259.38, 259.94, 259.17, 259.56, 58], [1691152860000, 259.62, 260.34, 259.62, 260.19, 42]
ستؤدي وظيفة get_deviations إلى إرجاع انحرافات الأسعار
ticker = [ "TSLA" , "AAPL" , "GOOG" ]
deviations = cfd . get_deviations ( instruments = ticker )
print ( deviations )
[{ ' request ' : { ' ticker ' : ' TSLA ' , ' useAskPrice ' : False}, ' response ' : { ' timestamp ' : 1691136010000, ' price ' : 259.38, ' period ' : ' d1 ' }}, { ' request ' : { ' ticker ' : ' AAPL ' , ' useAskPrice ' : False}, ' response ' : { ' timestamp ' : 1691136010000, ' price ' : 188.99, ' period ' : ' d1 ' }}, { ' request ' : { ' ticker ' : ' GOOG ' , ' useAskPrice ' : False}, ' response ' : { ' timestamp ' : 1691136010000, ' price ' : 129.05, ' period ' : ' d1 ' }}]
ستعيد وظيفة get_companies الشركات المدرجة حاليًا على T212 ومعرف ISIN الخاص بها.
companies = cfd . get_companies ()
print ( companies )
[{ ' ticker ' : ' SIGTl_EQ ' , ' isin ' : ' GB0008769993 ' }, { ' ticker ' : ' PDYPY_US_EQ ' , ' isin ' : ' US3440441026 ' }...]
تقوم وظيفة limit_order بتقديم طلب حد وتأخذ الكمية ، Target_price ، take_profit & stop_loss parms.
limit_order = cfd . limit_order ( instrument = "TSLA" ,
quantity = 5 , target_price = 129 , take_profit = 130 , stop_loss = 128 )
{'account': {'dealer': 'AVUSUK', 'positions': [{'positionId': '********-****-****-****-************',
'humanId': '**********', 'created': '2023-07-03T18:17:46.563+03:00' ...
تقدم وظيفة Market_order طلب السوق وتأخذ الكمية ، Target_price ، take_profit & stop_loss parms.
market_order = cfd . market_order ( instrument = "TSLA" ,
quantity = 5 , target_price = 129 , take_profit = 130 , stop_loss = 128 )
ستقوم دالة Cancel_order بإلغاء أمر معلق يتطلب OrderId.
cancel_order = cfd . cancel_order ( order_id )
يمكنك أيضًا استخدام Cancel_all_orders لإلغاء جميع أوامر الحدود المعلقة.
cancel_all = cfd . cancel_all_orders ()
ستقوم وظيفة Close_position بتقديم طلب لإلغاء موضع مفتوح.
close_position = cfd . close_position ( position_id = 'ordexxxxx' , current_price = current_price )
username = "[email protected]"
password = "password132"
api = Apit212 ()
api . setup ( username = username , password = password , mode = "demo" )
cfd = CFD ( cred = api )
target_price = 128
while True :
sleep ( 60 )
price = cfd . fast_price ( "TSLA" )
if price <= target_price :
marketOrder = cfd . market_order ( instrument = "TSLA" , target_price = price , quantity = 1 , take_profit = 10 ,
stop_loss = 10 )
break
عند إجراء تجارة ، قد تواجه مشكلات ومن الجيد دائمًا أن يكون لديك بروتوكولات للتعامل مع هذه المشكلات عند ظهورها.
فيما يلي قائمة ببعض الاستثناءات التي قد تصادفها عند تنفيذ التجارة.
فقط توقف عن تقديم الطلب إذا حصلت على هذا الرد
يعمل هذا حاليًا فقط مع حسابات الأسهم ويمكنك فقط إرسال التداولات على حسابك التجريبي. يرجى قراءة الوثائق الرسمية للحصول على فهم وقيود أفضل في واجهة برمجة التطبيقات.
من أجل استخدام واجهة برمجة التطبيقات الرسمية ، ستحتاج إلى إنشاء مفتاح باستخدام تطبيق Trading212. /الإعدادات/API (بيتا) ثم قم ببساطة بإنشاء مفتاح جديد ونقله إلى فئة ApitKey (). Equity () .
from apit212 import *
key = "20557******************************"
client = Apitkey ()
info = client . Equity ( api_key = key , mode = "live" )
فيما يلي وظائف Avalible باستخدام Trading212 API-token.
هذا هو واجهة برمجة تطبيقات غير رسمية وأي إما نفسي من Trading212 مسؤولة عن استخدام واجهة برمجة التطبيقات هذه. يُنصح بشدة أن تستخدم حساب الممارسة قبل الانتقال إلى أموال حقيقية. APIT212 ليس روبوت تداول