From e94f4518db8e98ebb638f1d9d8513f2cbe1cbf59 Mon Sep 17 00:00:00 2001 From: Martin-Molinero Date: Mon, 19 Aug 2024 11:48:33 -0300 Subject: [PATCH] Alpaca live enhancements (#14) - Handle paid & free live data feeds transperently - Use Alpaca direct dll reference --- .../AlpacaBrokerageDataQueueHandlerTests.cs | 2 +- .../QuantConnect.AlpacaBrokerage.Tests.csproj | 5 +- .../Alpaca.Markets.deps.json | 288 + .../Alpaca.Markets.dll | Bin 0 -> 512000 bytes .../Alpaca.Markets.pdb | Bin 0 -> 124500 bytes .../Alpaca.Markets.xml | 9775 +++++++++++++++++ .../AlpacaBrokerage.DataQueueHandler.cs | 2 +- .../AlpacaBrokerage.Messaging.cs | 12 +- .../AlpacaBrokerage.cs | 23 +- .../AlpacaStreamingClientWrapper.cs | 142 + .../QuantConnect.AlpacaBrokerage.csproj | 17 +- 11 files changed, 10252 insertions(+), 14 deletions(-) create mode 100644 QuantConnect.AlpacaBrokerage/Alpaca.Markets.deps.json create mode 100644 QuantConnect.AlpacaBrokerage/Alpaca.Markets.dll create mode 100644 QuantConnect.AlpacaBrokerage/Alpaca.Markets.pdb create mode 100644 QuantConnect.AlpacaBrokerage/Alpaca.Markets.xml create mode 100644 QuantConnect.AlpacaBrokerage/AlpacaStreamingClientWrapper.cs diff --git a/QuantConnect.AlpacaBrokerage.Tests/AlpacaBrokerageDataQueueHandlerTests.cs b/QuantConnect.AlpacaBrokerage.Tests/AlpacaBrokerageDataQueueHandlerTests.cs index 8abd6d7..9c5b6fa 100644 --- a/QuantConnect.AlpacaBrokerage.Tests/AlpacaBrokerageDataQueueHandlerTests.cs +++ b/QuantConnect.AlpacaBrokerage.Tests/AlpacaBrokerageDataQueueHandlerTests.cs @@ -36,7 +36,7 @@ private static TestCaseData[] TestParameters new TestCaseData(Symbols.ETHUSD, Resolution.Tick, false), new TestCaseData(Symbols.AAPL, Resolution.Minute, false), new TestCaseData(Symbols.AAPL, Resolution.Second, false), - new TestCaseData(Symbol.CreateOption(Symbols.AAPL, Symbols.AAPL.ID.Market, OptionStyle.American, OptionRight.Call, 230, new DateTime(2024, 12, 20)), Resolution.Second, false).Explicit("TODO"), + new TestCaseData(Symbol.CreateOption(Symbols.AAPL, Symbols.AAPL.ID.Market, OptionStyle.American, OptionRight.Call, 230, new DateTime(2024, 12, 20)), Resolution.Second, false), }; } } diff --git a/QuantConnect.AlpacaBrokerage.Tests/QuantConnect.AlpacaBrokerage.Tests.csproj b/QuantConnect.AlpacaBrokerage.Tests/QuantConnect.AlpacaBrokerage.Tests.csproj index 46056aa..edaae68 100644 --- a/QuantConnect.AlpacaBrokerage.Tests/QuantConnect.AlpacaBrokerage.Tests.csproj +++ b/QuantConnect.AlpacaBrokerage.Tests/QuantConnect.AlpacaBrokerage.Tests.csproj @@ -37,5 +37,8 @@ PreserveNewest - + + ..\QuantConnect.AlpacaBrokerage\Alpaca.Markets.dll + + \ No newline at end of file diff --git a/QuantConnect.AlpacaBrokerage/Alpaca.Markets.deps.json b/QuantConnect.AlpacaBrokerage/Alpaca.Markets.deps.json new file mode 100644 index 0000000..584be3f --- /dev/null +++ b/QuantConnect.AlpacaBrokerage/Alpaca.Markets.deps.json @@ -0,0 +1,288 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v6.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v6.0": { + "Alpaca.Markets/7.1.0": { + "dependencies": { + "IsExternalInit": "1.0.3", + "JetBrains.Annotations": "2023.3.0", + "MessagePack": "2.5.172", + "Microsoft.CodeAnalysis.PublicApiAnalyzers": "3.3.4", + "Microsoft.NET.ILLink.Analyzers": "7.0.100-1.23401.1", + "Microsoft.NET.ILLink.Tasks": "7.0.100-1.23401.1", + "Microsoft.SourceLink.GitHub": "8.0.0", + "Newtonsoft.Json": "13.0.3", + "Polly": "8.3.1", + "System.IO.Pipelines": "8.0.0", + "System.Threading.Channels": "8.0.0" + }, + "runtime": { + "Alpaca.Markets.dll": {} + } + }, + "IsExternalInit/1.0.3": {}, + "JetBrains.Annotations/2023.3.0": {}, + "MessagePack/2.5.172": { + "dependencies": { + "MessagePack.Annotations": "2.5.172", + "Microsoft.NET.StringTools": "17.6.3" + }, + "runtime": { + "lib/net6.0/MessagePack.dll": { + "assemblyVersion": "2.5.0.0", + "fileVersion": "2.5.172.9839" + } + } + }, + "MessagePack.Annotations/2.5.172": { + "runtime": { + "lib/netstandard2.0/MessagePack.Annotations.dll": { + "assemblyVersion": "2.5.0.0", + "fileVersion": "2.5.172.9839" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "Microsoft.Bcl.TimeProvider/8.0.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Microsoft.Build.Tasks.Git/8.0.0": {}, + "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.3.4": {}, + "Microsoft.NET.ILLink.Analyzers/7.0.100-1.23401.1": {}, + "Microsoft.NET.ILLink.Tasks/7.0.100-1.23401.1": {}, + "Microsoft.NET.StringTools/17.6.3": { + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.NET.StringTools.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "17.6.3.22601" + } + } + }, + "Microsoft.SourceLink.Common/8.0.0": {}, + "Microsoft.SourceLink.GitHub/8.0.0": { + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Newtonsoft.Json/13.0.3": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.3.27908" + } + } + }, + "Polly/8.3.1": { + "dependencies": { + "Polly.Core": "8.3.1" + }, + "runtime": { + "lib/net6.0/Polly.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.3.1.3207" + } + } + }, + "Polly.Core/8.3.1": { + "dependencies": { + "Microsoft.Bcl.TimeProvider": "8.0.0" + }, + "runtime": { + "lib/net6.0/Polly.Core.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.3.1.3207" + } + } + }, + "System.IO.Pipelines/8.0.0": { + "runtime": { + "lib/net6.0/System.IO.Pipelines.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "System.Memory/4.5.5": {}, + "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, + "System.Threading.Channels/8.0.0": { + "runtime": { + "lib/net6.0/System.Threading.Channels.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + } + } + }, + "libraries": { + "Alpaca.Markets/7.1.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "IsExternalInit/1.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jcdN7vpDwjnV7U9KGCv/oNIWHJ/RIbyrpVsLQL2qbj6Cbi5U3iafKsaMn1rP+qCbkLbkB0v6oAwbVEkqrUnlyg==", + "path": "isexternalinit/1.0.3", + "hashPath": "isexternalinit.1.0.3.nupkg.sha512" + }, + "JetBrains.Annotations/2023.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PHfnvdBUdGaTVG9bR/GEfxgTwWM0Z97Y6X3710wiljELBISipSfF5okn/vz+C2gfO+ihoEyVPjaJwn8ZalVukA==", + "path": "jetbrains.annotations/2023.3.0", + "hashPath": "jetbrains.annotations.2023.3.0.nupkg.sha512" + }, + "MessagePack/2.5.172": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tO/SIeix4UjmHo0J7Z1IRMvHEfqLlN9FAQCzwGcoG50mt7gPyYsAuMU9Ngu9iDSv0ak/YZOyobs0BidFde+gDw==", + "path": "messagepack/2.5.172", + "hashPath": "messagepack.2.5.172.nupkg.sha512" + }, + "MessagePack.Annotations/2.5.172": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LJWMr5BDpvLaIfsUXufFWQW3VRFg7EKnGAHjArbwCaSeTIWEXaRoClkQtPaXvtVPZk5ZIpc9SBQd/WJD/m99Ww==", + "path": "messagepack.annotations/2.5.172", + "hashPath": "messagepack.annotations.2.5.172.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "path": "microsoft.bcl.asyncinterfaces/6.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.TimeProvider/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f5Kr5JepAbiGo7uDmhgvMqhntwxqXNn6/IpTBSSI4cuHhgnJGrLxFRhMjVpRkLPp6zJXO0/G0l3j9p9zSJxa+w==", + "path": "microsoft.bcl.timeprovider/8.0.0", + "hashPath": "microsoft.bcl.timeprovider.8.0.0.nupkg.sha512" + }, + "Microsoft.Build.Tasks.Git/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==", + "path": "microsoft.build.tasks.git/8.0.0", + "hashPath": "microsoft.build.tasks.git.8.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.3.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kNLTfXtXUWDHVt5iaPkkiPuyHYlMgLI6SOFT4w88bfeI2vqSeGgHunFkdvlaCM8RDfcY0t2+jnesQtidRJJ/DA==", + "path": "microsoft.codeanalysis.publicapianalyzers/3.3.4", + "hashPath": "microsoft.codeanalysis.publicapianalyzers.3.3.4.nupkg.sha512" + }, + "Microsoft.NET.ILLink.Analyzers/7.0.100-1.23401.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XirkjOLc5Vc3HsXRc2Z6ZbQv6l0RvWgJa/31w7XqZ914MoSi3H3OCNRMWFw7H2EYfsnKbokFfhCcysAmUcEOgw==", + "path": "microsoft.net.illink.analyzers/7.0.100-1.23401.1", + "hashPath": "microsoft.net.illink.analyzers.7.0.100-1.23401.1.nupkg.sha512" + }, + "Microsoft.NET.ILLink.Tasks/7.0.100-1.23401.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mI6vCdPEhluLtMn/GV0texEWg5oAPQWCCE4LWspM+Bmy75Nd4EQsziQXrdOFqNeSBQMrxDX9C/O5Xi3kpKSMIw==", + "path": "microsoft.net.illink.tasks/7.0.100-1.23401.1", + "hashPath": "microsoft.net.illink.tasks.7.0.100-1.23401.1.nupkg.sha512" + }, + "Microsoft.NET.StringTools/17.6.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA==", + "path": "microsoft.net.stringtools/17.6.3", + "hashPath": "microsoft.net.stringtools.17.6.3.nupkg.sha512" + }, + "Microsoft.SourceLink.Common/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==", + "path": "microsoft.sourcelink.common/8.0.0", + "hashPath": "microsoft.sourcelink.common.8.0.0.nupkg.sha512" + }, + "Microsoft.SourceLink.GitHub/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "path": "microsoft.sourcelink.github/8.0.0", + "hashPath": "microsoft.sourcelink.github.8.0.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==", + "path": "newtonsoft.json/13.0.3", + "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" + }, + "Polly/8.3.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xN9AxOudus8u4a//Tfu6Wxd5Oj7S4pjh/651S6FfIiVrbxQ8TeM+ieZC8c0y7Qto70zKBM5g8rBTqbAJnbetOA==", + "path": "polly/8.3.1", + "hashPath": "polly.8.3.1.nupkg.sha512" + }, + "Polly.Core/8.3.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b9mMAjqXuCXFCtf/RtRPwFUkAm/sz37s7G+taDvS5EqfkJsLiWfO2xO2cSISjIgIY+88oIZTGguP6UrRGRlqzg==", + "path": "polly.core/8.3.1", + "hashPath": "polly.core.8.3.1.nupkg.sha512" + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "path": "system.io.pipelines/8.0.0", + "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" + }, + "System.Memory/4.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "path": "system.memory/4.5.5", + "hashPath": "system.memory.4.5.5.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" + }, + "System.Threading.Channels/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==", + "path": "system.threading.channels/8.0.0", + "hashPath": "system.threading.channels.8.0.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/QuantConnect.AlpacaBrokerage/Alpaca.Markets.dll b/QuantConnect.AlpacaBrokerage/Alpaca.Markets.dll new file mode 100644 index 0000000000000000000000000000000000000000..adb7700a4cf437e86d038efa26b991fd9a6a63e3 GIT binary patch literal 512000 zcmcG12bdhiwe@Uw@2oVdfWqt|36KaYie0Th0z?LpLFAlsjtw(JX=)KU=bV$tIVY1$ z1{*M7OcXg7+eF*g#w`Cir@Fd(c1MEe_x}B)xu?#px^*j8SNHU+xAhr?uuv#O`2W*S zg~I)i{F|!JIe*NAddS!ZhZOD}_`CVJ?V3Mzp%i#)~3Y@ zg{NBzg#nIT|6|~B#3JSr4xHa)>A(J_LJxk^(F0Jf9gi&(=F-1RCcz~74P#6ReA>O7r`e)&|)OAH2fbd$mL=z9%?XZIop7~@_E|wL3=l{kP3Oi1$ zR4coHbiSc%MFgHj+}z((G}pw+Zu`cFNMGr*Y`xeo-YU6df{U_V@kif+LUUou*P03w zh7=0}#bzJJeArT$nFVKy<_pY@g+i%wdnbeTQ|~DhnmXFTOKcNrv2)pk5Bmn$mN_l@ zWCSB&1*r}&_~?q82NsHECmKiYBNht^YeGUZYLNvS(*cQpq4v>uOK*_Rg zmaMsG1{rn@FDPVorPX_p+q}rF=clj`b#%9n@972TEuPp~C{}kvjEwL~`>-&5K!?uza1wpkOFmE&ndUw| zz$f~!H+^VR9)WF_4DH;KksT#jwq?nhi)PTF=mSG$U+=?`^q~nhb)?75x>TEJ(4ym(=TA|HDX>&=X3G7mm zp`9Wb*`+1Rb_vOvi)Jtjuyd}mGYK-~S zn4iT5$5M}EXpfML>`cjKd!*!$$Q~t7wnt0WTskw@Ilz#?99-(;c;!5c8cg#zPDuiL zykuxkkc{k!lFjxc$+A6JvgV?jA7;NjkB}2Q9WMuc1EZaRL zYc85;b3QPX%~@#u19~_p)O<<3b4DHd9kv>Y-dW=Tr@Mr*<{Gg1v>{b&Vl!p zhfua)#<_r@nTJJK7CrY(kdZ;F78U#?3uf(%?n+#v~qT-*DRdVBz=){0!9seypTSgBOd~L zu4HJ>lZ@>7lFjx4$+A6LvgV?j`JAr|nTzSG`Z?z`j6vGgoOTH`?B|zChW0Ya$fDzb zZ?;!RVotkKplq*_thsb%tjmOY zRY7G~J&!(;%~{vb?}d_x<)4e#k>oV0KB5^^1ekR7Z&8f-VTnDx%XHzRqM?2{T3bW?GJxLVgB zgJjJ`Gw2~4M+}+Ukvv-mFej%ruTq-8UM(5gUr9#x8p*P~QnKcvnMIvVhH^I9-!VI< z{rwK)MnCVA4DDT#k-b~8+1?|G{(i4O+1@8vbLq@tE)$0SxBb1;p7ohYFl+9I(fTew z8FZsAzc_ieL$QDzjQ;$hy#y^i2up#%{8*~~8Xp~%N$4s)52I$(H+~J!TYQqu`!Llr zsfiy^%+(Py=q;{=2~^62-pSEx*U`3x7bNr}ETH2Su$B!AW()vXDz>(S=22KY2$er( zP*5W~pv5c+_e#Z<#ou%NsByZ-e>PoEK$kDf?b`J>h;AQ65!kMeNtW#+k~K%0DXOqB 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 {D&wfa~a1>S-;XDOB|455vUWTA83E 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
ybMIVpT@W9TDY0?AM671yC-%2f5>l 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%0DY3Lz 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

?8`U9I3?Omov2V$OJpwKj1_6bq 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 HDDeLQc6wf~ literal 0 HcmV?d00001 diff --git a/QuantConnect.AlpacaBrokerage/Alpaca.Markets.pdb b/QuantConnect.AlpacaBrokerage/Alpaca.Markets.pdb new file mode 100644 index 0000000000000000000000000000000000000000..26070573ac22d2164695787cdab892ae35bbaad4 GIT binary patch literal 124500 zcmeFab#ztN9<{yp0RkZef;+(p?hWoPMS{CqX`xV{xEC$j;w~Y$TLJ`kcM0yarO=iZ z=biI#PVUSa_ug-e@1J*!cifEe zdxr5bgD^1`WU1Ss9p}YH(`ql_LyW2QhcUmpFdgz;udd&8?#;Z|E3`q)(lEr7!t^3e zS8Z6m5^5Cu`xo#E-FvXJ7GZ76_3zcY#>hgquI^|(s!I0$x2|BeX}oY-Zr=>XJ*tFQ z-(TSOxW?S^H|C|UF|XmLeT=z=T0f037=mer>G-Irzyt6egZP%qV16DnU>i)DBw!2h zgAB#YcbMiECK==F)8}FinyQ$?b>>FL9Wgf!$PY$=-@w;cWFVFt>f@LneO%@g>J8L@ zxQ@vX*JWCuc0&zA-G=%Hs)^?^<>NV~4(d46nW$$_Z=$C6bxdwwm+6N3J!&}WQPkM+ z9g{4+%Tz$Ek2(T%8tNI;o2aR=F**EPrXy+})D@`PQ6HiHjhZWgV@f1&nXah)QCFhw zM16w#8a1cCV~YE`%r~e*P&cCdW8D51;Lz(Ht+It_IR>Lt{NsM!-a=8Hrw(;l@q z>Ppm|s4q}WfXjRl;Fv0?eNacE?m#_?`VVT{#4Zz@*fCX6hoVkKjYK_z`Vlo@5|=5R z#4)u|2ck|ujX*tt>Lhhc;-oH97PSuQ2-In)2T(7d#!2RwMd;i$(^ z-=fA(?lR?)JEkt`P}Iq&mrx&~rbywK>?vHPF=}Vjxu~mA@1VXwEs@eOHB!3F7}S}l zw@{y>W=rLm!l_)QC+aZN2-Fj(2~*>INbNFBQM;n9LJdcKkD4Hj%hXEam=>s$Q5T|K zLVbvuDy?IJ(z;A1)V`=|Ptj8kEB^#d2Vrs3TE#p`Jwjh?+16>kGpAQ2V0(fVuk3)NFYi zQ#22bGiqPdFw`BWk5T_Y&70RTrSszYL>+><33Wf}->5$Mu>bR6|D%47Iu><1>Jij; zsDAlfrf7c0R7UNK`UC1N)RU+_1u(7xE>j7$0qP{w1*peRuc5{*h~rlf*AZ$6>R8lS zsOM1cqNXY2m|TTirX}jvsIySRP_LmrMNL&0=Wk&gC)96ISEBAj{TtP%2(F_dxQW`@NQ7@rBL``49 zF?mb4Ol#C0sH;%JQGY}IfLgF5jzdY@?@&jh?m<0`8oLzk-=$op8fp{NA5rI{UO|0~ zn!YspEsgs(Y9G|KsJl_0qkcp!Uk2kT<1(XBe?~owdKuNftYgxb#eD^}E9!jIwWtqJ z|3WQL&M_6r;kcuYMcsya6xCH8<0T@GwLDK zx2Op!Vmm70^#JuJ)KJtY)aR&KE8+E^lFM{P?T@+^H4^nLYJ$qRUsuL9z=bQ8c-A4R}=Ru)G4UTP_Ll= zf||Y-?t`^({84+Ou0V}IeTf>UHmqni4x(D?<>L=8sjd5RV?3lKwi&3|tzC?}F1lMm9$23Bnh8l_*h57RHsd%^Z`q8IBujH`HaQJ5V2^zC#Ue?wFd*aX&zviyDRc0yTFF z?4K4cGYs`7)MKbOQIoX9>v&6-X@>d@>IT$Yu2|+Bha_8<+VKwGHZU)TyWkQ7@yKwzzM#b(y-T?NGO)UO@f1ontn( zbD7=kabInZcK_xJcaKS&jaSFXpX+r`z3Z;_B6xa>o{uN4$+64_;5#Lj2>>al#P;+T z+hm)#i*?2|Yf-m=UD17TU2)C9De=r%a0T24&!+gAmoeJ-nl4k>*4Hd^*Z5}j)c9r> zI55@ETm(13eRsxo{PHu;Fz*lW1~}6`&*l7h)BH>#xBHnCGCu?6=Wu%hQ(#&G6Aa3L zDxP_@G2IZf1RX&4Y5wLrFc6G%xA8XVc-9E$9lq1^s{GI+B>vn0^a#{ruT`{hY)M z@Jx@u^ms50%m>TC+Mm;ya8PhY8dD6E1yw+8&;T?C?Lb%16ZD($pSGo>88V}!84V_a z>0l0648p($umkJ`N5NTe72E+&zzgsin3<(aJdg;anE9X9#rb7S=9y(oPEY^@gEF8p zsO4U+tO=P})-(fcK``h7dVs#}yqp<4vz(a(7J?1nFt{?aytxIc%qnl{gI1s$7!9U^ z`Cuj30JhJnWcJLm$5_=InpM@D1Q)>dS=G#4cbn?w$*k(;jeEL=F|)Z`O%r!^O_LBL z2kAf-kZX1=QwUT9HQeoLn|iZrn%k3*>z1g zxC-vfu5TWLdUNWVCUZhe>p5J11Jh|v1Jer(nbXjWcF*H{{c31}<~B41<~B0*K{L<} zbOXKSHZ}vmh`HYOjm`MEP0ZA}P0ehu7_0;vk?)Ld)6ATn+uXbcpXRnOKJ!`_e~=8M z1(`ukPyhsjGN3Z31wue`(0*P^^A+d?`h#KfTA49mI#>u+gM;8Kh?>{NJORIhzrlxj zZB2stZB2TR4-^HZKt)gk)SK_!mVZ~73nqgZU_Mv|R)bAoC)f*)fYaa-hywS)Gw>3;2A_b>;!xuc zl7X}!Gsp=FfM8Gt)B%ka^H{Gitro8^9YJ@{8w>!$!B{XE%mDMjGO!wK0z1K8a0HwN zmp~M_51xUS;5GOJe3q;*{va7h3o?V8pa2L4Wk6+63xt4Xpe>jPrh_?P@scnT2G)aZ zU^h4jPJr{^8n^=DlT1RYJhr6SDPlF zHRuGs2H$~!U<4Qkrhu7X?BdmC0qSzF25bi5U>`UN&Vb9{CU^jT0e^ruz${yB;(~-A zIY zvB?Ci*kn?I3?LiGvtqL;3`&5ip_{SZ%~5w&@fNcdbqhEIPOjj1wwjA8wwfE@9(W2~fJ8I5V&7~v z|6n>0^`pD(Hscev&G?6Lx$P!d*mjc^WClH!Z8tel3xHry23(r9-Bd=c1wueG&=zz7 zJwRVD7>oiFz%(!$ECMUQIsw2wF~F{E}Zwf zaL(^CW8jm(&mey2E}ZwfaNh62vE60nVct^k!~9)l73xN?14M$u;1swBZmimkK6j%} zR7^hyufTf{YxQmuA0!5;Kp@Bt@`56uB&YyFKr_&G^&T?_j08!R?lI$0do0_7`_3LS z71Oi8C`>Ozoran!bPvY42jkp>^Jk9<#r(Bk3y1*w!7*?a99pr*TtU6HIuh%M#5y8z zjz;1fjl?}568j?($0ZWSB@)La62~PH_qIr^ClcpMB+ivctRoWZh%|42SrdtML}DG0 zSVtt*5s7s~VjYnt?wY+OGsp>EE#Hg2_nHEj4hCgFWl#%*fM%dA=(TDuj?rGzWz9ZZ zZ~M%5r~|k_QfN6y3mY@Up3iJZ~!7wleOae#I?hN>O?Li#>gJv=6 zE7bQO4AbkuHn1BU1SdeVH3!Xk)NA0>s)IO(4w^e_58*f*GQXn!3EqN9s}AA3JcRT8 z5YG2Q##wjB!~==e9X4q}W{?vUSjX$-2(FhSIA@Mv{YS9=BPMv=5mN^AS#bpSy(3uu zh^Y)JEQU1cwF_`S572krF*5>;0~c2u!|^y~reJy|SOAuTHDL3) z<7O{70xqsNj&{e*X-r=NQD8Y(1MaUoVP1fLz(){g{Rxu*Bn4?eVCV^x2{mZ_NwhnO zb|=y9B-))syOU^l675c+-AS}NiFT(VSk*$Gr}oT5m^l| z1=BM@Jxn(NGZvr1^V2EQ8q=M?*Wf!a5R3rhz!WeOEC9>F8n79JgMHvAIJ5q=xeRWC z2f)XD-#=r1S$_u424~D4sBeJTaK^+12|;p@4rBqjKtWIplm%75&825dZPW&!IcNvE zf}Wrs7y?FviC{XI0~UiYum>CkXTaqRXU#j{+ISYPm1m7FY5+(HGJtF#&&G4O{?FmO zJBM@T9L||@rZDDBT6GThm~*(toWni&oGF2MwNOJq!5QaFd3ZHY2Q&g_mYy>$Q9FS6 zi_YQM`<(d-)4f1{Fbs?Vlfchl9#{%ifsJ4Xh}?MITmn(x>w{F z0!o4kpgO1v8iQ7#Bj^r#g8^VT7z-wY8DKtG23CVjU?q*bzGy@O|h-lO<7O{)CLVebI=ZS1wBDOV3u7sLr_P9-QXZNvGs;I53YfMYi{7R z4Qsdn8&Dd7T&<~=MD25)31QpaKpSujkWEDi4PKkR3H#!2YEpeP!d!C)j?g* z7_+dC2A4n-IJEMnxsUn`yaex;+{EYLH_hv9x3Ir&VSnGk{=9|#c?*29ry7( zd>_xl_e}{*Ph5E4lt--w`YgYXd)j?d2h%CH-#3j=TY`cc?wby%Ux8krKNtqafJr+Z zm}Ou!_!Ra4&;Aea?Ee7I{txi%{{YYa5Af{&0MGsp@I3bb&vOrOAA5jj{|9*Xe}HHI z2YB{>fM@>)c=msQXa5Iy_J4q9|A%JNj)!I^Sc&NkVDFAcINp!&zV4AZg6Y%X#fnFG zU-Zaa!gLh451xUS;5GPh{v-1V)o14;yk45jC1cX&b`Mt_a5WidyI4MG0wfmIQJgo+w9+w~ON_0;shbYGBT=~KKG zJjFTo6n#F$Gx1X#^QU+gd1?m3N9}xuF+9Tn@K0k?MkVjhBD!JqE^z0pPQ5*FDMf3&3-o}!+$qbK?vvo zzKYIXm|o#8%vdlvdfrRSdx?23W!@iVM))6QK3E1;gH2#3*b9z;)8G<_0#Cu;;3M#f z_`{?Exj>jw)_=_Wh=1^W@sC-Fx&dql zd%&TH*XAU+3T{WdF^|B@9dFRb8}mNmt%96Yer#u!mf8_8dv~Ufo;3qoBiMzI18?TTf07(hu|f64L$*%-5-qq?vExJ z$OQ_5IvYQlVyI<7mEE6AZ4k2g6OQ#K(;m~^b{pqg5E5pb!KkCagx!ua4J-i5!5Xl6 zx626!hruau5!~1v%jqybmeU9P0Pew`f*0VQ-Q1r4^cCCrxI4C!Xisb>BPa-pfwG_q zs0|u`=Aa$u3VMQmUhv0$C&DI=Mk9&=|A=9YOcVc*x^9y(4{{0g>^6AKcIRAu@sUW2C<` zJ2IiO9BhnCApCblgmAi^OHLT z_a%2qgGyj*^mUuUsktwO(-^b|J-|RP222MF!5Xjy>;ebD$$crEi{K9U6}$$q_os9M zKspcvih|OhGN=t2f|j5o_!{&9gTZJpX@4s8m&%!ex&*w&bZpcBunq))q97dX2gkvA za2?zOzwA$qZAgu6NR4esjcrJcZAgu6NR4esjcrKn{E0U2K&%6)9Y2s1q&<)Z%ca3` zX|P-xESCn$rNMG(uv{7}mj=tF!E$M^TpA|}$PEe~Nb8gYclM>l_NT>o(_*}7G2XOJ zRm}eqGz2X`hXd)bj&xW@I;6Acg4tj(SP3?QonYUA49+od3H%LQ2QxUnVDa7zP5^33kl`TD1Ab+2 zvcdDXJrL^-#JU5q?m(kh=a1F`NvtUD0v4#c_xvF<>uI}q#6 z=oCJf(WwL)f)=2C^twK;@n7FFIo%Fsa{7U3U@2GyHiG@&I5-ck{m13mQ)cJR!OYG} z@B#QP_x7Fz^Rqay4`so84qQ3Vy({VBL1%2$F+z zAPdNKgv;?Or&I7qE~hxC0UCjp?ku;{;Ye;L*{0l1wT-!*KA0W^MuPERDwqWpf>5v) zYylBqKR5=?f-B%w^t$pm50B(=K7iy$^Ei1y5l|9T0M$WV&=|A=9YJ@{8w>!$!B{XE z%mDMjGO!wKI{JBQjLGZlJen8BKQE4dUL60ta&F{v&K%9>Tn4qm^5Hc%AMT;~oXtz~ zIXB(Q=XV|+&F}mQnuX7f8ne>{+TVPB*G1||MnH^>^~mtC7m7awk4fNEO!`O0k^vTB zYOo3H1be~JvlX06AS%YP+VB63Y5WU^v-np~;2m(C!*8sE0Fd$=$Af>7=c$7|b%Uqg z_tX^UKewytslz;VtEWD3SMRpPHi<68HYq@Qko5xR$2N^Ub-btU_S6@in&qOWou^K8 zS8tzj&EAV~%@J_gJwL8-E-{O1inyz{ov-P7$=CFB&+|2l+|}O%TxRZPD!Hq_`QGEJ zJ$}nw6PUzTKDVpvu4w1+)t>tK-;?^8#8*B2d1^m*OO4Jv_Jpa~cZrbyeF@P%LnSP!;?NN@z40arZz z-^TP~&vd=0&+GZkT`Qa5oAk=2o4ZyqQ$6*dyE5ZfUGwZ_UGws0ee)WaTc79R-};)k zw;G#-Ah~;9V^h*y8=7{Wy3*9&thhI^wI=1z?HFHOAr z-c0LDlQzcux28f2_qN4*k-ZrdwR*vD`ERWMZ z#{9g__!#bOm)BVyV}5?;L=5+~%kTUWV}1cA$rEp;wSbc?#{5D~%^2=&8|-w7o*(QC zkDg{8?2LPYXGQnCVh%on^?a3df}WOi$~>i(bgE$bOZRkXC-iA)=lqh=PO8w-&Mwcq ztC)A&Gwt_`%anG8dFlsG9rw%U`FA~a_phIQ!Ec{ytLLBVeRt*bfBQ;ee*XQx=VAXJ zd4xMpV)jS3t8b3Er-PldzXv;4Jk#cdcRi(@E-yaQ1GPu=d~a@7A3WW7|K>$XgmJ~I z!sChOh5L##k1x*LPn>xIapwNw%<+5?y?%Nk%L6P=YeuTb%npk2v>tUfF-#-}%J3zw?W8e-^O3 zpm-4SLY5a6=ki6wxxS*}T;CVsY#)p(K#ylJaqiFJ;-%mvEH5d}{aMQL(&F4dWyHCE z%F1|L@N(iDe|d3^zk)c&UlCWNcl-n3Rm5|{tBTjPyrRcrp@+(tjt{EgJFifF6$aJC z{oysSes9j>QA?cTt1Zs)eJRfUS;z9a;#rW_6X*V{Z+VF24a75`eM51suaP+O#^T(b zCgNOQQ_Gu)v%luze()CJT)w4vX?QDf=B+JnBhL11#kqgmiF5h(;_2ZXEbl1J>$#J7 zPIzZ=_SZ$6>+foLH*s$NSK`&--Nkvo`dXarzY*tndWffi_Y~)Nz7@|8?`3&!akl?X zoabvFaprx+xxRkl%)ht1zj!a?1H|LO2Z|?x4-)6~I#}EXK17_`KNNVcpSYMFCOP{X zF3$6Hgm^aiNOA7pQ9%0}D>>IUPMp`{cyV5@6U4K^CtCia<&!L*Z21(+r-}!n|7n&_ z7w7T#$?~5qpJDk-%V$|W+wwV<&-FZ^VAZAvZhP~@xqs%1bN?+6XTDIJ`69~~TfRh` z_n)QWJf6$MnJ*XT^@V>I5`Dax zRRq(#KG~j6MEx(^&is-% z^ULDQuZT0hD$e|xIP>e`%x{P@j}m8oQ=IuNapwFW&%1y4dU40{yV5>6vZvyF{&;5j zFP8sm`EQm#xBPd@Ut0c$<$qfKm*uZ4|J(9^EPo@;*VDJ+ykET&=l$xvIIr&y;>;9A(o&t`)xq>NU z3W8K&jHT_Pv%)a?}wS; z$vw{JsjOJu>)f7f;sNmN;yj;ni1YnQka!+=PVss0T;e0)xh>Bleh7J9%kzn^L7rdy zM|c6t3yO1l3gP_mZeIuSjF{&09`h8~AC)kj(BmoLJh%D!R~UIJ&;Du!FCxzUUDQc| z&qzKW?-cMa#JN9$#reEc4CC{*=lDv9^ZY3(&i6N^#Cd&{c2Y+#zf_!K=kY9qJgsLu zZQ*6bc|DX9XI@^MujduS*}kGU?+=y4`MgjW<4f;ZAJ2~}mRGgBnmG4Yb#X3V!}6Mz z*AnOWYg_)McrE00#JRq@;#^-napv_c53#%fw%@zG#n8SXt|zYt!y8%NSbR8g^^P9T zfc@7K(>#VvaK8-n>`z|*O~twYn_)cOoaa+>%Uf99((+c8w-(QY{@PgH*7A0iw---` z{J6Yb@@-E`MKD%1pO`OjIUs>K=ocrf%aqi!5Ebk%C`*lxow*OX~*LyGV zT=3rF3EZ+`fMBjGp7o_lMtG-rq6NIbXjAi1U0HD9(J4IP<~MAMZy) z#F_sf-V8nlp2;&FULRw{`TRW&{d;q+Z@lFbq&@GS6UDi{A1$9G&iyml@+son|5GiW zEzbMtTyb8H^DLh)-VXT!@#^q};zi(#;F)EAEEfL~`4ViuH|PFXYWXs0&;7Anocklx z@)hFT-Z0BI;C|v=AD;&{iU+|riSzv0EY8=LE$}R!?P2?^;(Wc?CY}$zU7YQASiV!7 z`#W4bBRoQ!+p|lYlFU|8jVo z=ksB4U-%L6itwZGAWwU~9vl=fwGY=DIzEYg| zDskqk#hI@WXTDaP`8sjt>&2OG5NEzoocShk=9|TtZxLs{Rh;=Yapv2_nePy1zEhle zxH$6&apt?kneP^7zDJySq&V}v;>`DnGv6=H{D3&~gW}8&i8DVe&isft^P}R-kBKus zF3$XfIP;U@%uk6kKP}Guj5zbN;>^#9Gd~~eU-uinzqlaI_7}yc!!OJ7%&&;EzpLWR zuZc6iF3$XhIP)lR<~PNe-x6njTb%hFaprf$ncovS?%zqbW{z9DjOL69Zh%^6FocUkk%wLH!|682- zKjO?^i!*;C&it)7^LMg8*1+Gx^LSqW*#3j~Q20l2K0kaC=ko!67!YH5N1W?(iL?J$ z;>=@wTyf^{#F_hwGmkIM+)tc&g4l6ljNf0p5AsCPp34V_bNR&L%#(;S zPb$tlnK<+0vOeZ1#JT>I;@tnKWO=qvZRKgKJgqp_mrk6^rx$0QL7aJ@IP;9+%rl8I z&n(V7i#YSF;>@#&GtVy0Jcl^*AaUk7#hK?4XP#S}c^+}*dBvIM6K9@ZoOuCp<^{!> z7ZPV)Se$tgappzEnSUY9JXoB0F*)AV;Kjwuz)MJbE?-id%a;;oURs=a8FA)i#hI5A zXI@^Mc?EIi6~&oX5@%jnoOu;-=2gX+R}*JmU7UFhappC}nb#6$UR#{`m*ULph%>J% z&b*#D^ZMe93{n5LNXMuk$ z&gH)m=j&e&ab90NrGK{nR-FC!5@+69ocVX+%=?Hl?<>x{pE&dH#hLdPXFfp2%Y2|X ze;;d*IN!eymgU)gh&cNjD$abEIP>A+%twebA1Tg!lsNOzG9LO5;vC-?aV|gB@^Rup z$j3|nY(GJq{ZABU{-ZeaN#e{Wi!+}RJ6-hi0>?L1a<-o)&i2#Ang1lte1?%Ic<9T-xxbc+bNNuq zSBM8850n1cex*43UnS0bwK(%N;>_2IGhZjpe7!jH4dTo@p!Grum*{DwI5D9dk(v;8eO9(?`0EzX}`-;wt0@2)tPzbEZS!S9Q+{R8n% z@Q333JpYmO$M%oK+5Z!9=1;|$KNDyEi#YRN#hL#m&iuJJ^WVjpzYu5sQk?l8vOUcI zwEQp2Us?XQ<^PED=OwSj2f*KmbA4|ue<#lS`+FHL+kX(}_&|0K>FzpfJf`o$a{ zUq?H0mpF5L92FzSaH5@g9C0r1BhEaoIP-Yo%zed~$47_W&m;JH;U_uUClF_Qe{tps z#hE7(XC5HVJh3?QB;w4IiZf3p&OEt{mw5{D74THjo_T6BO0*7iXS9 zoOz%)^NixmGl?_LEY3WOIPfappP2ndg%IMb9nH_IWJNE6(d7 zpY+G}`Ni2^0deL9#hDipXI@yGc@c5uMa7waAl1C(iceEw3QX>#d@!pY1D&v%kvX%&UkquPV;GnmF_7;>>G^Gp{M* z;r7%L=j&H(Y0u@q6zB4F#F^I>XI@YGqt_Sb`@s-#F5f_$?*|)-^Zj5W>7VTzi?jbG z;>??hGjAr&ytz2@7UIlXiZgE|&b+la^ETql+ln)9C(gXRIP(tT%sYxR?^2>Gw&w*lg}$(i8Jpm&gH+h{2Or|j~>!L+xHY_f8UBT?w>b0f#F_UIXWmzw zc|URH--|QvFV1{`IP-zx%m;}xA1uy%h&c11;>?GMGaoL_e1tgjk+MH|JVuE#A1%)1 zf3SRvIFH9z>7VV#iL<});>;(AGoL8^aXdd-KFRXQmQS&Ks^!xxpKke2;vC=4md_C9 z{d1;_pY3Ofb9-isGoK^Qe6IAz?VV@&e9ISDzR>bTmM^w^iRDWzUnb7+F1I{XoZG)b zwukM*#JPPd#hI@XXTDmT`5JNNYsHzb6KB3&ocRWE<{QPCZxUy|S+$mX-t(4U5a;$^l(`&itA<^XuZwZ-_IGlJPLVDbAk{-V*0{Z_Dy*e@C4C-4$nkPn`J!apn)jnLiR| z{#cy(6LIEG#hE`7Xa0*g^Iv6qnExiu--mcE&gcK%WqG!LAQP#)p|0K@#d;{)%|4etp zIX)L2sx^-#&i-SIbNM*p%zea}#}#KDPu9or`HHiBe9QgBIlctaAKUwjv;TzR%oB+- z4-jXbSe$thSs%xjRGjUTS)N>+<4Ym^v3*K$_Mb|ed1`UyX~dbQ6=$AK*2nRs7iaqn zmIsP+d>N%bw$CKa{xgd+&mzt|t2py);>@#)GtVK;JV=~*PI2bB#F^(7XP!r#d0uhm z`NWy$7iV5ToOwZU=7q$W7Zzt;M4Wk1apqr$GY=MLUQC>MadGA)#F>{AXI@I2d1-Ox zWyG166=z;f&Ig`9EQJi@tapqOTnO7BOUQL{Nb#dl3#F^I=XI@L3d2Mm# zUy3uYBhI|8IP-eq%vQ*q|a#F;l2XWl}N7hiu` zO3wDJ#M!>JIP*5*%-f1HZzs;Yy{wPFZ{I=u3wTF(Uip2nPU5qWcNT8|?}GldeOGa= zubVi>^OZRB?$RH(|7&qHHQ$JH`5u<{6zBQ=t@O|Ky~Me`-r~%^6KCE>oOxey=KaK( ze=p9wzc}*&;>-t%Gan?*e6Tq4A(jsnXZvB|Y(HF_`3Q05BP|~#&i13l+5QJ{=3~T} zj}>P=PMrC8apn`mnNJjF{-ZeaN#e{Wi!+}h&U~tz56q{Dw}np^=f9`>NtS2(pT*hV z3~}Z&#hK5N{t%hj;yj<{i1YlME6cOLdE)GEzBuy*;>;I{GhZame6cw5CF0DNiZfp( z&V0Ez^H6c-E5wLTAcqr>Wny_ zch5@yT>hLm*LPl=`2}(27sZ)h5@&u{ocR@T=2yj;UlV73UB=6wU)&H!Qxj$RO>z9{ zwz(zF{%=eF^gH5Q-(6|X>*Jm{^ZVjl{(l7fV{!KPM4b6kapup&ng1fr z{8w@2zlk${F3$XSapo_?nZFcg{)ag8KgF5bnIP<^7ng1is{IxjqH{#6SiZg#F z&iuVN^AF<8KZ-N|B+lGmrapf;;>=y*Tt1dK^Vs6d@;(UFJC+)es zuQ->FFV5W0@&w{+?=Q~w3B{Qw5@#MD&OEU=^CaTTlZrD>CeA#$IP(^>EGfyYZJiR#c4C2fK#hGUmXP!x%d1i6uS*+uiRh;d!iLZfY7w79k4(X5W zgT&c?PHE5cBbVfCpIe;m^GJKmS5U4FCfn43yL!@B+k6B^vAr2IDa4Z3u(_h zSe(lj6K7sroOuax<|W0Mml9`QTAXBF^Jo75!`bYT{g9b#Y9Z8sf}riZibz&b+ob^Do7j*AZu4SDbl0 zapv{KnTN>s@O*3_IomfBXZuE0`^J*9eG_rEZz|5bnK<+2;>=r!GjA!*yp=ff*5b_D zh%;|1&b*yC^Y-G*JBTyyD9*f-IP=cp%)5v)?<&r`n>h2YWPdX6E-W?{+<%e57LOclhNa>&LM~Sol(c;X15NAF{ocUOB=HtYfj~8b? zL7e$SappgYGoK{Re6l$6DdNnh%Jwp!X8BLjp83z>Tz-Z)^O@qzXNfbPEzW#S+;lPS zk8{O&yyi)JE zDsf(qtHs&h8q3#;2O(c4{j>dgajtKJIP;C-%r}WM-z?62i#YSG;>@>+Gv6-Ge1|ym zo#M>HWqbJhV-ezPze}9IKek((pFix8{@6ZJoc-?=XTDFI`F?Tc2gI2l6lZ=&ocUpK z=10Vt9~EbQOq}^~apos1KPk@kr{wzJ`EpvE%b&6QtT^9~o|FFA{=7K*zaY;1qB!$Q z;><6LGruCv{Hi$fYvRnWi!;9=&OAz-`Au==x5Sy>7H57(ocUeZAKZWU#M%D7xcOtmj7w_ zUzWeJ{BLpoe*Qn=d>(!+&h@>q{H-{jAKuA$+5Wva$Nxc``A2c)pRE4yA0)(heR0Iu z-X+fdVu>@4EzUfSICCFy=5fWD#}jAnE6zN=ICDR7<_W}^`-?MAD9${QIP(B;=846b zClP0!RGfKoapoz+nWq$Io=Ti~YH{Xi#F?iRXP!=+dHQ(&dcQ@_AkOE5Kyfag(eg~< zLC7;p|7@Q{oc(7NXP!-*d3JH;ImDRTV6z**KbjAUY}n`e_TFToc$LQXI@;Kc?ogmCB>PS5@%jooOu~> z=4Hj1my_`_FE7sbD;31~{7_MrXZuRx?60yo^D5%ZtBNzPCeFONIP)6f%xj7>uO-gB zwm9=I#hKTU?cwWLU2(RrCq5ruU!2D?BwqaJ`y)SJZy=684QCpP^X~^X!}3KupMM0w zn~Mj+TZr@TO|}&0cv@NBTD&asHsbvIeQm|LzINhVUwd&rKX$-Q@s5w{>nJ(BlQ`Gc zS)A+ZBF_H1TK#pi{3~f+745r=v%jy!+21$T@;xl?DeXDFZ^hYPFLC}nr?=(biM#)v zqvd@q?`QeA ze}9mi*UK33=J2sr`*D(&LO$NgCs;mF+Vk~kig;4^RIB|o$@%yGrd$4#IR9SI&*BN; zGsJm4&lKnWoh8oo&$fJyczNV=t?|vXe7>~LjP?t}c{~=1*M={$mS1f763drbzRdFF z;+Qm{;=I0Bh%*lpXTDOL`6_YdtHqhGk?rC2w^p3TW1aX2_5uC>V);>N&%YOUOq}mmj*Ij9IAJY+QgU9O zrz}4$&i!*nJOF;y>hGN7{ClA1#od3;PMqVrD9-U+viiF$ImdU!@~h$;-!*Zzzb?+> zdBf^I%JQ4ip6AysaWplzEq^S|^*<5k>)})J4De^-Jf6Q;>;F}p>-$Zd?VpP?|6QE< z3vuQz#hL#h&iqet=6{JZel^O8;EnJ8`b>y*Tp^ z;>@1z&wm`hk9b3PTyg%r*LdQ*zxayt{Eu(B zpE&;>ZUS+R$6uW1Q$ouVi5Ev6AkOtC7U%kth%--Wc{0nBi*xxD;#@wZ<*6)BEza#p zBc2_eRy;pEojCV*ddoA2v%f%bzW!&FMvOGtZ;ucSEdC#A%(s3|SZ@s*MO*ne5e%ZYP+<;B^)f;jVv z;>;_FGp{VpyoxyUs^ZM6i8HS*uD_l* z`>QX`JVg5A@n|T{>#vct=kkrkxqK6G=1paJ_Sa0D<83a^=bIMdyuY**=krx7alU@H z7U%Op8*x4#wH0T7?Znx>y*1tr;@qB&(jLD$WjcxT`spm56W&Ff$FHk6Uk|&9bANs% z&hd2@PXqs2oX-c}h_k;Q;%whj#?Sr#t>wMMxqZFG+5S6m=6%GO_Z4T}Pn`Mp;>`QY z__+TDh_`_c6mJb5B+mUeSe)m_5OMCWp_UI5=l&Qj&iyw+oc)ayXZukyes0fb$@%%v z50;M+=k|>iXZvyD%*TsohffgC51%N`@%<>y?VTjf>tV7uuZJn(Jin)k^Lm&j&inuRi|2&T5$E>J73X;7iF5nri*x%Hh;zIP#kqZp#M$3s zakgI~&haj_e3>}Mzg(Q{L&ce|5a;%ViF5ob#d*E166f{5TAbruBhK@2tvJu$b=LX0 zUUH6SgE+^#Q9L7jlQ_?}&Eh;BTf{k@t>WCCZQ?v0+r_zmcZl=ftt!o@kh2yyPe zUE&@3jGk+@UV zKRe_^o{>QEs>uDtxqL!#_Mb?c{RLS4B^KxLOCrwpNyV8blm58=_=lau&bNv~_x&49S>@TDAN6#eA{xeH^_Mb(Z{bv;qf@c%w z^ICTCV(=W|TwjpoImLND$tBM9<(Bbr`8?trZ(ecc`NWy$7iV5ToOwZU=7q$W7Zzt; zM4Wk1apqr$GY^*SVO~s}*HdwEo-ZZDaVeUT;@m%_#JPV;i}U_hMx6g1x2%kZ>n~?{ zdCMzUUeWSOmRA<%_Er(+`l^aEuO`mCx;XP1;>>G`Gp{AiytX*=FU6VH5ocakoOwNQ z=Jmyyhln$8AkMs@IP*s0%o~d{Zz9gTsW|gya{PFFn~Uee52Ra&XGY#qoYz|`arWO@ z`lq)M=la@;GjAu(yuCQ{4&ux^iZkyd&b+fY^DZ(zp3hyyxxL-QJHWpZ=g+shi}UsL zYpefnBqtnfDiGK0uuLKyl`S z#F-BkXFf!n`A~7@!^D{n7iT^~ocT!EUp!u;#JN95i}QT^LA*G8j5yEFvEuB1oVC93 z;vCNeakif*&iqGl=99#kPZnoBMV$Fmapu#+nNJsI{*yTKpT(Ka5NAG9ocSzq=Cj3_ z&k<)nSDg7g*?&A9^Tl~Q7Kn3yFBIqUi>&?@i*tQT#MyqSEYI~V6X*Jti}QImR6G`Z zh1Fk}IM=sQoaR}H>aobA_%^YiBQvOMz*;_PpuIP*>7%r}cO-y+U@t2py* z;>@>;Gv6W3e5W|`aB=1lvOV12yTtiCuv?s;fA10J@z^WQ=f8d8T;G0i_J2T}%O4cy z{qc~DkINqx=Xj5ZGe0WM{FpfN=ah_d=Zgy_Dsd z|6%!`(w_NW;#~ffw9f_qTf86qA9xAR{^93auf+r5Z^V1U--@&SJ8}N}^}RT^|ATlA z_{aF!qSwdc`AMADlkxjk&gW@IJU84W&ODaovBlYc9Ls$yk1NjWF`jrZ+*h2Rhr}1> z_9ev+IlcRj`#+gD_kVJ6<|)LPrxa(NN}PEnzo6*;{o$F#`FT$k@mKJC;%uK^oZDAG zoOwZU?*BsK{CQ$w%ZrHf_cM!%FM)p{KEmTAaenb!!>MV4k(ctEZ`^;y#Cd)e7iV5V ze5A)qV|nfyzJFt02F`m`eozu#*3*9>cq#Gn@X~&{O*v0q6JAc7@Bhk+e=E*&ou9Wb zFOTJUZ|D7`0=$CsSJ5wDwC6$or8xJ09n0&AS4CdW^7`UD9wFj&;0-KqXn7;?+GyWc zoa<|1c~i@qiSzTk=6?C3w~ym#VR=i-TUp-P@-~*YwY;6>?Zq=={T=*bMURK)OGk0u zzsC8+j?Q^~jkkP)D3u3BxGx&6I=096LQ=IK*i#LbQwS2zi3&pFU z{bKPbZ0~YEpBUR8YWWJw!^9h+zg3p6v3#B78^pOio5cITw}|(HZxi1H5BG~3W4sZT z?-FPKdo158-V6Cbe1Pe_KB4B2_!amO@%(7ub-uRT@Z^obB&h{!qLC z@~7f;vHdT_c~AdGoc+BK=lTB5@(-4O66f*`{(}(j{^jzqERSQkZvy}5_I&+{FV5#p zKXG3F3B-B-NG#6Z2T3B%*O;W@yx%7iXaC8?d48l4=j&@~%hQN+eQCw{e34GPAUwTz zZg>WG70>xsS)AL>?FmF))syq}EF-*{$9Ya?5$FEMYI!zszFub+=Q?tTbNL`~z8>Th z$A4X8a#@~Roc-q&=l;qkUJu9L>m2(BPhK6{lL8s{cLB7o;n}|0nCEr=>?I)DeGHd> z<7r>h_?RS~0I>s=M`gYatNH{mrBq>k=CE5=hxocFXZ#p5Hd zD?SKbUwj?BL4ttj{t~+WTcs4BGRr~?GJ5DNZ|2)6H7U%fB5og{*oOw@i=HH4l?=8;! zJ8|ZHWP7-tF{S6Z5`7~6V?T5+o>~FX@^AY0AM~X8aCC+@b zIP)LGnU4`?K32vv06tN?3VfP)Vw_Ji#F@_%XTC_Bd8l{@@>Sx@H;D6outj_{@^JBy z$oGijaxnYEufdOqcSZYS;=%9};yK}G#9LwcE8={;y(u0S?eB_n{Ex+ZBL77^6!}Z> z1;}5CbNP4TzQ{j`GmnG+u*-XWWJc~Q&ODKLHsndgIsVk*DUqia=ki&^dHiySGtVnN z9eF|V$;gX~4}zB!Uyt?`#W|ju;+Np{#7CfgLviNK#pfe$EzbTril;-~Rh*x9^$?$l zytg>FufO<5_+WANKhi&Q^#14ju~Fhx;iE18L7czuF&^H)bN}^$Pw>wc?Tg_*iqFCL zyv}En67VVhL8hT+dA>eP73cHEbaCFleiEO8p06VdBfh4`A6mU={L~p5+t8`j=-!wh!%@w?*C@(|jIW18?VP zzZL8AdKfak-(82iy(iCwWxURP!SiK@zrX3=$xFfaT7FcV$K$v-_xCCP6w%A0dvgZo zlea%UZ=MyuC(hS@?yvL6J9^e%8e{T$II{fU5?0d5lXLx-#rgVhMV$FnapwHu>zZTc z;=9Xqz&c!}6u!rD&x!4xgZsR@%_n!tHrPA(?ifBJeO~JGoLKHT-lg0P4UZkJ25!D_ zxo3U;z6Wz0bB=S}&z|_#DDFAq+4Af(cLmVQeV$8x{NuWTe{p&_bzwKScYd#Y%|5(p3CYS9Dk%P)5krA)$TED z#CMme;%;Ba{rw2O`?$v$2V-P!+$`t4*aiat+H#zl;pVM;6$ib1F3Ke**TdP188)A8Z1 z`(2A;?)=PmQ+x;Mm{&8ojl4r)J#+X}%sZoFuFT5F3Bt4ZKHHUlJ=S)sie!A)y*IC|m@&f$FBxW)`Et%@)k58%m z@X3^~ndz4ZpFkzVr%s8@e7^v*&@U-IQA%dQ{LI6Olgn6r?FW`RIpFJ38YNj{5ji zqbEMesE1E4THzCm5PV9}!rb+1jZY)mnTLMg<5P!$_@rSNK3$lDPZWN_rwB952ftb7 zlizH7LNFbl3j80+z674C=l%cMxm^36G9n_BiWFJ0?|Zh$b}z!kT?$2HP0?b@7DZV@ zw(Qy4l#=YE6e^KWg!-R*=+i>Jzkjb+-p;vq-shQTo|$=`XJ(E#1QkO96dm4zBEH*D z)K&^bYV>3>3=Cwl3@EY#42)#z47y~R40>eR3<_kr42op>3`%5%49aB242Q@}8O+EI zGaM$fVMrl6%8*Rv%1}vmp23dxGQ&~Ycm`+M6b1}!I)gjyO$ImGTn2C2A_gzoQigom zDu%DL4Gi1q?lFkaJz&^H_lV&DT|0v|T{nY1-5`Sr-75wwx-kYzx(^I}bkhvobaM32+{}@j5I@~BCSy=$fKxCBpQ{0bVb!6JyF$2JgN!li)uvrqn;tpp=jx& zP&D+hsGamFC`0!1w|~ z0l7kyi02qV7@uKOU~I=Y!uS{y4C5nA28<6dO)%cWjKJ7}p`am^Z^8(|*nm-i@h-*@ z##&4hjMbP7DB7V!RAQQ7yn`8mu?#~2&0>^@5{w{>w=pU(7GfM>yoCvdF%OdgV-BWi z6-Qvq!cahi2_@nNMi9mfj0%j`Fpe;$VS-^y#bm&kjA?=~5iI#M88BL5nqV}?jKFA$p@0Ta zN`w(c5Jr8B3XD1!M;J9R!7!>}GGIJ}X@XG^GXkSLh5~XOC=vTHf-uTpRAAhLafERf zCKyHuOa_c%m?juSFe5MuVJM)%n-U>_8G&3aO2ifn1vF4oA~s}CPRdDpWe9%Mn>oI?WBG zbQmwa7>1Fo3qYxJI>e4HI~b34rNel+YZ%6sF5pM{e7?&LM)B@+7>{-j!+5zHKu!@I zqNUpo#`*4a7u5zt0ZFpuTh%OZ)0WN%s#8Ai_vEG@u0I_Q60HjRxysJTr(0Cw-nbs03sG zV0{GXT6_orxrTHIlOZJ-6JbOmvWEiU>rohyh`FJ9_*(WQ36Thmmk20yp+j7T5sAoq zsRUn>50emy*fbmnUk41=!}w}A{T%80{I7;#RC@)YNY@20A`!K(lrEF5LtY2Qkg)D` zeJlwVUL)d3xMxHOa!lzEej~$INcemNB$Dvkh#iaqZ_<3Zp1J&exp z5v8Q-$@fYyVm<`Ic>hB^j3*~Zh(yFrAj(MJ)BZ?8B*NpP5`4XNl7vWv+GHSnT?r!+ z(J@&MUpr2b5Q#W7g{UHxpPo{JQS%cCkqGloP*+tk5t3JsJ$lsL)6w1?zYB2`;brgZ z?rHCYaP-7t(T)UHPpq!1hbuwN#}SQoLOUVsi3Arkmf-4WPx?&V-qjttiS;BX|GH25 zmOBn@@8tXEO`?~RJpuaAnds_-@WOdwTnW0Kcsv?!h{icWoc7LW1nC>5t{!NF2O5uu zZkYOdp%FMV-pdn*3%D0RgI!2Le)*o2k7U z8jB!!l72e4Lcihcv5c?ToKR+{H57flfL1{vhn zHkn5<3cF&}OK(LMsk6*|uOUdr7muo3&7GH(JknE#9VcZfO?g$luB`rQSYuYPK6qIp{zx0*>u}G zUZoVV1p_W--29fCIUe`s37T~dE;WaDz4S(qs~n&*gIX3(UC2oI2aqC8>(B~tgr3!{6aRipWVK+fHiHC-Hqi3#vv6U%h>*X@i{8r?V zlv?|xW;sBy!$TnXQVxCLY4=+EhYJ~u_pZk_Y8SI|`z;=l?mvF;q3&C=LwAbvqw<}W zTgg0h_2P22iAJ5~sdzR~In52dyMpiK?Wsc1`GY*##ubHGTg$CU=O1by~7j95%xmF|5gYCA-|71fZn3;yW!zP~^OKWt{e?3w%{(19)w!;q(AGv= zxciMP-<0Gmt+}rd1!E_Lk_6Znn_h)&N_a|cd+Ysm8 zYklMt!5b&4eLQ08^vH;bQ%-MEJQ160g`U7fs95%no_{l6VH)>7xTx~c8T4tdK`TT1 z`lfzS!JHp6#fHADatnZ$_ew{a0N`%H<; z^Cq%%!h}~lZ`W~mI9^d`&WrWh+OYT3bsz13S=GBC&zv+H#?)BF6WB#2PXA|y|XLuUF@jx?tuD^yY$ZX-}X8keZDKIXJ)Vd{jAWm z%vV0rGi+A*m(^+*5Dw(+M%;RAl*m!#*l1?%lkBG&&%`r*cW-^xlX{mtDkP{w)>eMo zt7R2!rfGLpyBSG@!Vkvh18Nl2(``&+DoOMBA6KP>*_$p2J`j<+GCR-wNm65OT28-7 z)9lXkqlDzSx`dKhfNb-9cFrPxL)huKGZBgjR?vD*Ou#Y-Wx;YDOUX^)j zMs#N^2AY+EE0=>f<4U=Mo_3IN8A@wgY2Lb=aXaTYH`APPS37gw=B54h;Nw*D^}TLJ zwnx9pux&$nh^u;>{%)Q%d@we22_n)J=uDT&=`<`ZJ&Cu$zbq%_lfLo?(b9PISE23 z+wY1rVl61=zx(rzoa8%=WGziC`5`_39y3@f!*R~;{53jP2N#1kRT4-`4fR4p&w%-4 zwwgX!olv<;WUMy@_I8?o=BtqFp_}U;-sJZtYGR>_{FeE$cb|8V5|hd2!T4`9CS7`cxXM`}3FtMS?(uH7Xjn9`u5M_f9%N4p7X7Ys=H%C* zvM-|#sw3D|*#0fh5(qoRgr{;;(fZgJFw3k!ex#E(;8+FK;ZJ>Snn4<5mPEc^6dQ{Z zt_a9D3mzIt^9{d#x8Lbl`MHu~GTy>rlwWxIl7$Vz@QV9Zx%AN|@c)DB9Pst7ySn2} z+{nJrAAIj=HQMGZ@7P7?RC7mhO<&NpV5sC>k;?#f1M&Z?VR$!qq9Z>$*^o<%VM9M`)3+SAI%knzx-&FjeoyVUr<$j<5l z?b+Mbw9B)@Qps6$KbBh(gOlAw?uUJEm%q19K`OUzJ6Mm*+@9d*q6_)1fAb}RBRFwj zN{ecA+=VjlD2?B>l11FEiTb{7#@`|%$nT~%AYDW5D#XNeWIF?s`Mkc{_$MFX%M2!HM;w~4Ug=0_;9}fm+s4l@ zM(|-T#d&`f51-_UUB1vh%U-y&T?gN=oe?Tcgn|p-b<5*HlJy12h^2Ji$Bp~^&I&#e zICv-fLZZ$2TYNOO(MGn$W}8UntO+T>69)x8?km0jkUbv#mr^22Ky0GEChNXYZ=b+W z8o%9wZDMt3K}7c)M-Hu=;I^xFsk|hrzie?mrtcsk*JpMr*pOo1vJCC!MmAx${?ct_ zCw6vV&97%7=@h_k#VVrtDB?{(Haks~>Q`{P~QO!$7_jRN9#|PI%`(-j;gY!gh|rA%nv`|{@at#4kc9Vn84|EqW(=*F_= z-^$X<;cem=^hefn){Qr?)s*Qy@!6I9>D1ivJElYSI8r32j_4g!l?H4n$hmQucEaYg4lL#;tOia;o=6#P zz2UEHGyGofu-+M76;B+LEP(P3B)jy)LPif~Io1mF2I%>|DwT7|uzc|8seBkp%`f(o zDSw!bs(3)awju2W>)SkkahVVu);03zU0~OVw#8|V&c_q|0&Gb|d=m!wScVMly~4W5 z3K64u*R(nRqFSHlBuJ!w?Yo8eB?AA+#GL(B6qWCjAER5`9?=UKgg4waKFiFq;#WZV zA}D|2ytb{Po4^x`BIGXCAz8PZNzN6PQJFs)s$Rc+H2Aruc&$~Klda*+mP&)c z2lH;wdcGUxnk`BeaArw)S>k(bWY1 z3BlKWt)*Wo0__zVhE=;S6?O#q4Gy>NKlJ==wn_|-c)pV!zp86L-+9!E9P9SAOP|14 zcnwYEHlKZ51$SGQcjr|^QI(1Iv+G`0{uFOnt2*3?g58<*$MnlP!C25m@?5uFH~q?Y zATMIlpJ-9vx4DZ}skLYlAHRHBaE<{kZsO{+R`$zSkZ<+qrKD}mKsL4}Syb8~zO|1E zZ2q#X-J-ivjwyrQjB%y(`g7vte6aOFvvp`$c;-;a(TXpj_2BSJr&FzF?ItG#g}B7x z1f``?ew)&+^*)7axS1Bu(#CMtZx@hcwNHaMX%qG5w@iSC26zfGo-6c8zz7evx!5 z6KA=pi^>cB9$^BD?qsAd*3Dc5$7}+1WK~z(KZduMS)e~|O^1k~oI4;U%AA$XtoxWD z?6TQYwG%AGaR+RJ!rB-}32EHA&ySS>Oh$L8bS>^^O3^2z=7Z_V_glhvH9|!MsY6)n zO-C%Q(3sk<;}*pdz+iTYa*5CFu6^iW+au?!m4{hssA+%ANv6We-fOE zpW-8OMPAeJ4|_eg_wtFSJJM`DKR={?%vfM3#1798(1eU}#d)ZCKJ@Ij|t2AjpJLEW(mU1ew#TVUN4wJh3Flj{CRYNr_i1o|I7kOQ^V_xEgS9n2e(` zbK=}-Q4`kGn`6zob4aI*$4?l9FBdx=@Q!`U^c&M!f_Q46qUb<*!vv9A;VW_%JNV3A zx%92|0jkN{#|{xCc0NDv!ld;Z!x{dY4Ht;OP*WuJniLF%zL=)A>kH>D`&da(LK=){-MYuk?_PsNbwC=PLHg8^CAAr_v zT%F*>r~f|ttBMIM34CDq#QeQ>E#{J=X&R0}c#{{|zV_M9Ut@eH&QnP!Uo`x*30g8B ztVApDs>udqZs0wo^K<*fLos!4`LErfy}VZ7Gqpk!ga_;_xKZ$+Efy@n(EO!&@lXt;Yi z*t?q$y`VJ{{7-vA{T3izVFG5AXCK~3He%cKegDIq9Q0R~xyFWb7ZB0z!(~*!aNih> zCfXfp2t3=$g#S;8u9#jq0;KbT`Ck{=5{{)WrlwwMXcjNOV$pWk?D^hZ#y^TZ>f3nW zSPELSf|kMH<%M;v9HP1gPB-QZ+#O0HqIFfu_FT1aN(O_GN_bLS*QrCs!`D1BE?6PMOU-NlnEbmqA4XQDzcbXV@(?O*anQK|d563&d zLM~E33AOBTG;Zxgb;UF>5(tOyyMEJ@YPrilF`iRQgg99u%^u*bR7MeJd>s+^ghomm#v^x zzBLVyIHMa_MD9m)$A7NuBRgAQp`tOP*)q{-L z8vQXFwVXu%lS7JT_&xbj(7m-pk$IcLQTc)&kAy6H6VGyQAtv zdqq<=Df?H&r5Ej;ExG-OO^b}s>#WSK3aul1*t>7Uk^n|caykLAqt^NSjiFC;#?{-e zg5kW%SK~-zz=6JJw)I@9u5iF-kK0h3K`=CU=dG2miS_>7(PzaTc~6y3z7gn^JV|Ru zRLlk4l$*IoO${Z*9Nf_xNR%QB&L3?&n8f&4Vn^3Ei}0Q8e)!b#+I_^TSax)~Y()RE z4-1KCBMMKT$o|E|fv_o?N=?V}9h3C<@m-k2)6Wy1ik#V=ug2&8fcs}?wXyl76oZMn zD%(4{?RhRQ34!-r1*;7Qyn{z~OE5*(id8Q+_0nwpl|)({=}Ebtjig%w;}2XF19P{3 zdidhv6P7fOw6N>vlbhT-W&PjCwpQm-@NsEEYs3F@WJxsy*K@|6zYaQm%D+5cJ5|0d zk@?!N*yG|I*8Q2T&W)OU!CTfPQboI?32Qq_Y9dfcOgPo^<|CJHLxHi{`J%;=(U(n4 z%sk7<$qT0`BYhJ$t;?r@{yQyk#WeLDP^y|*KAd8LH&uOz`J`_Uu%~uA;}#96Ks_d< zUd!yA)tlEPGbCjv*YusMG9YxMa9fie>boWOg;TAHO)Q044T48nz1DBYHJ5O%Q-W`O zI!`#y`Fn_T#q??@xI{K@L8*`#x7lYXTQO2BC>`B$tG5te(|5LFGtqd`pP$6`b9r75 zO>psa+MrFZJ_myH4vhx|20M**59A&gyjJsQxcifllFlWErmqMZVO}R#bt~x?6;G#) z3?xkmcn*km7FY(g=!Sxr_V^G^UWZt#ijtX=(<09;-X4D7wVCAjVXI^Pl)Gx zs?RnJCVGKUO?9uA)2kmHx|L|C!`EP2*tN(*iqD~y2RK67fGV8^^c&FxRZ^RIj3iK7 zQ3Pi+HmJuQsArqLq~)dWFsnLu=}uK`B1=#!&hnZ+61j0 zhJ{@y#LkShPg^SM-#B-pKAwe?>fVSV6*$%vJnTF-OidoM$F)qORbaS8FUBy&gX@m} zOZl+&nguU~z@rsrpx6?m9o4tVhl$_TIN z9@iWI4+mRlR!{UrCF@X{0M3EKSDr?2d|h5B{xRW*m@ba^$^$cyqOFaGyla`jS#_c% zXRFxkZA*%~mh-3wHlC@xHT@1#wAa#IGNSG`aT(e}`K^r|#Ve-QrU351^9NP#kB0OI z9`nDvtpF!w9D|THL98t8Z*6MV6Tf=PIa^hCMLW7*L zEJZ z^Ft{%A81hm+LJ_DD*GRPQU)ae4!J*69B~#1?%UfRj`Y`XOh*+oADi8GfX>XRb9^F` z%M9nbTB{ALH^U5AUc7gdao@4j6lAD;2%g>XO1=JQ;%- zb6|y&b@uB^u1R=Jcg<)TOtrcesW^MyV+9GmF zKh6Yt?s!nTL(e*{FUYg7Z;wcJuzXZ0pJ0F?ErW zhK`LdAHEl-tmLY6Cae+rM4?@dvj7>p~%3t(8b%odxONhX|-zb3lCSvZy@U0Y9(1!vy|CNy9I1u1l8o zm0$l@yf_e_*d)dO2iIR~No$0=p$uppb2O~ad=}cJ-hK9A{?WH~jbp_QpAL%>_Y7M9 z7^MHqzDfvL;;(h`KgGIn8R*^{XDY00HL(@_R2f)LgG>;#h(6y@veRI0CbIF~mHExT zvHVY=dcfk1D3i8_lUIz?7$tWY+`T81fjju)BD-x3cZrTFsJrx2VdKQBG**# zrU=k_vOCn-R&l|{q0TLxouAwPl%8;b;ERP3s?lf_HL;YRqOHHs{bx;Y;=yg1npfWi zp2W-M*lpR-bfPiNz3FWyn}Ss~lZE!4&H7% zW(M|u3?fipMT8z==lRLBW|zXBLS(`|y=g zDsgk$8?IHV)!gxlcez%kOmHPCKPafK>;Nr!YNToQxh+o>g`>ah__Voe&g`7Za0r4~ z>-TVVEyG9fq3E~~S^rJtqjr|p*yv;8+rdTOE#@~geap2UHQo-5KtwniSzGuR_=cSbc*;C~{98+= zpjX_(L!NKYb}mjA8ecC9MUv%-SwoVq6jp;4HU6GNGX}G>fO3@yM}z(n1>2ynGSlNt zZl*ISN=gx1`@K%G`-WRK^3iBP>v3xz{SK5W<;M*ksAfM&uPGk5bi}-^*NhiwH zhxRm6<8CJgtrbsgozgj5L4ShRq0%{7O_Pf1Jkg3Uj*CJ!hbbniP(^%S{dd~TQPF8Z z&WEGhng{3D0p{f1Of<#mP;A`mT9>8$3!9EQcw=m-%bDtXK5Oi<_hr7 zHs~E=L_^k-rY5C>NV&Se_w}Mb`}vbHNu7t3kXjm0%Ej&P%woo1E*f-NFJE=lFmGOd zk~}&04K>7T{~_>mX8_^wdj+S#EJ;^xtzS_Z)PnebSby#{&~1u~F#-oX>caiTwc?vw zJ%kRj1%I3ga??p%5+aKI;QfushzPCj{gdkh5G|s9k){1CgGKYUvCJo-t8775F$H`v z2Tz^bEN&$c;LY(H*J|vzMlpH&Kqo$3=DTpQX2)Xz15*RPO5tU)SdqP38=fipS(bYj zVtyA1&I|ubq`Uw?Clw*%cbsc3)OL!MmWkohlNZ9&W8sOTPflN}zD*xw&aU+{6!@pT z<~;;DEcYhGJ{Q^uVGUfOI>hUcS~t{`Z>Z!Mk>{xMby~=?Yr&iE&Aebx^*n)HQ?Gnx z;HGgiP&9LLG-k_v;ttzAQjwe7qY}A{k^)i>wsZ55$1-WHEZFIJLg}lu1c!n6X|jyW zT;od_II7NgIx*VeeDZIZpKhMYGWO%BZ#4^N{+(d0-Q*{L!H3@WN<;3D;fv}=Mz&2n zZY`2$#q!^yczrS}UX=gs1C$oL;J2>f=l25Dd7EHCY>MD5aw&7(M~)N{;Rkikw8j(tf|H=Zh*+`vi?}urW|syh3ve^lg;c>wesPn`E=DW$j5`K zZ}OP5NRym0v~23Q9)T^$iIEJNIut$jAwPM`bG7d~SZkxVpR!nF+iA4vl2dofdseNL zX$|t32snGkzk~IR!CPqn)O^kJO+0onGB_03n>(^ixS~-dR8P-^F=F2SR8j}UPYx5T zy%*laa~+Nm5aUoQ@t!l-;gF=8ZU~2eK<_<~rF#OKTJEp~_o@}EWYB5BF~}Mn6o`PD zkfnX%Y+ExDQGMSWm4~plqWPsedt)7|DVS(qaE-NdtP~}=Z2#EAkTF=`0Pt=qRCJH^ zD@!usyp=@>9vL(8+XARA^zXe~;t`2|kce8LIppcNb}%i-0YSOh30vI4`?ViP0beQQ zU3!MCa($mWpPf@}KH%FEPk@v_I@>@hzWx+aFb-zl@3C>WYJPjw_K9UTg_wnfQ|R?& z)fB>asSjl(dkx;wYOQNch2r30uBzZ;i6Y7`d@bJ6T7yA5l9>lT9++$LH#xbJf_S!+ z2`>3BLn_38(s}nvwz~!9K_3VEPE46ti=zr7kDmE{?Pc!C-v+wneP z$%6tPhbFqCrB0t8QK!>_NAk5o+y%~8`|jU4%&cT69Y_`4spNV>L7Fn|)7OxFn|EHC zwc6v)p!LrVQS=Sq)%ILt{;^A9))@EoK)qI7TwI-bXF?|OQyjt9+Kt=>skQEYoQ%QS zvLMm;Wb&A?RAhCmk!avll=Oh3jpm5?RpTn>>#Ed3gJS{*le zoP1oiLdM*r`0l}xi_)xe&P5Q>Zw|etJ=V#6oiV$Z9E3*28u!f|W*GYDW}fu+YQ$7d z@rivqCUQUSQqjKqq4_wAmI-`t>0f4EtOJ#i6LC88H6>&=;vGvb$zx-kTsYRKtIOERq# zT{)w*mf!(6<)lg*fwK}Cyn0vV-Mc}tcx;}rK;q?!Ap3-v#k5Rbl-BRNEB|bd5+tZ* zW}tY}X1V)|C+N(*#)go?B|AqRIasEBYD{eYZP*Q3y_Mr*c*d2jF7Q6UzvL*7wef`xrdH0+NClbZYI;FO@_bJmN6WlcmbT`{H;73=dO*nA)d=%@iA%#Ri%gR zB5infy+jkTw~5>E(1OZ5`n1^N;~aXTn||ZjDCCC7`oNVoT@6_&0UuTNZgl8UknGX( z{gS6^`wdf*Se!aLJU_Coko_y_F3~C#0jjMb;(ECIU33W?H+4jfN3XSH#Y7EPZaJBJ z;KSo@fyHcpar`~4LnLm%KCP|c{;}6*v~8~@y7g6L?A~U4$&g$kui|7X`uosg0M5}BMsOHzXGd(tAcRH`Q zmv;{*p%OdlB-7Nf<<7%vo9FTd!&j>C?{Eep!2{%s_J~7w12eg&-B7V*y>CtV)ve?w zao1E4s-FbjI86Lbf?sD^f=DXB*-q`9RvgW@9^SZo$GY@mWF-BIU1=KqXm#28X4jMN z<~U$I{5nPnP0(u;Qnn17DtuFswNIMrlDZXkZ+&Dvy0yh}d6|2#M**)F-yF!dVjK|7 z`kru!R=Fy;9SqoHDKuQmugI7VUtGExmHMRzy=a_RU*LY^0dvjhYJEr?E9dIg2vQya z?%Z`T8+&=b&1A05g>|G-g1u{ECw@#0g*cXY~D+P&j=o|g|D zSyq_-5k5k~bOS|E_JExW8Ue5Jie++*GdJY#3kW|u zQQ#w8CKPCDy190y{hRF8YmMwAHT)4jt`%YkNIvgwJ*OyB9A>S3X;(T;IBVdxav{v6 z1^&LgRQLL_0=_?4R&=tS-%+AfDFl4PIelZhZ|g@GBv~$uHtiHGd}heX-{8~kzNi3605(<*|9#w}MV{hz6XQlUh5Wjs{QS#)zMZG2EW6%_@~6~F5D z51Hz~;LhX-3E$bfN}m%WZHHrNzOmy!F&~z&OU>B+v}|GK#$P<^O~NHwRn*|_QbOBv z-DH0)+=Jl`zcxn~kv`jZTA|!oAIWU9csG$Tlj^1mrO@$&wb>SkK_6I^5yWWaU!Zr{ zC+WRz#P7b(JA=jSYows`{|<~2p6b90QL79j7FQ?eyzd%+1fseKq(YdI@=-2_+jYN$ zUL6anw*T-%>L5|0hFRBUICfO95bgsjR3r~+jee{8LBM9iGe4>W1&UMYPQM>iwCTFu zc{4?aJ>V?USBr?5_w4YE(Iy;eJb2!?%j_BWSY_KJrKj_=%c>d-MeJbV3az01rNdn=iqBDr9_l1|0{ zJ1{TNs=f)V_o2Q06fPu7JrWG6u3j?bUrOloy%?LL&Z>AQOnF2U?hvF^wf_!3uTe|& z6!^Bkr}q3)fs#tbhDV&5igPY6VhDv)obOe;ZV+!Rw6>2B2=EZE1M zHUEsIy`aMPYjb)P&DH%s-~khk^HyP|3b>Jio|CW8NGaW`n^(Wbm-z*3_A4ebi z+4G*(-HNw9U3ulOVqm6!&L6e3VE2th?>5?Lr7yNO=1gfX)adXB-b<$r@jPdHE%8M_ zK_T3aU>4Y1)|aMMA85E5FgdV1j^~)H7y?0)vX(1ebp>JnXex?lWP$Y`z5H9lX6LbWOzRbl%0;-LtCAke(h0OLs`cUtkpu_ zo(`oKNLIRG7{nK`)$qI#6aTASN@21xwt{0drLgh*J1tV8RfhvjGyX}%^&<`8k#&uO zt}@G5gECF5^S2wa$35F^CCZ9_)@yym)RhCxP3Snwm(AWu_b=D)(dWP3pi*_~R@qj~ zzR3NXtk5r=;K^;n)CwfWSCHQw6>fjm{Xy;cCbo_r?U~$tMYr}ReNY

Dp%{+u;k3 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 SV9Q2gJtO#xsdof8*Z&7!roNg0 literal 0 HcmV?d00001 diff --git a/QuantConnect.AlpacaBrokerage/Alpaca.Markets.xml b/QuantConnect.AlpacaBrokerage/Alpaca.Markets.xml new file mode 100644 index 0000000..5ecfe33 --- /dev/null +++ b/QuantConnect.AlpacaBrokerage/Alpaca.Markets.xml @@ -0,0 +1,9775 @@ + + + + Alpaca.Markets + + + +

+ Reserved to be used by the compiler for tracking metadata. + This class should not be used by developers in source code. + + + This definition is provided by the IsExternalInit NuGet package (https://www.nuget.org/packages/IsExternalInit). + Please see https://github.com/manuelroemer/IsExternalInit for more information. + + + + + + + + OAuth key for Alpaca API authentication. + + + + + Creates new instance of object. + + OAuth key. + + The argument is null. + + + + + Secret API key for Alpaca API authentication. + + + + + Creates a new instance of object. + + Secret API key identifier. + Secret API key value. + + The or argument is null. + + + + + Base class for 'security key' abstraction. + + + + + Creates new instance of object. + + Security key value. + + The argument is null. + + + + + Types of account activities + + + + + Order fills (both partial and full fills) + + + + + Cash transactions (both and ) + + + + + Miscellaneous or rarely used activity types (All types except those in + , , or ) + + + + + ACATS IN/OUT (Cash) + + + + + ACATS IN/OUT (Securities) + + + + + Cash deposit (+) + + + + + Cash withdrawal (-) + + + + + Dividends + + + + + Dividend (capital gains long term) + + + + + Dividend (capital gain short term) + + + + + Dividend fee + + + + + Dividend adjusted (Foreign Tax Withheld) + + + + + Dividend adjusted (NRA Withheld) + + + + + Dividend return of capital + + + + + Dividend adjusted (Tefra Withheld) + + + + + Dividend (tax exempt) + + + + + Interest (credit/margin) + + + + + Interest adjusted (NRA Withheld) + + + + + Interest adjusted (Tefra Withheld) + + + + + Journal entry + + + + + Journal entry (cash) + + + + + Journal entry (stock) + + + + + Merger/Acquisition + + + + + Name change + + + + + Pass Thru Charge + + + + + Pass Thru Rebate + + + + + Reorganization + + + + + Symbol change + + + + + Stock spinoff + + + + + Stock split + + + + + REG/TAF fees + + + + + Option assignment + + + + + Option expiration + + + + + Option exercise + + + + + Fee denominated in USD + + + + + Crypto Fee + + + + + User account status in Alpaca REST API. + + + + + Account opened but not verified. + + + + + Missed important information. + + + + + Additional information added. + + + + + Account data updated. + + + + + Approval request sent. + + + + + Account approved and working. + + + + + Account approval rejected. + + + + + Account disabled. + + + + + Disable request sent. + + + + + Account approved but still not active. + + + + + Account approved but not active. + + + + + Application was edited (e.g. to match info from uploaded docs). + + + + + Application requires manual action. + + + + + Account is closed. + + + + + Account approved only for paper trading. + + + + + Supported bar corporate action adjustment types for Alpaca Data API. + + + + + Raw data - no adjustment. + + + + + Stock split adjustments. + + + + + Stock dividend adjustments. + + + + + Stock splits and dividend adjustments. + + + + + Unique asset characteristics for Alpaca REST API. + + + + + Unknown asset attribute. + + + + + PTP asset accepting orders without exception. + + + + + PTP asset accepting orders with exception. + + + + + IPO asset, only limit orders are allowed prior to an IPO being traded on secondary market + + + + + Asset supports options trading. + + + + + Asset supports fractional trading at extended hours. + + + + + Supported asset classes for Alpaca REST API. + + + + + US equity asset class. + + + + + Cryptocurrency asset class. + + + + + US option asset class. + + + + + Single asset status in Alpaca REST API. + + + + + Active asset. + + + + + Inactive asset. + + + + + Delisted asset. + + + + + Authorization status for Alpaca streaming API. + + + + + Client successfully authorized. + + + + + Client is not authorized. + + + + + Connection limit exceeded. + + + + + Supported bar duration for Alpaca Data API. + + + + + Creates new instance of object. + + Duration value in units. + Duration units (minutes, hours, days) + + + + Gets specified duration units. + + + + + Gets specified duration value. + + + + + + + + Minute bars. + + + + + Hour bars. + + + + + Daily bars. + + + + + Weekly bars. + + + + + Monthly bars. + + + + + Quarterly (3 months) bars. + + + + + Half year (6 month) bars. + + + + + Year (12 months) bars. + + + + + Supported bar duration for Alpaca Data API. + + + + + Minute bars. + + + + + Hour bars. + + + + + Daily bars. + + + + + Weekly bars. + + + + + Monthly bars. + + + + + Connection and authentication status for Alpaca streaming API. + + + + + Client successfully connected. + + + + + Client successfully authorized. + + + + + Client authentication required. + + + + + Client authentication failed. + + + + + Requested operation successfully completed. + + + + + Requested operation failed. + + + + + Client successfully authorized. + + + + + Client authentication failed. + + + + + Client authentication completed. + + + + + Corporate action type in Alpaca REST API. + + + + + Date the corporate action or subsequent terms update was announced. + + + + + The first date that purchasing a security will not + result in a corporate action entitlement. + + + + + The date an account must hold a settled position in the security + in order to receive the corporate action entitlement. + + + + + The date the announcement will take effect. On this date, account + stock and cash balances are expected to be processed accordingly. + + + + + Corporate action sub type in Alpaca REST API. + + + + + Sub type for the type. + + + + + Sub type for the type. + + + + + Sub type for the type. + + + + + Sub type for the type. + + + + + Sub type for the type. + + + + + Sub type for the type. + + + + + Sub type for the type. + + + + + Sub type for the type. + + + + + Sub type for the type. + + + + + Corporate action type in Alpaca REST API. + + + + + Dividends payment. + + + + + Merge another symbol. + + + + + Spin off another symbol. + + + + + Split company shares. + + + + + Crypto currency exchanges supported by Alpaca REST API. + + + + + Unknown exchange (i.e. one not supported by this version of SDK). + + + + + ErisX Exchange. + + + + + FTX US Exchange. + + + + + Coinbase Exchange. + + + + + Day trade margin call protection mode for account. See more information here: + https://docs.alpaca.markets/user-protections/#day-trade-margin-call-dtmc-protection-at-alpaca + + + + + Check rules on position entry. + + + + + Check rules on position exit. + + + + + Check rules on position entry and exit. + + + + + Exchanges supported by Alpaca REST API. + + + + + Unknown exchange (i.e. one not supported by this version of SDK). + + + + + NYSE American Stock Exchange. + + + + + NYSE Arca Stock Exchange. + + + + + New York Stock Exchange (NYSE) + + + + + Nasdaq Stock Market. + + + + + BATS Global Market. + + + + + American Stock Exchange (AMEX) + + + + + Archipelago Stock Exchange (ARCA). + + + + + International Exchange (IEX). + + + + + Over the counter (OTC). + + + + + Alpaca crypto Exchange. + + + + + Period units for portfolio history in the Alpaca REST API. + + + + + Day + + + + + Week + + + + + Month + + + + + Year + + + + + Intraday profit/loss calculation for portfolio history in the Alpaca REST API. + + + + + Don't reset the profit/los value to the previous day's closing equity for each trading day. + + + + + Reset the profit/los value to the previous day's closing equity for each trading day. + + + + + Intraday reporting styles for portfolio history in the Alpaca REST API. + + + + + Only timestamps for the core equity trading hours are returned (usually 9:30am to 4:00pm, trading days only). + + + + + Returns timestamps for the whole session including extended hours (usually 4:00am to 8:00pm, trading days only). + + + + + Returns price data points 24/7 (for off-session times too). To calculate the equity values we are using the following prices: + - Between 4:00am and 10:00pm on trading days the valuation will be calculated based on the last trade (extended hours and normal hours respectively). + - After 10:00pm, until the next session open the equities will be valued at their official closing price on the primary exchange. + + + + + Supported market feed data types for Alpaca Data API. + + + + + IEX feed - the only option available for the free data (no subscription). + + + + + SIP feed - option available for the subscribed clients. + + + + + OTC feed - option available for the subscribed clients. + + + + + Account multiplier value (enum values can be cast to related integer values). + + + + + Invalid default value of enum. + + + + + Standard limited margin account with 1x buying power. + + + + + Regular T margin account with 2x intraday and overnight buying power; + this is the default for all non-PDT accounts with $2,000 or more equity. + + + + + PDT account with 4x intraday buying power and 2x reg T overnight buying power. + + + + + Supported options feed for Alpaca REST API. + + + + + Options Price Reporting Authority. + + + + + Indicative options data. + + + + + Options trading level for Alpaca REST API. + + + + + US options trading completely disabled. + + + + + Us options trading with covered call / cash-secured put. + + + + + US options trading with long call and put support. + + + + + Supported option contract styles for Alpaca REST API. + + + + + American option contract execution style. + + + + + European option contract execution style. + + + + + Supported option contract types for Alpaca REST API. + + + + + Call option contract. + + + + + Put option contract. + + + + + Order class for advanced orders in the Alpaca REST API. + + + + + Simple order + + + + + Bracket order + + + + + One Cancels Other order + + + + + One Triggers Other order + + + + + Order side in Alpaca REST API. + + + + + Buy order. + + + + + Sell order. + + + + + Order status in Alpaca REST API. + + + + + Order accepted by server. + + + + + New working order. + + + + + Partial fill (event) on order. + + + + + Order partially filled (status). + + + + + Order completely filled. + + + + + Order processing done. + + + + + Order cancelled. + + + + + Order replaced (modified). + + + + + Order cancellation request pending. + + + + + Order processing stopped by server. + + + + + Order rejected by server. + + + + + Order processing suspended by server. + + + + + Initial new order request pending. + + + + + Order information calculated by server. + + + + + Order expired. + + + + + Order accepted for bidding by server. + + + + + Order replacement request pending. + + + + + Order completely filled. + + + + + Order held pending trigger event. + + + + + Order statuses filter for call from Alpaca REST API. + + + + + Returns only open orders. + + + + + Returns only closed orders. + + + + + Returns all orders. + + + + + Supported order types in Alpaca REST API. + + + + + Market order (no prices required). + + + + + Stop order (stop price required). + + + + + Limit order (limit price required). + + + + + Stop limit order (both stop and limit prices required). + + + + + Trailing stop order (dollars or percent offset required). + + + + + Position intent for order placement in Alpaca REST API. + + + + + Buy to open a long position. + + + + + Buy to close a short position. + + + + + Sell to open a short position. + + + + + Sell to close a long position. + + + + + Position side in Alpaca REST API. + + + + + Long position. + + + + + Short position. + + + + + Supported sort directions in Alpaca REST API. + + + + + Descending sort order + + + + + Ascending sort order + + + + + Possible crypto taker side types for Alpaca Crypto Data API. + + + + + Unspecified crypto trade take side. + + + + + Buy crypto trade take side. + + + + + Sell crypto trade take side. + + + + + Supported tape types for Alpaca Data API. + + + + + Tape A - NYSE. + + + + + Tape B - NYSE Arca and NYSE Amex. + + + + + Tape C - NASDAQ. + + + + + Supported bar duration for Alpaca REST API. + + + + + One minute bars. + + + + + Five minutes bars. + + + + + Fifteen minutes bars. + + + + + Daily bars. + + + + + Supported order durations in Alpaca REST API. + See Alpaca Trading Documentation for more information. + + + + + The order is good for the day and it will be canceled automatically at the end of market hours. + + + + + The order is good until canceled. + + + + + The order is placed at the time the market opens. + + + Not supported for crypto trading. + + + + + The order is immediately filled or canceled after being placed (may partial fill). + + + + + The order is immediately filled or canceled after being placed (may not partial fill). + + + + + The order will become a limit order if a limit price is specified or a market order otherwise at market close. + + + Not supported for crypto trading. + + + + + Notification level for order fill emails. + + + + + Never send email notification for order fills. + + + + + Send email notification for all order fills. + + + + + Trade event in Alpaca trade update stream + + + + + New working order. + + + + + Partial fill (event) on order. + + + + + Order completely filled. + + + + + Order processing done. + + + + + Order cancelled. + + + + + Order cancellation request pending. + + + + + Order processing stopped by server. + + + + + Order rejected by server side. + + + + + Order processing suspended by server. + + + + + Initial new order request pending. + + + + + Order information calculated by server. + + + + + Order expired. + + + + + Order cancellation was rejected. + + + + + Requested replacement of an order was processed. + + + + + The order is awaiting replacement. + + + + + The order replace has been rejected. + + + + + Order partially filled (status). + + + + + Order accepted by server. + + + + + Order held pending trigger event. + + + + + Order review pending (order cost basis is large). + + + + + Collection of helper extension methods for interface. + + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Creates the new instance of interface + implementation for specific environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + The new instance of interface implementation. + + + + Creates new instance of for specific + environment provided as argument. + + Target environment for new object. + Alpaca API security key. + + The or argument is null. + + New instance of object. + + + + Provides single entry point for obtaining information about different environments. + + + + + Gets live trading environment. + + + + + Gets paper trading environment. Paper trading is a simulation environment that does not use real money. + See Alpaca Paper Trading Documentation for more information. + + + + + Provides URLs for different APIs available for this SDK on specific environment. + + + + + Gets Alpaca trading REST API base URL for this environment. + + + + + Gets Alpaca data REST API base URL for this environment. + + + + + Gets Alpaca streaming API base URL for this environment. + + + + + Gets Alpaca data streaming API base URL for this environment. + + + + + Gets Alpaca crypto streaming API base URL for this environment. + + + + + Gets Alpaca crypto streaming API base URL for this environment. + + + + + Gets Alpaca news streaming API base URL for this environment. + + + + + Represents exception information for request input data validation errors. + + + + + Creates new instance of class. + + + + + Creates new instance of class with specified error message. + + The message that describes the error. + + + + Creates new instance of class with + specified error message and reference to the inner exception that is the cause of this exception. + + The message that describes the error. + The exception that is the cause of this exception. + + + + Creates new instance of class with specified error message. + + The message that describes the error. + The invalid property name. + + + + Gets the invalid property name that causes this validation exception. + + + + + Represents Alpaca REST and Streaming API specific error information. + + + + + Creates new instance of class. + + + + + Creates new instance of class with specified error message. + + The message that describes the error. + + + + Creates new instance of class with + specified error message and reference to the inner exception that is the cause of this exception. + + The message that describes the error. + The exception that is the cause of this exception. + + + + Gets original error code returned by REST API endpoint. + + + + + Gets original HTTP status code returned by REST API endpoint. + + + + + Gets extended error information if it provided by server. + + + + + Set of extensions methods for creating strongly-typed Alpaca REST API clients. + + + + + Creates a new instance of interface + implementation using the argument. + + Client configuration parameters. + + The argument is null. + + A new instance of interface implementation. + + + + Creates a new instance of interface + implementation using the argument. + + Client configuration parameters. + + The argument is null. + + A new instance of interface implementation. + + + + Creates a new instance of interface + implementation using the argument. + + Client configuration parameters. + + The argument is null. + + A new instance of interface implementation. + + + + Creates a new instance of interface + implementation using the argument. + + Client configuration parameters. + + The argument is null. + + A new instance of interface implementation. + + + + Creates a new instance of interface + implementation using the argument. + + Client configuration parameters. + + The argument is null. + + A new instance of interface implementation. + + + + Creates a new instance of interface + implementation using the argument. + + Client configuration parameters. + + The argument is null. + + A new instance of interface implementation. + + + + Creates a new instance of interface + implementation using the argument. + + Client configuration parameters. + + The argument is null. + + A new instance of interface implementation. + + + + Creates a new instance of interface + implementation using the argument. + + Client configuration parameters. + + The argument is null. + + A new instance of interface implementation. + + + + Creates a new instance of object with + configured custom factory method. + + Type of configuration parameters. + Client configuration parameters. + + Factory method for creating custom (delegating) instance of inheritor. + + An original object with configured factory method. + + + + Set of extensions methods for the interface. + + + + + Gets the corporate action declaration date () + or null if date not specified or not applicable for this corporate action type. + + Corporate action announcement record. + + The argument is null. + + + + + Gets the corporate action execution date () + or null if date not specified or not applicable for this corporate action type. + + Corporate action announcement record. + + The argument is null. + + + + + Gets the corporate action payable date () + or null if date not specified or not applicable for this corporate action type. + + Corporate action announcement record. + + The argument is null. + + + + + Gets the corporate action record date () + or null if date not specified or not applicable for this corporate action type. + + Corporate action announcement record. + + The argument is null. + + + + + Set of extension methods for inheritors' initialization. + + + + + Sets the request page size using the fluent interface approach. + + Request parameters object. + The request page size. + + The argument is null. + + The original request parameters object. + + + + Sets the request page token using the fluent interface approach. + + Request parameters object. + The request page token. + + The argument is null. + + The original request parameters object. + + + + Set of extensions methods for the interface. + + + + + Gets trading date (midnight or 00:00 time point). + + Alpaca calendar data. + + The argument is null. + + + + + Gets trading open time in EST time zone. + + Alpaca calendar data. + + The argument is null. + + + + + Gets trading close time in EST time zone. + + Alpaca calendar data. + + The argument is null. + + + + + Gets trading open time in UTC time zone. + + Alpaca calendar data. + + The argument is null. + + + + + Gets trading close time in UTC time zone. + + Alpaca calendar data. + + The argument is null. + + + + + Gets session open time in EST time zone. + + Alpaca calendar data. + + The argument is null. + + + + + Gets session close time in EST time zone. + + Alpaca calendar data. + + The argument is null. + + + + + Gets session open time in UTC time zone. + + Alpaca calendar data. + + The argument is null. + + + + + Gets session close time in UTC time zone. + + Alpaca calendar data. + + The argument is null. + + + + + Set of extensions methods for the structure. + + + + + Converts a Interval into a Interval. + + Input inclusive time interval for converting. + Date interval initialized with data from the original inclusive time interval. + + + + Converts a Interval into a Interval. + + Input date interval for converting. + Inclusive time interval initialized with data from the original date interval. + + + + Gets exclusive open time interval starting from the date/time point. + + Starting point for filtering. + Exclusive open time interval. + + + + Gets exclusive open time interval ending at the date/time point. + + Ending point for filtering. + Exclusive open time interval. + + + + Encapsulates session starting and ending points - session open and close time in EST time zone. + + + + + Creates new instance of the structure. + + + + + Creates new instance of the structure from date and two time points. + + Session date + Open time in EST time zone. + Close time in EST time zone. + + + + Gets open time in EST time zone. + + + + + Gets close time in EST time zone. + + + + + Gets session open and close time as instance with UTC times. + + + + + + Gets session open and close time as instance with UTC times. + + + + + Set of extension methods for interface. + + + + + Gets order quantity as instance of the structure. + + Order for reading quantity value. + + The argument is null. + + + Both fractional and notional order quantity values are null. + + Fractional or notional order quantity value. + + + + Represents the market day order quantity in dollars or as (possible fractional) number of shares. + + + + + Creates new instance of the structure. + + + + + Gets the market day order quantity or notional value. + + + + + Returns true if is an amount in dollars. + + + + + Returns true if is a number of shares (fractional or integer). + + + + + Creates new instance of the object + initialized with as dollars amount. + + Amount of dollars to buy or sell. + Initialized object. + + + + Creates new instance of the object + initialized with as number of shares. + + Number of shares (integer or fractional). + Initialized object. + + + + Creates new instance of the object + initialized with as number of shares. + + Integer number of shares. + Initialized object. + + + + Creates new instance of the object + initialized with as number of shares. + + Integer number of shares. + Initialized object. + + + + Represents the position liquidation quantity in (possible fractional) number of shares or in percents. + + + + + Creates new instance of the structure. + + + + + Gets the position liquidation quantity in shares or in percentage value. + + + + + Returns true if is a number of shares (fractional or integer). + + + + + Returns true if is an amount in percents (from 0 to 100). + + + + + Creates new instance of the object + initialized with as number of shares. + + Amount of dollars to buy or sell. + Initialized object. + + + + Creates new instance of the object + initialized with as percentage value. + + Number of shares (integer or fractional). + + The argument is less than 0 or greater than 100. + + Initialized object. + + + + Gets all validation exceptions (inconsistent request data errors). + + Lazy-evaluated list of validation errors. + + + + Encapsulates full account information from Alpaca REST API. + + + + + Gets unique account identifier. + + + + + Gets updated account status. + + + + + Gets updated crypto account status. + + + + + Gets main account currency. + + + + + Gets amount of money available for trading. + + + + + Gets timestamp of account creation event in UTC. + + + + + Gets account number (string identifier). + + + + + Returns true if account is linked to pattern day trader. + + + + + Returns true if account trading functions are blocked. + + + + + Returns true if account transfer functions are blocked. + + + + + User setting. If true, the account is not allowed to place orders. + + + + + Flag to denote whether or not the account is permitted to short. + + + + + Buying power multiplier that represents account margin classification. + + + + + Current available buying power. + + + + + Your buying power for day trades (continuously updated value). + + + + + Your buying power under Regulation T (your excess equity - equity minus margin value - times your margin multiplier). + + + + + Your non-marginable buying power for day trades (useful for crypto-trading). + + + + + Real-time MtM value of all long positions held in the account. + + + + + Real-time MtM value of all short positions held in the account. + + + + + Cash + LongMarketValue + ShortMarketValue. + + + + + Equity as of previous trading day at 16:00:00 ET. + + + + + Reg T initial margin requirement (continuously updated value). + + + + + Maintenance margin requirement (continuously updated value). + + + + + Your maintenance margin requirement on the previous trading day + + + + + the current number of day trades that have been made in the last 5 trading days (inclusive of today). + + + + + Value of special memorandum account. + + + + + Returns true if account is completely blocked. + + + + + Gets fees collected value (if any). + + + + + Gets cash pending transfer in. + + + + + Gets cash pending transfer out. + + + + + Gets the effective options trading level of the account. This is the minimum between the + and the . + + + + + Gets the options trading level that was approved for this account. + + + + + Gets the option buying power that was approved for this account. + + + + + Encapsulates account activity information from Alpaca REST API. + + + + + Activity type. + + + + + An ID for the activity, always in "{date}::{uuid}" format. Can be sent as page_token in requests to facilitate the paging of results. + + + + + An activity timestamp (date and time) from in the UTC. + + + + + An activity unique identifier from . + + + + + The symbol of the security involved with the activity. Not present for all activity types. + + + + + The date on which the activity occurred or on which the transaction associated with the activity settled in the UTC. + + + + + The net amount of money (positive or negative) associated with the activity. + + + + + For dividend activities, the average amount paid per share. Not present for other activity types. + + + + + The number of shares that contributed to the transaction (with the fractional part). Not present for all activity types. + + + + + The cumulative quantity of shares involved in the execution (with the fractional part). + + + + + For partially_filled orders, the quantity of shares that are left to be filled (with the fractional part). + + + + + The number of shares that contributed to the transaction (rounded to the nearest integer). Not present for all activity types. + + + + + The cumulative quantity of shares involved in the execution (rounded to the nearest integer). + + + + + For partially_filled orders, the quantity of shares that are left to be filled (rounded to the nearest integer). + + + + + The per-share price that a trade was executed at. + + + + + The order side of a trade execution. + + + + + The time at which an execution occurred in the UTC. + + + + + The type of trade event associated with an execution. + + + + + Gets the id for the order that filled (for the trade activity). + + + + + Encapsulates account configuration settings from Alpaca REST API. + + + + + Gets or sets day trade margin call protection mode for account. + + + + + Gets or sets notification level for order fill emails. + + + + + Gets or sets control flag for blocking new orders placement. + + + + + Gets or sets control flag for enabling long-only account mode. + + + + + Gets or sets control flag for enabling orders acceptance for PTP symbols with no exception. + + + + + Gets the desired maximum options trading level. + + + + + Encapsulates the single active stock information from Alpaca APIs. + + + + + Gets the stock instrument symbol name. + + + + + Gets the current instrument volume value. + + + + + Gets the current instrument trade count value. + + + + + Provides unified type-safe access for Alpaca Crypto Data API via HTTP/REST. + + + + + Gets most recent bar for a single asset from Alpaca REST API endpoint. + + Asset symbol and exchange pair for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only latest bar information. + + + + Gets most recent bar for several assets from Alpaca REST API endpoint. + + Asset symbols list for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the latest bars information. + + + + Gets most recent trade for a single asset from Alpaca REST API endpoint. + + Asset symbol and exchange pair for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only latest trade information. + + + + Gets most recent trade for several assets from Alpaca REST API endpoint. + + Asset symbols list for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the latest trades information. + + + + Gets current quote for single asset from Alpaca REST API endpoint. + + Asset symbol and exchange pair for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only current quote information. + + + + Gets most recent quote for several assets from Alpaca REST API endpoint. + + Asset symbols list for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the latest quotes information. + + + + Gets current cross-exchange best bid/offer (XBBO) for single asset from Alpaca REST API endpoint. + + Asset symbol and exchanges list pair for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only current XBBO information. + + + + Gets current cross-exchange best bid/offer (XBBO) for several assets from Alpaca REST API endpoint. + + Asset symbol and exchanges list pair for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the current XBBO information. + + + + Gets current snapshot data for single asset from Alpaca REST API endpoint. + + Asset symbol and exchange pair for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only current snapshot information. + + + + Gets current snapshot data for several assets from Alpaca REST API endpoint. + + Asset symbol for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the current snapshot information. + + + + Gets current order books for several assets from Alpaca REST API endpoint. + + Asset symbols list for data retrieval. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the current order book information. + + + + Provides unified type-safe access for Alpaca crypto data streaming API via websockets. + + + + + Gets the order book updates subscription for the asset. + + Alpaca asset name. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Provides unified type-safe access for Alpaca Data API via HTTP/REST. + + + + + Gets most recent bar for single asset from Alpaca REST API endpoint. + + Latest bar data request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only latest bar information. + + + + Gets most recent bars for several assets from Alpaca REST API endpoint. + + Latest bar data request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the latest bars information. + + + + Gets most recent trade for singe asset from Alpaca REST API endpoint. + + Latest trade data request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only latest trade information. + + + + Gets most recent trades for several assets from Alpaca REST API endpoint. + + Latest trade data request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the latest trades information. + + + + Gets most recent quote for singe asset from Alpaca REST API endpoint. + + Latest quote data request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only current quote information. + + + + Gets most recent quotes for several assets from Alpaca REST API endpoint. + + Latest quote data request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the latest quotes information. + + + + Gets current snapshot (latest trade/quote and minute/days bars) for singe asset from Alpaca REST API endpoint. + + Latest snapshot data request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only current snapshot information. + + + + Gets current snapshot (latest trade/quote and minute/days bars) for several assets from Alpaca REST API endpoint. + + Latest snapshot data request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the current snapshot information. + + + + Gets dictionary with exchange code to the exchange name mappings. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only dictionary where the key is the exchange code and the value is the code's corresponding exchange name. + + + + Gets dictionary with trades conditions code to the condition description mappings. + + SIP tape identifier for retrieving trade conditions. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only dictionary where the key is the trade conditions code and the value is the corresponding condition description. + + + + Gets dictionary with quotes conditions code to the condition description mappings. + + SIP tape identifier for retrieving quote conditions. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only dictionary where the key is the quote conditions code and the value is the corresponding condition description. + + + + Gets historical news articles list from Alpaca REST API endpoint. + + Historical news articles request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of historical news articles for specified parameters (with pagination data). + + + + Gets historical auctions list for single asset from Alpaca REST API endpoint. + + Historical auctions request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of historical auctions for specified asset (with pagination data). + + + + Gets historical auctions dictionary for several assets from Alpaca REST API endpoint. + + Historical auctions request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary of historical auctions for specified assets (with pagination data). + + + + Returns the most active stocks by volume for the current trading session. + + + Number of top most active stocks to fetch per day. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only list of most active stocks ranked by volume. + + + + Returns the most active stocks by trade count for the current trading session. + + + Number of top most active stocks to fetch per day. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only list of most active stocks ranked by trade count. + + + + Provides unified type-safe access for Alpaca data streaming API via websockets. + + + + + Gets the trading statuses subscription for the asset. + + Alpaca asset symbol. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Gets the trade cancellations subscription for the asset. + + Alpaca asset symbol. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Gets the trade corrections subscription for the asset. + + Alpaca asset symbol. + + Subscription object for tracking updates via the event. + + + + + Gets the LULD (limit up / limit down) subscription for the asset. + + Alpaca asset symbol. + + Subscription object for tracking updates via the event. + + + + + Encapsulates generic Alpaca Data streaming API subscription item. + + + + + Gets the stream names - updates type (channel name) and asset name (symbol) list. + + + + + Gets boolean flag indicating the current subscription status of this item. + An unsubscribed subscription does not receive streaming data. + + + + + Occurs when a property value has changed. + + + + + Encapsulates strongly-typed Alpaca Data streaming API subscription item. + + Streaming update concrete type. + + + + Occurs when a new item is received from the stream. + + + + + Provides unified type-safe access for Alpaca data streaming API via websockets. + + + + + Gets the news articles' updates subscription for all stock and crypto assets. + + + Subscription object for tracking updates via the event. + + + + + Gets the news articles' updates subscription for the asset. + + Alpaca asset symbol. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Provides unified type-safe access for Alpaca Options Data API via HTTP/REST. + + + + + Gets dictionary with exchange code to the exchange name mappings. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only dictionary where the key is the exchange code and the value is the code's corresponding exchange name. + + + + Gets most recent quotes for several option contracts from Alpaca REST API endpoint. + + Option contracts latest data request. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the latest quotes information. + + + + Gets most recent trades for several option contracts from Alpaca REST API endpoint. + + Option contracts latest data request. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the latest trades information. + + + + Gets current snapshot (latest trade/quote) for several option contracts from Alpaca REST API endpoint. + + Option contracts latest data request. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the current snapshot information. + + + + Gets option chain (snapshots list) for option contracts with same underlying symbol from Alpaca REST API endpoint. + + Option contracts latest data request. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary with the current snapshot information. + + + + Provides unified type-safe access for Alpaca Screener API via HTTP/REST. + + + + + Returns top market movers (gainers and losers) and corresponding price change values. + + + Number of top market movers to fetch (gainers and losers). Will return number top for each. By default 10 gainers and 10 losers. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only market movers collections. + + + + Provides unified type-safe access for Alpaca streaming API. + + + + + Occurs when a new trade update is received from the stream. + + + + + Provides unified type-safe access for Alpaca Trading API via HTTP/REST. + + + + + Gets list of watch list objects from Alpaca REST API endpoint. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only list of watch list objects. + + + + Add new watch list object into Alpaca REST API endpoint. + + New watch list request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Newly created watch list object. + + + + Get watch list object from Alpaca REST API endpoint by watch list identifier. + + Unique watch list identifier. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Watch list object with proper value. + + + + Get watch list object from Alpaca REST API endpoint by watch list user-defined name. + + User defined watch list name. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Watch list object with proper value. + + + + Updates watch list object from Alpaca REST API endpoint by watch list identifier. + + Update watch list request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Updated watch list object with proper value. + + + + Adds asset into watch list using Alpaca REST API endpoint by watch list identifier. + + Asset adding request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Updated watch list object with proper value. + + + + Adds asset into watch list using Alpaca REST API endpoint by watch list name. + + Asset adding request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Updated watch list object with proper value. + + + + Deletes asset from watch list using Alpaca REST API endpoint by watch list identifier. + + Asset deleting request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Updated watch list object with proper value. + + + + Deletes asset from watch list using Alpaca REST API endpoint by watch list name. + + Asset deleting request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Updated watch list object with proper value. + + + + Deletes watch list from Alpaca REST API endpoint by watch list identifier. + + Unique watch list identifier. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Returns true if operation completed successfully. + + + + Deletes watch list from Alpaca REST API endpoint by watch list name. + + User defined watch list name. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Returns true if operation completed successfully. + + + + Gets list of available orders from Alpaca REST API endpoint. + + List orders request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of order information objects. + + + + Creates new order for execution using Alpaca REST API endpoint. + + New order placement request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only order information object for newly created order. + + + + Creates new order for execution using Alpaca REST API endpoint. + + New order placement request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only order information object for newly created order. + + + + Updates existing order using Alpaca REST API endpoint. + + Patch order request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only order information object for updated order. + + + + Get single order information by client order ID from Alpaca REST API endpoint. + + Client order ID for searching. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only order information object. + + + + Get single order information by server order ID from Alpaca REST API endpoint. + + Server order ID for searching. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only order information object. + + + + Cancels order on server by server order ID using Alpaca REST API endpoint. + + Server order ID for cancelling. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + True if order cancellation was accepted. + + + + Cancels all open orders using Alpaca REST API endpoint. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + List of order cancellation status objects. + + + + Gets account information from Alpaca REST API endpoint. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only account information. + + + + Gets account configuration settings from Alpaca REST API endpoint. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Mutable version of account configuration object. + + + + Updates account configuration settings using Alpaca REST API endpoint. + + New account configuration object for updating. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Mutable version of updated account configuration object. + + + + Gets list of account activities from Alpaca REST API endpoint by specific activity. + + Account activities request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of account activity record objects. + + + + Gets portfolio equity history from Alpaca REST API endpoint. + + Portfolio history request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only portfolio history information object. + + + + Gets list of available assets from Alpaca REST API endpoint. + + Asset list request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of asset information objects. + + + + Get single asset information by asset symbol from Alpaca REST API endpoint. + + Asset symbol for searching. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only asset information. + + + + Gets list of available positions from Alpaca REST API endpoint. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only list of position information objects. + + + + Gets position information by asset symbol from Alpaca REST API endpoint. + + Position asset symbol. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only position information object. + + + + Liquidates all open positions at market price using Alpaca REST API endpoint. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + List of position cancellation status objects. + + + + Liquidates all open positions at market price using Alpaca REST API endpoint. + + All positions deletion request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + List of position cancellation status objects. + + + + Liquidate an open position at market price using Alpaca REST API endpoint. + + Position deletion request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + The object that represents the position liquidation order (for tracking). + + + + Get current time information from Alpaca REST API endpoint. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only clock information object. + + + + Gets list of trading days from Alpaca REST API endpoint. + + Calendar items request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of trading date information object. + + + + Gets list of trading open/close intervals for each day from Alpaca REST API endpoint. + + Calendar items request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of trading date information object. + + + + Gets single corporate action information from Alpaca REST API endpoint. + + Corporate action identifier. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only corporate action information object. + + + + Gets list of different corporate actions from Alpaca REST API endpoint. + + Corporate actions request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of corporate action information objects. + + + + Gets list of active option contracts from Alpaca REST API endpoint. By default, only active contracts that expire before the upcoming weekend are returned. + + Option contracts request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of corporate action information objects. + + + + Gets option contract from Alpaca REST API endpoint using contract identifier. + + Option contract unique identifier. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only list of corporate action information objects. + + + + Gets option contract from Alpaca REST API endpoint using contract symbol name. + + Option contract unique symbol name. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Read-only list of corporate action information objects. + + + + Exercises a held option contract, converting it into the underlying asset based on the specified terms. + + Option contract unique identifier. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + Returns true if operation completed successfully. + + + + Exercises a held option contract, converting it into the underlying asset based on the specified terms. + + Option contract unique symbol name. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Returns true if operation completed successfully. + + + + Encapsulates corporate action announcement information from Alpaca REST API. + + + + + Gets ID that is specific to a single announcement. + + + + + Gets ID that remains consistent across all announcements for the same corporate action. + Unlike , this can be used to connect multiple announcements to see how + the terms have changed throughout the lifecycle of the corporate action event. + + + + + Gets corporate action type. + + + + + Gets corporate action sub-type. + + + + + Gets symbol of the company initiating the announcement. + + + + + Gets CUSIP of the company initiating the announcement. + + + + + Gets symbol of the child company involved in the announcement. + + + + + Gets CUSIP of the child company involved in the announcement. + + + + + Gets the amount of cash to be paid per share held by an account on the record date. + + + + + Gets the denominator to determine any quantity change ratios in positions. + + + + + Gets the numerator to determine any quantity change ratios in positions. + + + + + Gets the corporate action date by date type or null if date not specified. + + Corporate action date type. + Specific date for this corporate action if it's applicable and specified. + + + + Encapsulates asset information from Alpaca REST API. + + + + + Gets unique asset identifier used by Alpaca. + + + + + Gets asset class. + + + + + Gets asset source exchange. + + + + + Gets asset symbol. + + + + + Gets asset name. + + + + + Get asset status in API. + + + + + Returns true if asset is tradable. + + + + + Returns true if asset is marginable. + + + + + Returns true if asset is shortable. + + + + + Returns true if asset is easy-to-borrow. + + + + + Returns true if asset is fractionable. + + + + + Gets minimum order size. This property is valid only for crypto assets. + + + + + Gets amount a trade quantity can be incremented by. This property is valid only for crypto assets. + + + + + Gets amount the price can be incremented by. This property is valid only for crypto assets. + + + + + Gets the % margin requirement for the asset. This property is valid only for equity assets. + + + + + Gets the list of asset attributes (unique asset characteristics like PTP order acceptance mode). + + + + + Encapsulates the basic auction information from Alpaca APIs. + + + + + Gets asset symbol. + + + + + Gets auction date in UTC. + + + + + Gets daily auction openings. + + + + + Gets daily auction closings. + + + + + Encapsulates the auction entry information from Alpaca APIs. + + + + + Gets auction timestamp in UTC. + + + + + Gets identifier of auction source exchange. + + + + + Gets auction price level. + + + + + Gets auction quantity. + + + + + Gets auction condition. + + + + + Encapsulates basic bar information for Alpaca APIs. + + + + + Gets asset symbol. + + + + + Gets the beginning time of this bar in UTC. + + + + + Gets bar open price. + + + + + Gets bar high price. + + + + + Gets bar low price. + + + + + Gets bar close price. + + + + + Gets bar trading volume. + + + + + Gets bar volume weighted average price. + + + + + Gets total trades count for this bar. + + + + + Encapsulates single trading day information from Alpaca REST API. + + + + + Gets trading date in EST time zone. + + + + + Gets trading date in UTC time zone. + + + + + Gets trading date open time in EST time zone. + + + + + Gets trading date open time in UTC time zone. + + + + + Gets trading date close time in EST time zone. + + + + + Gets trading date close time in UTC time zone. + + + + + Encapsulates current trading date information from Alpaca REST API. + + + + + Gets current timestamp in UTC. + + + + + Returns true if trading day is open now. + + + + + Gets nearest trading day open time in UTC. + + + + + Gets nearest trading day close time in UTC. + + + + + Encapsulates trade correction information from Alpaca APIs. + + + + + Gets information about the original trade. + + + + + Gets information about the corrected trade. + + + + + Encapsulates single page response in Alpaca Data API v2. + + Type of paged item (bar, trade or quote) + + + + Gets the next page token for continuation. If value of this property + equals to null this page is the last one and no more data is available. + + + + + Gets list of items for this response grouped by asset symbols. + + + + + Encapsulates extended error information from Alpaca error REST response. + + + + + Gets the symbol name related for the error. + + + + + Gets the number of opened orders if this value related to the error. + + + + + Gets the day trading buying power if this value related to the error. + + + + + Gets the maximal day trading buying power if this value related to the error. + + + + + Gets the used maximal day trading buying power if this value related to the error. + + + + + Options Greeks are a set of risk measures that are used in the options market to evaluate the risk and reward of an option. + + + + + Gets the rate of change of an option's price relative to a change in the price of the underlying asset. + + + + + Gets the rate of change in an option's delta relative to a change in the price of the underlying asset. + + + + + Gets the rate of change in an option's price relative to a change in the risk-free rate of interest. + + + + + Gets the rate of change in an option's price relative to a change in time. + + + + + Gets the rate of change in an option's price relative to a change in the volatility of the underlying asset. + + + + + Provides unified type-safe access for Alpaca Crypto Data API via HTTP/REST. + + + + + Gets historical bars list for single asset from Alpaca REST API endpoint. + + Historical bars request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of historical bars for specified asset (with pagination data). + + + + Gets historical bars dictionary for several assets from Alpaca REST API endpoint. + + Historical bars request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary of historical bars for specified assets (with pagination data). + + + + Provides unified type-safe access for Alpaca Crypto Data API via HTTP/REST. + + + + + Gets historical quotes list for single asset from Alpaca REST API endpoint. + + Historical quotes request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of historical quotes for specified asset (with pagination data). + + + + Gets historical quotes dictionary for several assets from Alpaca REST API endpoint. + + Historical quotes request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary of historical quotes for specified assets (with pagination data). + + + + Provides unified type-safe access to the historical data request parameters. + + + + + Gets the pagination parameters for the request (page size and token). + + + + + Provides unified type-safe access to the historical data request parameters. + + Historical data request type. + Historical response data item type. + + + + Gets copy of the current request without page token and max allowed page size. + + + + + Provides unified type-safe access for Alpaca Crypto Data API via HTTP/REST. + + + + + Gets historical trades list for single asset from Alpaca REST API endpoint. + + Historical trades request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only list of historical trades for specified asset (with pagination data). + + + + Gets historical trades dictionary for several assets from Alpaca REST API endpoint. + + Historical trades request parameters. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument contains invalid data or some required data is missing, unable to create a valid HTTP request. + + + The request failed due to an underlying issue such as network connectivity, DNS failure, server certificate validation or timeout. + + + The response contains an error message or the received response cannot be deserialized properly due to JSON schema mismatch. + + + The initial TPC socket connection failed due to an underlying low-level network connectivity issue. + + + .NET Core and .NET 5 and later only: The request failed due to timeout. + + + The argument is null. + + Read-only dictionary of historical trades for specified assets (with pagination data). + + + + Encapsulates single trading day information from Alpaca REST API. + + + + + Gets trading open and close times in EST time zone. + + + + + Gets session open and close times in EST time zone. + + + + + Encapsulates the basic LULD update information from Alpaca APIs. + + + + + Gets asset symbol. + + + + + Gets the LULD update timestamp in UTC. + + + + + Gets the current limit up price. + + + + + Gets the current limit down price. + + + + + Gets the indicator name. + + + + + Gets tape. + + + + + Encapsulates the single market mover information from Alpaca APIs. + + + + + Gets the instrument symbol name. + + + + + Gets the current instrument price value. + + + + + Gets the current instrument price change value. + + + + + Gets the current instrument price change value in percents. + + + + + Encapsulates two lists of market movers from Alpaca APIs. + + + + + Gets list of the top market losers. + + + + + Gets list of the top market gainers. + + + + + Encapsulates single page response in Alpaca Data API v2. + + Type of paged item (bar, trade or quote) + + + + Gets the next page token for continuation. If value of this property + equals to null this page is the last one and no more data is available. + + + + + Gets list of items for this response grouped by asset symbols. + + + + + Encapsulates the basic news article information from Alpaca APIs. + + + + + Gets news article unique identifier. + + + + + Gets headline or title of the article. + + + + + Gets news article creation timestamp in UTC. + + + + + Gets news article updating timestamp in UTC. + + + + + Gets original author of news article. + + + + + Gets summary text for the article (may be first sentence of content). + + + + + Gets content of the news article (might contain HTML). + + + + + Gets URL of article (if applicable). + + + + + Gets source where the news originated from. + + + + + Gets list of related or mentioned symbols. + + + + + Gets the thumbnail image URL for the news article. + + + + + Gets the small image URL for the news article. + + + + + Gets the large image URL for the news article. + + + + + + + + + + Gets unique option contract identifier used by Alpaca. + + + + + Get option contract symbol. + + + + + Gets option contract name. + + + + + Get option contract status in API. + + + + + Returns true if asset is tradable. + + + + + Get option contract size. + + + + + Get option contract type. + + + + + Get option contract strike price. + + + + + Get option contract expiration date. + + + + + Get option contract execution style. + + + + + Get option contract root asset property. + + + + + Get option contract underlying asset property. + + + + + Get option contract underlying asset property. + + + + + Get option contract open interest. + + + + + Get option contract open interest date. + + + + + Get option contract close price. + + + + + Get option contract close price date. + + + + + Encapsulates option snapshot information from the Alpaca REST API. + + + + + Gets the snapshot's option symbol. + + + + + Gets the latest quote information. + + + + + Gets the latest trade information. + + + + + Gets the option greeks data. + + + + + Gets the implied volatility of the option. + + + + + Encapsulates order information from Alpaca REST API. + + + + + Gets unique server-side order identifier. + + + + + Gets client-side (user specified) order identifier. Client Order IDs must be unique. + + + + + Gets order creation timestamp in UTC. + + + + + Gets last order update timestamp in UTC. + + + + + Gets order submission timestamp in UTC. + + + + + Gets order fill timestamp in UTC. + + + + + Gets order expiration timestamp in UTC. + + + + + Gets order cancellation timestamp in UTC. + + + + + Gets order rejection timestamp in UTC. + + + + + Gets order replacement timestamp in UTC. + + + + + Gets unique asset identifier. + + + + + Gets asset symbol. + + + + + Gets asset class. + + + + + Gets original notional order quantity (with the fractional part). + + + + + Gets original fractional order quantity (with the fractional part). + + + + + Gets filled order quantity (with the fractional part). + + + + + Gets original order quantity (rounded to the nearest integer). + + + + + Gets filled order quantity (rounded to the nearest integer). + + + + + Gets order type. + + + + + Gets order class. + + + + + Gets order side (buy or sell). + + + + + Gets order duration. + + + + + Gets order limit price for limit and stop-limit orders. + + + + + Gets order stop price for stop and stop-limit orders. + + + + + Gets the profit taking limit price for advanced order types. + + + + + Gets the stop loss stop price for advanced order types. + + + + + Gets the current high water mark price for trailing stop orders. + + + + + Gets order average fill price. + + + + + Gets current order status. + + + + + Gets the order ID that this order was replaced by. + + + + + Gets the order ID that this order replaces. + + + + + Gets legs for this order. + + + + + Encapsulates order action status information from Alpaca REST API. + + + + + Gets unique server-side order identifier. + + + + + Returns true if requested action completed successfully. + + + + + Encapsulates the basic order book information from Alpaca APIs. + + + + + Gets asset name. + + + + + Gets quote timestamp in UTC time zone. + + + + + Gets identifier of source exchange. + + + + + Gets bids price/quantity pairs list. + + + + + Gets asks price/quantity pairs list. + + + + + Gets the order book reset flag. + + + + + Encapsulates the order book price/size pair information. + + + + + Gets price level. + + + + + Gets quantity. + + + + + Encapsulates single page response in Alpaca Data API v2. + + Type of paged item (bar, trade or quote) + + + + Gets the asset symbol for all items on page. + + + + + Gets the next page token for continuation. If value of this property + equals to null this page is the last one and no more data is available. + + + + + Gets list of items for this response. + + + + + Encapsulates portfolio history information from Alpaca REST API. + + + + + Gets historical information items list with timestamps. + + + + + Gets time frame value for this historical view. + + + + + Gets base value for this historical view. + + + + + Encapsulates portfolio history information item from Alpaca REST API. + + + + + Gets historical equity value. + + + + + Gets historical profit/loss value. + + + + + Gets historical profit/loss value as percentages. + + + + + Gets historical timestamp value in UTC time zone. + + + + + Encapsulates position information from Alpaca REST API. + + + + + Gets unique asset identifier. + + + + + Gets asset symbol. + + + + + Gets asset exchange. + + + + + Gets asset class. + + + + + Gets average entry price for position. + + + + + Get position quantity (with the fractional part). + + + + + Get position quantity (rounded to the nearest integer). + + + + + Get total number of shares available minus open orders (with the fractional part). + + + + + Get total number of shares available minus open orders (rounded to the nearest integer). + + + + + Get position side (short or long). + + + + + Get current position market value. + + + + + Get position cost basis. + + + + + Get position unrealized profit loss. + + + + + Get position unrealized profit loss in percent. + + + + + Get position intraday unrealized profit loss. + + + + + Get position intraday unrealized profit loss in percent. + + + + + Gets position's asset current price. + + + + + Gets position's asset last trade price. + + + + + Gets position's asset price change in percent. + + + + + Encapsulates position action status information from Alpaca REST API. + + + + + Gets processed position asset symbol. + + + + + Returns true if requested action completed successfully. + + + + + Encapsulates the basic quote information from Alpaca APIs. + + + + + Gets asset symbol. + + + + + Gets quote timestamp in UTC. + + + + + Gets identifier of bid source exchange. + + + + + Gets identifier of ask source exchange. + + + + + Gets bid price level (highest buy offer). + + + + + Gets ask price level (lowest sell offer). + + + + + Gets bid quantity. + + + + + Gets ask quantity. + + + + + Gets tape where trade occurred. + + + + + Gets trade conditions list. + + + + + Encapsulates snapshot information from the Alpaca REST API. + + + + + Gets the snapshot's asset symbol. + + + + + Gets the latest quote information. + + + + + Gets the latest trade information. + + + + + Gets the current minute bar information. + + + + + Gets the current daily bar information. + + + + + Gets the previous daily bar information. + + + + + Encapsulates the basic trading status update information from Alpaca APIs. + + + + + Gets asset symbol. + + + + + Gets status timestamp in UTC. + + + + + Gets status code. + + + + + Gets status message. + + + + + Gets reason code. + + + + + Gets reason message. + + + + + Gets tape. + + + + + Provides unified type-safe access for websocket streaming APIs. + + + + + Occurs when stream is successfully connected. + + + + + Occurs when underlying web socket is successfully opened. + + + + + Occurs when underlying web socket is successfully closed. + + + + + Occurs when any error occurs in stream. + + + + + Occurs in case of non-critical events. + + + + + Opens connection to a streaming API. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The underlying TPC socket connection failed due to an low-level network connectivity issue. + + + The WebSocket connection failed due to an high-level protocol or connection issue. + + Awaitable task object for handling action completion in asynchronous mode. + + + + Opens connection to a streaming API and awaits for authentication response. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The underlying TPC socket connection failed due to an low-level network connectivity issue. + + + The WebSocket connection failed due to an high-level protocol or connection issue. + + Awaitable task object for handling client authentication event in asynchronous mode. + + + + Closes connection to a streaming API. + + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The underlying TPC socket connection failed due to an low-level network connectivity issue. + + + The WebSocket connection failed due to an high-level protocol or connection issue. + + Awaitable task object for handling action completion in asynchronous mode. + + + + Provides unified type-safe access for websocket streaming APIs with data subscriptions. + + + + + Gets the trade updates subscription for all assets. + + + The underlying subscriptions dictionary contains too many elements. + + + Subscription object for tracking updates via the event. + + + + + Gets the trade updates subscription for the asset. + + Alpaca asset symbol. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Gets the quote updates subscription for all assets. + + + The underlying subscriptions dictionary contains too many elements. + + + Subscription object for tracking updates via the event. + + + + + Gets the quote updates subscription for the asset. + + Alpaca asset symbol. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Gets the minute aggregate (bar) subscription for all assets. + + + Subscription object for tracking updates via the event. + + + + + Gets the minute aggregate (bar) subscription for the asset. + + Alpaca asset symbol. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Gets the daily aggregate (bar) subscription for the asset. + + Alpaca asset symbol. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Gets the updated aggregate (bar) subscription for the asset. + + Alpaca asset symbol. + + The underlying subscriptions dictionary contains too many elements. + + + The argument is null. + + + Subscription object for tracking updates via the event. + + + + + Provides unified type-safe access for subscribing/unsubscribing streaming events. + + + + + Subscribes a single object for receiving data from the server. + + Subscription target - asset and update type holder. + + The argument is null. + + + + + Subscribes a single object for receiving data from the server. + + Subscription target - asset and update type holder. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument is null. + + + + + Subscribes several objects for receiving data from the server. + + List of subscription targets - assets and update type holders. + + The argument is null. + + + + + Subscribes several objects for receiving data from the server. + + List of subscription targets - assets and update type holders. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument is null. + + + + + Unsubscribes the single object for receiving data from the server. + + Subscription target - asset and update type holder. + + The argument is null. + + + + + Unsubscribes the single object for receiving data from the server. + + Subscription target - asset and update type holder. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument is null. + + + + + Unsubscribes several objects for receiving data from the server. + + List of subscription targets - assets and update type holders. + + The argument is null. + + + + + Unsubscribes several objects for receiving data from the server. + + List of subscription targets - assets and update type holders. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + The argument is null. + + + + + Encapsulates the basic trade information from Alpaca APIs. + + + + + Gets asset symbol. + + + + + Gets trade timestamp in UTC. + + + + + Gets trade price level. + + + + + Gets trade quantity. + + + + + Gets trade identifier. + + + + + Gets trade source exchange identifier. + + + + + Gets tape where trade occurred. + + + + + Gets trade update reason if any. + + + + + Gets trade conditions list. + + + + + Gets crypto trade taker side. + + + + + Encapsulates trade update information from Alpaca streaming API. + + + + + Gets trade update reason. + + + + + Gets optional order execution identifier. + + + + + Gets updated trade price level. + + + + + Gets updated position quantity (with the fractional part). + + + + + Gets updated position quantity (rounded to the nearest integer). + + + + + Gets updated trade quantity (with the fractional part). + + + + + Gets updated trade quantity (rounded to the nearest integer). + + + + + Gets update timestamp in UTC. + + + + + Gets related order object. + + + + + Encapsulates watch list information from Alpaca REST API. + + + + + Gets unique watch list identifier. + + + + + Gets watch list creation time in UTC. + + + + + Gets watch list last update time in UTC. + + + + + Gets watch list user-defined name. + + + + + Gets for this watch list. + + + + + Gets the content of this watchlist, in the order as registered by the client. + + + + + Encapsulates access point for setting time interval filtering on request instance. + + The sort of time interval (inclusive or exclusive). + + + + Sets time interval value for the current request instance. + + + + + Encapsulates time interval (from and till date/time points) for filtering requires. + + + + + Gets the starting date/time point of filtering interval. + + + + + Gets the ending date/time point of filtering interval. + + + + + Represents the inclusive version of the interface. + + + + + Represents the exclusive version of the interface. + + + + + Encapsulates data for latest crypto XBBO request on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset symbols list for data retrieval. + Crypto exchanges list for data retrieval. + + The or argument is null. + + + + + Creates new instance of object. + + Asset symbols list for data retrieval. + Crypto exchange for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols list for data retrieval. + + The argument is null. + + + + + Gets asset symbols for data retrieval. + + + + + Gets crypto exchanges list for data retrieval (empty list means 'all exchanges'). + + + + + Encapsulates data for latest crypto XBBO request on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Crypto exchanges list for data retrieval. + + The or argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Crypto exchange for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Gets asset symbol for data retrieval. + + + + + Gets crypto exchanges list for data retrieval (empty list means 'all exchanges'). + + + + + Encapsulates data for latest crypto data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Crypto exchange for data retrieval. + + The argument is null. + + + + + Gets asset symbol for data retrieval. + + + + + Gets crypto exchange for data retrieval. + + + + + Encapsulates data for snapshot crypto data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Crypto exchange for data retrieval. + + The argument is null. + + + + + Gets asset symbol for data retrieval. + + + + + Gets crypto exchange for data retrieval. + + + + + Encapsulates implementations of the interface and helper methods for it. + + + + + Gets boolean flag signals that time interval is empty (both start and end date equal to null). + + Target time interval for checking. + + Returns true if both and equal to null. + + + + + Gets boolean flag signals that time interval is open (both start or end date equal to null). + + Target time interval for checking. + + Returns true if both or equal to null. + + + + + Gets exclusive open time interval ending at the date/time point. + + Ending date/time point for filtering. + Inclusive open time interval. + + + + Gets inclusive open time interval ending at the date/time point. + + Ending date/time point for filtering. + Inclusive open time interval. + + + + Gets exclusive open time interval starting from the date/time point. + + Starting date/time point for filtering. + Inclusive open time interval. + + + + Gets inclusive open time interval starting from the date/time point. + + Starting date/time point for filtering. + Inclusive open time interval. + + + + Creates new instance of object + with the modified property value. + + Original time interval. + New ending date/time point for interval. + The new instance of object. + + + + Creates new instance of object + with the modified property value. + + Original time interval. + New ending date/time point for interval. + The new instance of object. + + + + Creates new instance of object + with the modified property value. + + Original time interval. + New starting date/time point for interval. + The new instance of object. + + + + Creates new instance of object + with the modified property value. + + Original time interval. + New starting date/time point for interval. + The new instance of object. + + + + Set exclusive time interval for object. + + Target request for setting filtering interval. + Time interval (date/time pair) for filtering. + Fluent interface - returns object. + + + + Set inclusive time interval for object. + + Target request for setting filtering interval. + Time interval (date/time pair) for filtering. + Fluent interface - returns object. + + + + Set exclusive time interval for object. + + Target request for setting filtering interval. + Starting date/time point for filtering. + Ending date/time point for filtering. + Fluent interface - returns object. + + + + Set inclusive time interval for object. + + Target request for setting filtering interval. + Starting date/time point for filtering. + Ending date/time point for filtering. + Fluent interface - returns object. + + + + Deconstructs the instance + into two values (tuple). + + Original time interval. + Time interval starting point. + Time interval ending point. + + + + Deconstructs the instance + into two values (tuple). + + Original time interval. + Time interval starting point. + Time interval ending point. + + + + Encapsulates base data for advanced order types, never used directly by any code. + + + + + Creates new instance of the class. + + Base order object for creating advanced one. + Advanced order class for new smart order. + + The argument is null. + + + + + Gets or sets the order class for advanced order types. + + + + + A bracket order is a chain of three orders that can be used to manage your position entry and exit. + It is a common use case of an OTOCO (One Triggers OCO {One Cancels Other}) order. + + + See Alpaca Order Documentation for more information. + + + + + Gets prices for take profit order for the bracket order. + + + + + Gets prices for stop loss order for the bracket order. + + + + + Encapsulates the price information about the stop loss order. + + + + + Gets the stop loss stop price. + + + + + Gets the stop loss limit price. + + + + + Encapsulates the price information about the take profit order. + + + + + Gets the profit taking limit price. + + + + + A limit order is an order to buy or sell at a specified price or better. + + See Alpaca Order Documentation for more information. + + + + Gets or sets the new order limit price. + + + + + Creates new buy market order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + Order limit price. + + The argument is null. + + The new object instance. + + + + Creates new sell market order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + Order limit price. + + The argument is null. + + The new object instance. + + + + Creates a new instance of the order from the current order. + + Stop loss order stop price. + New advanced order representing pair of original order and stop loss order. + + + + Creates a new instance of the order from the current order. + + Stop loss order stop price. + Stop loss order limit price. + New advanced order representing pair of original order and stop loss order. + + + + A market order is a request to buy or sell a security at the currently available market price. + + See Alpaca Order Documentation for more information. + + + + Creates new buy market order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + + The argument is null. + + The new object instance. + + + + Creates new sell market order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + + The argument is null. + + The new object instance. + + + + OCO (One-Cancels-Other) is another type of advanced order type. + This is a set of two orders with the same side (buy/buy or sell/sell) and currently only exit order is supported. + In other words, this is the second part of the bracket orders where the entry order is already filled, + and you can submit the take-profit and stop-loss in one order submission. + + See Alpaca Order Documentation for more information. + + + + Gets prices for take profit order for the OCO order. + + + + + Gets prices for stop loss order for the OCO order. + + + + + Encapsulates base data for any order types, never used directly by any code. + + + + + Creates new instance of the class. + + Alpaca symbol for order. + Order quantity (absolute value). + Order side (buy or sell). + Order type (market, limit, stop, stop-limit). + + The argument is null. + + + + + Creates new instance of the class. + + Base order for getting parameters. + + The argument is null. + + + + + Gets the new order asset symbol. + + + + + Gets the new order quantity. + + + + + Gets the new order side (buy or sell). + + + + + Gets the new order type. + + + + + Gets the new order duration. + + + + + Gets or sets the client order ID. This is a user-specified ID that must be unique if provided. + + + + + Gets or sets flag indicating that order should be allowed to execute during extended hours trading. + + + + + Gets or sets the optional position intent for order placement. + + + + + Set of extensions methods for implementing the fluent interface for the inheritors. + + + + + Sets the new value for the property of the target order. + + Target order for changing property. + The new property value. + Type of target order for altering. + + The argument is null. + + Fluent interface - returns the object. + + + + Sets the new value for the property of the target order. + + Target order for changing property. + The new property value. + Type of target order for altering. + + The argument is null. + + Fluent interface - returns the object. + + + + Sets the new value for the property of the target order. + + Target order for changing property. + The new property value. + Type of target order for altering. + + The argument is null. + + Fluent interface - returns the object. + + + + Sets the new value for the property of the target order. + + Target order for changing property. + The new property value. + Type of target order for altering. + + The argument is null. + + Fluent interface - returns the object. + + + + Set of extensions methods for creating the inheritors. + + + + + Creates new market order using specified side, symbol, and quantity. + + Order side (buy or sell). + Order asset symbol. + Order quantity. + + The argument is null. + + The new object instance. + + + + Creates new stop order using specified side, symbol, quantity, and stop price. + + Order side (buy or sell). + Order asset symbol. + Order quantity. + Order stop price. + + The argument is null. + + The new object instance. + + + + Creates new limit order using specified side, symbol, quantity, and limit price. + + Order side (buy or sell). + Order asset symbol. + Order quantity. + Order limit price. + + The argument is null. + + The new object instance. + + + + Creates new limit order using specified side, symbol, quantity, stop, and limit prices. + + Order side (buy or sell). + Order asset symbol. + Order quantity. + Order stop price. + Order limit price. + + The argument is null. + + The new object instance. + + + + Creates new trailing stop order using specified side, symbol, quantity, and trail offset. + + Order side (buy or sell). + Order asset symbol. + Order quantity. + Order trail offset. + + The argument is null. + + The new object instance. + + + + Encapsulates base data for ordinal order types, never used directly by any code. + + + + + Creates new instance of the class. + + Alpaca symbol for order. + Order quantity (absolute value). + Order side (buy or sell). + Order type (market, limit, stop, stop-limit). + + The argument is null. + + + + + Creates a new instance of the order from the current order. + + Take profit order limit price. + New advanced order representing pair of original order and take profit order. + + + + Creates a new instance of the order from the current order. + + Stop loss order stop price. + New advanced order representing pair of original order and stop loss order. + + + + Creates a new instance of the order from the current order. + + Stop loss order stop price. + Stop loss order limit price. + New advanced order representing pair of original order and stop loss order. + + + + Creates a new instance of the order from the current order. + + Take profit order limit price. + Stop loss order stop price. + New advanced order representing an original order plus pair of take profit and stop loss orders. + + + + Creates a new instance of the order from the current order. + + Take profit order limit price. + Stop loss order stop price. + Stop loss order limit price. + New advanced order representing an original order plus pair of take profit and stop loss orders. + + + + A stop-limit order is a conditional trade over a set time frame that combines the features of a stop order with + those of a limit order and is used to mitigate risk. + The stop-limit order will be executed at a specified limit price, or better, after a given stop price has been reached. + See https://alpaca.markets/docs/trading/orders/#stop-limit-order + + + + + Gets or sets the new order stop price. + + + + + Gets or sets the new order limit price. + + + + + Creates new buy stop limit order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + Order stop price. + Order limit price. + + The argument is null. + + The new object instance. + + + + Creates new sell stop limit order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + Order stop price. + Order limit price. + + The argument is null. + + The new object instance. + + + + Encapsulates data required for placing stop loss order on the Alpaca REST API. + + + + + + + + + + + Creates a new instance of the order from the current order. + + Take profit order limit price. + New advanced order representing pair of original order and take profit order. + + + + A stop (market) order is an order to buy or sell a security when its price moves past a particular point, + ensuring a higher probability of achieving a predetermined entry or exit price. + See https://alpaca.markets/docs/trading/orders/#stop-order + + + + + Gets or sets the new order stop price. + + + + + Creates new buy stop order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + Order stop price. + + The argument is null. + + The new object instance. + + + + Creates new sell buy order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + Order stop price. + + The argument is null. + + The new object instance. + + + + Encapsulates data required for placing take profit order on the Alpaca REST API. + + + + + + + + Creates a new instance of the order from the current order. + + Stop loss order stop price. + New advanced order representing pair of original order and stop loss order. + + + + Creates a new instance of the order from the current order. + + Stop loss order stop price. + Stop loss order limit price. + New advanced order representing pair of original order and stop loss order. + + + + Trailing stop orders allow you to continuously and automatically keep updating the stop price threshold based on the stock price movement. + See https://alpaca.markets/docs/trading/orders/#trailing-stop-orders + + + + + Gets order trail offset value (in dollars or percent). + + + + + Creates new buy market order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + Trailing stop order offset. + + The argument is null. + + The new object instance. + + + + Creates new sell market order using specified symbol and quantity. + + Order asset symbol. + Order quantity. + Trailing stop order offset. + + The argument is null. + + The new object instance. + + + + Represents the trailing stop order offset in dollars or as percent of HWM (High Water Mark). + + + + + Creates new instance of the structure. + + + + + Gets the trailing stop order price offset value. + + + + + Returns true if trail offset is an amount in dollars. + + + + + Returns true if trail offset is a percentage of HWM value. + + + + + Creates new instance of the object + initialized with as dollars amount. + + Trailing stop order offset in dollars. + Initialized object. + + + + Creates new instance of the object + initialized with as percent of HWM. + + Trailing stop order offset in percents. + Initialized object. + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object for all activity types. + + + + + Creates new instance of object for a single activity types. + + The activity type you want to view entries for. + + + + Creates new instance of object for several activity types. + + The list of activity types you want to view entries for. + + + + Gets the activity types you want to view entries for. Empty list means 'all activity types'. + + + + + Gets the date for which you want to see activities. + + + + + Gets inclusive date interval for filtering items in response. + + + + + Gets or sets the sorting direction for results. + + + + + Gets or sets the maximum number of entries to return in the response. + + + + + Gets or sets the ID of the end of your current page of results. + + + + + Sets filtering for single activities. + + Target date for filtering activities. + Fluent interface method return same instance. + + + + Sets filtering for single activities. + + Target date for filtering activities. + Fluent interface method return same instance. + + + + Sets time interval for filtering data returned by this request. + /// + New filtering interval. + Request with applied filtering. + + + + Configuration parameters object for all REST API client instances. + + + + + Creates new instance of class. + + + The argument is null. + + + + + Security identifier for API authentication. + + + + + Gets or sets Alpaca Data API base URL. + + + + + Gets or sets REST API throttling parameters. + + + + + Gets or sets instance for connecting. + + + + + Configuration parameters object for instance. + + + + + Creates new instance of class. + + + + + Configuration parameters object for instance. + + + + + Creates new instance of class. + + + + + Gets crypto exchanges list for data subscription (empty list means 'all exchanges'). + + + + + Creates new instance of object + with the updated list. + + Crypto exchanges to add into the list. + + The argument is null. + + The new instance of the object. + + + + Creates new instance of object + with the updated list. + + Crypto exchanges to add into the list. + + The argument is null. + + The new instance of the object. + + + + Configuration parameters object for instance. + + + + + Creates new instance of class. + + + + + Configuration parameters object for instance. + + + + + Creates new instance of class. + + + + + Configuration parameters object for implementation. + + + + + Creates new instance of class. + + + + + Configuration parameters object for instance. + + + + + Creates new instance of class. + + + + + Configuration parameters object for instance. + + + + + Creates new instance of class. + + + + + Configuration parameters object for instance. + + + + + Creates new instance of class. + + + + + Configuration parameters object for instance. + + + + + Creates new instance of class. + + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + Single corporate action type for filtering. + Date range when searching corporate action announcements. + + + + Creates new instance of object. + + List of the corporate action types for filtering. + Date range when searching corporate action announcements. + + The argument is null. + + + + + Creates new instance of object. + + Single corporate action type for filtering. + Date range when searching corporate action announcements. + + + + Creates new instance of object. + + List of the corporate action types for filtering. + Date range when searching corporate action announcements. + + + + Gets the list of the corporate action types for filtering. + + + + + Gets the date range when searching corporate action announcements. + + + + + Gets the date range when searching corporate action announcements. + + + + + Gets or sets the type of date for filtering by parameter. + + + + + Gets or sets the symbol of the company initiating the announcement. + + + + + Gets or sets the CUSIP of the company initiating the announcement. + + + + + Encapsulates request parameters for call. + + + + + Gets or sets asset status for filtering. + + + + + Gets or sets asset class for filtering. The null value is equal to value. + + + + + Gets or sets asset exchange for filtering. The null value means "no filtering by exchanges". + + + + + Gets set of asset attributes for filtering. Empty default value means - any attribute allowed (no filtering). + + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + + + + Creates new instance of object. + + Start date for the resulting data set. + End date for the resulting data set. + + + + Creates new instance of object. + + Initial value of the property. + + + + Creates new instance of object with the + property configured for the single day. + + + + + + + Creates new instance of object with the + property configured for the single day. + + + + + + + Gets inclusive date interval for filtering items in response. + + + + + Gets inclusive date interval for filtering items in response. + + + + + Sets time interval for filtering data returned by this request. + /// + New filtering interval. + Request with applied filtering. + + + + Sets time interval for filtering data returned by this request. + /// + New filtering interval. + Request with applied filtering. + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + Server side order identifier. + + + + Gets server side order identifier. + + + + + Gets or sets updated order quantity or null if quantity is not changed. + + + + + Gets or sets updated order duration or null if duration is not changed. + + + + + Gets or sets updated order limit price or null if limit price is not changed. + + + + + Gets or sets updated order stop price or null if stop price is not changed. + + + + + Gets or sets updated client order ID or null if client order ID is not changed. + + + + + Encapsulates request parameters for + , + , + , and + + calls. + + + + + + Creates new instance of object. + + Unique watch list identifier or name. + Asset symbol for adding into watch list. + + The or argument is null. + + + + + Gets unique watch list identifier or name. + + + + + Gets asset symbol for adding/deleting into watch list. + + + + + Encapsulates request parameters for call. + + + + + Gets or sets the flag indicating that request should also cancel all open orders (false if null). + + + + + Gets or sets the operation timeout. Useful in case of deleting a lot of positions. The default + HTTP timeout equal to 100 seconds used if this property is equal to null. + + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + Symbol for liquidation. + + The argument is null. + + + + + Gets or sets the custom position liquidation size (if null the position will be liquidated completely). + + + + + Gets the symbol for liquidation. + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Gets or sets the optional parameter for mapping symbol to contract by a specific date. + + + + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Gets type of time bars for retrieval. + + + + + Gets or sets adjustment type of time bars for retrieval. + + + + + Gets or sets the feed to pull market data from. The and + are only available to those with a subscription. Default is + for free plans and for paid. + + + + + Gets or sets the optional parameter for mapping symbol to contract by a specific date. + + + + + Gets or sets the optional parameter for the returned prices in ISO 4217 standard. + For example: USD, EUR, JPY, etc. In case of null the default USD will be used. + + + + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Gets type of time bars for retrieval. + + + + + Creates new instance of object + with the updated list. + + Crypto exchanges to add into the list. + + The argument is null. + + The new instance of the object. + + + + Creates new instance of object + with the updated list. + + Crypto exchanges to add into the list. + + The argument is null. + + The new instance of the object. + + + + Gets crypto exchanges list for data retrieval (empty list means 'all exchanges'). + + + + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object + with the updated list. + + Crypto exchanges to add into the list. + + The argument is null. + + The new instance of the object. + + + + Creates new instance of object + with the updated list. + + Crypto exchanges to add into the list. + + The argument is null. + + The new instance of the object. + + + + Gets crypto exchanges list for data retrieval (empty list means 'all exchanges'). + + + + + + + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object + with the updated list. + + Crypto exchanges to add into the list. + The new instance of the object. + + The argument is null. + + + + + Creates new instance of object + with the updated list. + + Crypto exchanges to add into the list. + The new instance of the object. + + The argument is null. + + + + + Gets crypto exchanges list for data retrieval (empty list means 'all exchanges'). + + + + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Type of time bars for retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Type of time bars for retrieval. + + The argument is null. + + + + + Gets type of time bars for retrieval. + + + + + + + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + + + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Gets or sets the feed to pull market data from. The and + are only available to those with a subscription. Default is + for free plans and for paid. + + + + + Gets or sets the optional parameter for mapping symbol to contract by a specific date. + + + + + Gets or sets the optional parameter for the returned prices in ISO 4217 standard. + For example: USD, EUR, JPY, etc. In case of null the default USD will be used. + + + + + + + + Encapsulates base logic for all historical data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + + + Gets asset symbol for data retrieval. + + + + + Gets asset symbols list for data retrieval. + + + + + Gets inclusive date interval for filtering items in response. + + + + + Gets the pagination parameters for the request (page size and token). + + + + + Gets or sets the result sorting direction (sort fields is timestamp). + + + + + Gets the last part of the full REST endpoint URL path. + + + + + Encapsulates request parameters for + and + calls. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Filter data equal to or after this time. + Filter data equal to or before this time. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + Inclusive time interval for filtering items in response. + + The argument is null. + + + + + Gets or sets the feed to pull market data from. The and + are only available to those with a subscription. Default is + for free plans and for paid. + + + + + Gets or sets the optional parameter for mapping symbol to contract by a specific date. + + + + + Gets or sets the optional parameter for the returned prices in ISO 4217 standard. + For example: USD, EUR, JPY, etc. In case of null the default USD will be used. + + + + + + + + Encapsulates account history period request duration - value and unit pair. + + + + + Creates new instance of the structure. + + + + + Creates new instance of object. + + Duration value in units. + Duration units (days, weeks, etc.) + + + + Gets specified duration units. + + + + + Gets specified duration value. + + + + + + + + Encapsulates interval starting and ending points - used for date/time filtering in requests. + + Interval range data type. + + + + Creates the new instance of the structure. + + + + + Creates the new instance of the structure. + + Initial value for the property. + Initial value for the property. + + + + Gets the starting point of interval. + /// + + + + Gets the ending point of interval. + + + + + Deconstructs the instance + into two values (tuple). + + Interval starting point. + Interval ending point. + + + + Gets boolean flag that signals the time interval is empty (both start and end date equal to null). + + + Returns true if both and are equal to null. + + + + + Gets boolean flag that signals the time interval is open (start or end date equal to null). + + + Returns true if both or equal to null. + + + + + Creates new instance of object + with the modified property value. + + New ending point for interval. + The new instance of object. + + + + Creates new instance of object + with the modified property value. + + New starting point for interval. + The new instance of object. + + + + Encapsulates data for latest crypto data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbol for data retrieval. + Crypto exchange for data retrieval. + + The argument is null. + + + + + Gets asset symbols for data retrieval. + + + + + Gets crypto exchange for data retrieval. + + + + + Encapsulates data for latest stock data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset name for data retrieval. + + The argument is null. + + + + + Gets asset name for data retrieval. + + + + + Gets or sets the feed to pull market data from. The and + are only available to those with a subscription. Default is + for free plans and for paid. + + + + + Gets or sets the optional parameter for the returned prices in ISO 4217 standard. + For example: USD, EUR, JPY, etc. In case of null the default USD will be used. + + + + + Encapsulates data for latest stock data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset name for data retrieval. + + The argument is null. + + + + + Gets asset name for data retrieval. + + + + + Gets or sets the feed to pull market data from. The and + are only available to those with a subscription. Default is + for free plans and for paid. + + + + + Gets or sets the optional parameter for the returned prices in ISO 4217 standard. + For example: USD, EUR, JPY, etc. In case of null the default USD will be used. + + + + + Encapsulates data for latest options data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Options symbols list for data retrieval. + + The argument is null. + + + + + Gets options symbols list for data retrieval. + + + + + Gets options feed for data retrieval. + + + + + Encapsulates data for latest crypto XBBO request on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset symbols list for data retrieval. + Crypto exchanges list for data retrieval. + + The or argument is null. + + + + + Creates new instance of object. + + Asset symbols list for data retrieval. + Crypto exchange for data retrieval. + + The argument is null. + + + + + Creates new instance of object. + + Asset symbols list for data retrieval. + + The argument is null. + + + + + Gets asset symbols for data retrieval. + + + + + Gets crypto exchanges list for data retrieval (empty list means 'all exchanges'). + + + + + Encapsulates request parameters for call. + + + + + Gets or sets order status for filtering. + + + + + Gets or sets the chronological order of response based on the submission time. + + + + + Gets exclusive date time interval for filtering orders in response. + + + + + Gets or sets maximum number of orders in response. + + + + + Gets or sets side of orders in response (all orders if null). + + + + + Gets or sets flag for rolling up multi-leg orders under the property of primary order. + + + + + Gets list of symbols used for filtering the resulting list, if empty - orders for all symbols will be included. + + + + + Adds a single item into the list. + + Single symbol name for filtering. + + The argument is null. + + Fluent interface, returns the original instance. + + + + Adds all items from the list into the list. + + List of symbol names for filtering. + + The argument is null. + + Fluent interface, returns the original instance. + + + + Sets time interval for filtering data returned by this request. + /// + New filtering interval. + Request with applied filtering. + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + Order asset symbol. + Order quantity. + Order side (buy or sell). + Order type. + Order duration. + + The argument is null. + + + + + Gets the new order asset symbol. + + + + + Gets the new order quantity. + + + + + Gets the new order side (buy or sell). + + + + + Gets the new order type. + + + + + Gets the new order duration. + + + + + Gets or sets the new order limit price. + + + + + Gets or sets the new order stop price. + + + + + Gets or sets the new trailing order trail price offset in dollars. + + + + + Gets or sets the new trailing order trail price offset in percent. + + + + + Gets or sets the client order ID. This user-specified ID must be unique if set. + + + + + Gets or sets flag indicating that order should be allowed to execute during extended hours trading. + + + + + Gets or sets the order class for advanced order types. + + + + + Gets or sets the profit taking limit price for advanced order types. + + + + + Gets or sets the stop loss stop price for advanced order types. + + + + + Gets or sets the stop loss limit price for advanced order types. + + + + + Gets or sets the optional position intent for order placement. + + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + + The argument is null. + + + + + Gets assets names list for data retrieval. + + + + + Gets or sets inclusive date interval for filtering items in response. + + + + + Gets or sets articles sorting (by property) direction. + + + + + Gets or sets flag for sending property value for each news article. + + + + + Gets or sets flag for excluding news articles that do not contain + property value (just and values). + + + + + Gets the pagination parameters for the request (page size and token). + + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + User defined watch list name. + + The argument is null. + + + + + Creates new instance of object. + + User defined watch list name. + List of asset symbols for new watch list. + + The or argument is null. + + + + + Gets user defined watch list name. + + + + + Gets list of asset symbols for new watch list. + + + + + Encapsulates data for latest options data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Option underlying symbol for data retrieval. + + The argument is null. + + + + + Gets options symbols list for data retrieval. + + + + + Gets options feed for data retrieval. + + + + + Gets or sets filter by the exact option contract expiration date. + + + + + Gets or sets filter by the expiration date greater than or equal to the specified value. + + + + + Gets or sets filter by the expiration date less than or equal to the specified value. + + + + + Gets or sets filter ty the root symbol. + + + + + Gets or sets filter the option contract type. + + + + + Gets or sets filter by the strike price greater than or equal to the specified value. + + + + + Gets or sets filter by the strike price less than or equal to the specified value. + + + + + Gets the pagination parameters for the request (page size and token). + + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + + + + Creates new instance of object. + + The symbol of the underlying asset for filtering. + + + + Creates new instance of object. + + The symbols list of the underlying asset for filtering. + + + + Gets the symbols list of the underlying asset for filtering. + + + + + Gets or sets filter by the asset status. By default, only active contracts are returned. + + + + + Gets or sets filter by the exact option contract expiration date. + + + + + Gets or sets filter by the expiration date greater than or equal to the specified value. + + + + + Gets or sets filter by the expiration date less than or equal to the specified value. + + + + + Gets or sets filter ty the root symbol. + + + + + Gets or sets filter the option contract type. + + + + + Gets or sets filter the option contract execution style. + + + + + Gets or sets filter by the strike price greater than or equal to the specified value. + + + + + Gets or sets filter by the strike price less than or equal to the specified value. + + + + + Gets the pagination parameters for the request (page size and token). + + + + + + + + Encapsulates data for latest options data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Options symbols list for data retrieval. + + The argument is null. + + + + + Gets options symbols list for data retrieval. + + + + + Gets options feed for data retrieval. + + + + + Gets the pagination parameters for the request (page size and token). + + + + + Encapsulates all data required for the pagination support in Alpaca Data API v2 + + + + + Gets the maximum valid page size for requests supported by Alpaca Data API v2. + + + + + Gets the maximum valid page size for news requests supported by Alpaca Data API v2. + + + + + Gets and sets the request page size. If equals to null default size will be used. + + + + + Gets and sets the page token for the request. Should be null for the first request. + + + + + Encapsulates request parameters for call. + + + + + Gets inclusive date interval for filtering items in response. + + + + + Gets inclusive date interval for filtering items in response. + + + + + Gets inclusive date interval for filtering items in response. + + + + + Gets or sets the time frame value for desired history. Default value (if null) is 1 minute + for a period shorter than 7 days, 15 minutes for a period less than 30 days, or 1 day for a longer period. + + + + + Gets or sets period value for desired history. Default value (if null) is 1 month. + + + + + Gets or sets intraday reporting style. Make sense only if are equal to . + + + + + Gets or sets intraday profit/loss reset. Make sense only if are equal to . + + + + + Gets or sets flags, indicating that include extended hours included in the result. + This is effective only for time frame less than 1 day. + + + + + Sets time interval for filtering data returned by this request. + /// + New filtering interval. + Request with applied filtering. + + + + Sets time interval for filtering data returned by this request. + /// + New filtering interval. + Request with applied filtering. + + + + Encapsulates data for snapshot crypto data requests on Alpaca Data API v2. + + + + + Creates new instance of object. + + Asset symbols for data retrieval. + + The argument is null. + + + + + Gets asset symbols list for data retrieval. + + + + + Configuration parameters object for class. + + + + + Creates new instance of class. + + + + + Gets or sets Alpaca streaming API base URL. + + + + + Gets or sets Alpaca secret key identifier. + + + + + Gets or sets factory for obtaining web socket client. + + + + + Encapsulates request parameters for call. + + + + + Creates new instance of object. + + Unique watch list identifier. + User defined watch list name. + List of asset symbols for new watch list. + + The or argument is null. + + + + + Gets the target watch list unique identifier. + + + + + Gets the target watch list name. + + + + + Gets list of asset symbols for new watch list. + + + + + Encapsulates access to the latest available rate limit information for this client. + + + + + Gets the latest available rate limit information or default values if no information is available. + + The latest rate limit data from the server or an empty object if no request was made. + + + + Provides information about client-specific rate limit values. + + + + + Gets the total request-per-minute limit for the current client. + + + + + Get the remaining number of requests allowed in the current time interval. + + + + + Gets end of the current time interval for requests limiting. + + + + + Helper class for storing parameters required for initializing rate throttler in class. + + + + + + + + Creates new instance of object. + + + + + + + + Gets throttle parameters initialized with default values. + + + + + Gets or sets maximum number of retry attempts for a single request. + + + + + Gets set of HTTP status codes which when received should initiate a retry of the affected request. + + + + + Gets set of socket error codes which when received should initiate a retry of the affected request. + + + + + Gets or sets the HTTP request timeout. Default timeout value (100 sec) + will be used if this property is equal to null or never set. + + + + + Gets the custom message handler that supports reconnection logic configured with the current settings. + + + + + Gets the custom Polly asynchronous execution policy (can be used by unit tests and DI containers). + + + + + Encapsulates asynchronous interface of web socket client. + + + + + Connects specified endpoint using web socket protocol. + + The web socket endpoint URL for connection. + A cancellation token that can be used by other objects or threads to receive notice of cancellation. + + + + Sends message into the web socket from memory buffer. + + Memory buffer with binary message. + + + + Reads message frame from the web socket into memory. + + Memory buffer for receiving data. + Read action status (frame parameters). + + + + Disconnects web socket channel from endpoint. + + Disconnection code. + + + + Immediately aborts connection at socket level. + + + + + Gets current web socket channel state. + + + + + Gets current web socket channel close status (if any). + + + + + Helper struct for holding results of method calls. + + Web socket message type (text, binary, close). + Is true for the last frame in message. + Number of bytes in the last frame. + + + + Helper struct for holding results of method calls. + + Web socket message type (text, binary, close). + Is true for the last frame in message. + Number of bytes in the last frame. + + + Web socket message type (text, binary, close). + + + Is true for the last frame in message. + + + Number of bytes in the last frame. + + + + + + + + + diff --git a/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.DataQueueHandler.cs b/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.DataQueueHandler.cs index f67f2c8..c45a698 100644 --- a/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.DataQueueHandler.cs +++ b/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.DataQueueHandler.cs @@ -31,7 +31,7 @@ public partial class AlpacaBrokerage : IDataQueueHandler /// The new enumerator for this subscription request public IEnumerator Subscribe(SubscriptionDataConfig dataConfig, EventHandler newDataAvailableHandler) { - if (!CanSubscribe(dataConfig.Symbol) || dataConfig.Symbol.SecurityType == SecurityType.Option) + if (!CanSubscribe(dataConfig.Symbol)) { return null; } diff --git a/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.Messaging.cs b/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.Messaging.cs index e47d19c..7a867f2 100644 --- a/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.Messaging.cs +++ b/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.Messaging.cs @@ -91,11 +91,15 @@ private IStreamingDataClient GetStreamingDataClient(Symbol symbol) IStreamingDataClient streamingClient; if (symbol.SecurityType == SecurityType.Crypto) { - streamingClient = _cryptoStreamingClient; + streamingClient = _cryptoStreamingClient.StreamingClient; } else if (symbol.SecurityType == SecurityType.Equity) { - streamingClient = _equityStreamingClient; + streamingClient = _equityStreamingClient.StreamingClient; + } + else if (symbol.SecurityType.IsOption()) + { + streamingClient = _optionsStreamingClient.StreamingClient; } else { @@ -122,7 +126,7 @@ private void HandleTradeReceived(ITrade obj) TickType = TickType.Trade, Symbol = subscriptionData.Symbol, - Time = obj.TimestampUtc.ConvertFromUtc(subscriptionData.ExchangeTimeZone), + Time = DateTime.UtcNow.ConvertFromUtc(subscriptionData.ExchangeTimeZone), }; lock (_aggregator) { @@ -152,7 +156,7 @@ private void HandleQuoteReceived(IQuote obj) TickType = TickType.Quote, Symbol = subscriptionData.Symbol, - Time = obj.TimestampUtc.ConvertFromUtc(subscriptionData.ExchangeTimeZone), + Time = DateTime.UtcNow.ConvertFromUtc(subscriptionData.ExchangeTimeZone), }; lock (_aggregator) diff --git a/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.cs b/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.cs index 0f83038..9adfd0f 100644 --- a/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.cs +++ b/QuantConnect.AlpacaBrokerage/AlpacaBrokerage.cs @@ -63,8 +63,9 @@ public partial class AlpacaBrokerage : Brokerage private IAlpacaOptionsDataClient _optionsHistoricalDataClient; private IAlpacaStreamingClient _orderStreamingClient; - private IAlpacaDataStreamingClient _equityStreamingClient; - private IAlpacaCryptoStreamingClient _cryptoStreamingClient; + private AlpacaStreamingClientWrapper _equityStreamingClient; + private AlpacaStreamingClientWrapper _optionsStreamingClient; + private AlpacaStreamingClientWrapper _cryptoStreamingClient; private bool _isInitialized; private bool _connected; @@ -170,18 +171,26 @@ private void Initialize(string apiKey, string apiKeySecret, string accessToken, if (secretKey != null) { // equity streaming client - _equityStreamingClient = EnvironmentExtensions.GetAlpacaDataStreamingClient(environment, secretKey); + _equityStreamingClient = new AlpacaStreamingClientWrapper(secretKey, SecurityType.Equity); // streaming crypto - _cryptoStreamingClient = EnvironmentExtensions.GetAlpacaCryptoStreamingClient(environment, secretKey); + _cryptoStreamingClient = new AlpacaStreamingClientWrapper(secretKey, SecurityType.Crypto); - foreach (var streamingClient in new IStreamingClient[] { _cryptoStreamingClient, _equityStreamingClient, _orderStreamingClient }) + // streaming options + _optionsStreamingClient = new AlpacaStreamingClientWrapper(secretKey, SecurityType.Option); + + foreach (var streamingClient in new IStreamingClient[] { _cryptoStreamingClient, _optionsStreamingClient, _equityStreamingClient, _orderStreamingClient }) { streamingClient.Connected += (obj) => StreamingClient_Connected(streamingClient, obj); streamingClient.OnWarning += (obj) => StreamingClient_OnWarning(streamingClient, obj); streamingClient.SocketOpened += () => StreamingClient_SocketOpened(streamingClient); streamingClient.SocketClosed += () => StreamingClient_SocketClosed(streamingClient); streamingClient.OnError += (obj) => StreamingClient_OnError(streamingClient, obj); + + if (streamingClient is AlpacaStreamingClientWrapper wrapper) + { + wrapper.EnviromentFailure += (message) => Log.Trace($"AlpacaBrokerage.Initialize(): {message}"); + } } _subscriptionManager = new EventBasedDataQueueHandlerSubscriptionManager(); @@ -576,7 +585,7 @@ public override void Connect() return; } - foreach (var streamingClient in new IStreamingClient[] { _orderStreamingClient, _equityStreamingClient, _cryptoStreamingClient }) + foreach (var streamingClient in new IStreamingClient[] { _optionsStreamingClient, _orderStreamingClient, _equityStreamingClient, _cryptoStreamingClient }) { if (streamingClient == null) { @@ -630,6 +639,7 @@ public override void Disconnect() _orderStreamingClient?.DisconnectAsync().SynchronouslyAwaitTask(); _equityStreamingClient?.DisconnectAsync().SynchronouslyAwaitTask(); _cryptoStreamingClient?.DisconnectAsync().SynchronouslyAwaitTask(); + _optionsStreamingClient?.DisconnectAsync().SynchronouslyAwaitTask(); } public override void Dispose() @@ -644,6 +654,7 @@ public override void Dispose() _orderStreamingClient.DisposeSafely(); _equityStreamingClient.DisposeSafely(); _cryptoStreamingClient.DisposeSafely(); + _optionsStreamingClient.DisposeSafely(); } /// diff --git a/QuantConnect.AlpacaBrokerage/AlpacaStreamingClientWrapper.cs b/QuantConnect.AlpacaBrokerage/AlpacaStreamingClientWrapper.cs new file mode 100644 index 0000000..2ac94be --- /dev/null +++ b/QuantConnect.AlpacaBrokerage/AlpacaStreamingClientWrapper.cs @@ -0,0 +1,142 @@ +/* + * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. + * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +using System; +using Alpaca.Markets; +using System.Threading; +using QuantConnect.Util; +using System.Threading.Tasks; + +namespace QuantConnect.Brokerages.Alpaca +{ + /// + /// Helper class for alpaca streaming clients, handling paid/free subscriptions + /// + public class AlpacaStreamingClientWrapper : IStreamingClient + { + private readonly SecurityKey _securityKey; + private readonly SecurityType _securityType; + private IEnvironment[] _environments = new[] { Environments.Live, Environments.Paper }; + + public IStreamingDataClient StreamingClient { get; set; } + + public event Action Connected; + public event Action SocketOpened; + public event Action SocketClosed; + public event Action OnError; + public event Action OnWarning; + + public event Action EnviromentFailure; + + /// + /// Creates a new instance using the target security key and security type + /// + public AlpacaStreamingClientWrapper(SecurityKey securityKey, SecurityType securityType) + { + _securityKey = securityKey; + _securityType = securityType; + } + + public async Task ConnectAndAuthenticateAsync(CancellationToken cancellationToken = default) + { + var result = AuthStatus.Unauthorized; + + var failureMessage = ""; + // we first try with live environment which uses paid subscriptions, if it fails try free paper environment + foreach (var environment in _environments) + { + if (StreamingClient != null) + { + StreamingClient.Connected -= Connected; + StreamingClient.OnWarning -= OnWarning; + StreamingClient.SocketOpened -= SocketOpened; + StreamingClient.SocketClosed -= SocketClosed; + StreamingClient.OnError -= OnError; + StreamingClient.DisposeSafely(); + } + + var feedType = environment == Environments.Live ? "paid" : "free"; + Logging.Log.Trace($"AlpacaStreamingClientWrapper.ConnectAndAuthenticateAsync({_securityType}): try connecting {feedType} feed"); + if (_securityType == SecurityType.Crypto) + { + StreamingClient = EnvironmentExtensions.GetAlpacaCryptoStreamingClient(environment, _securityKey); + } + else if (_securityType == SecurityType.Equity) + { + var feed = "'iex'"; + if (environment == Environments.Live) + { + feed = "'sip', will retry with free feed"; + } + failureMessage = $"{_securityType} failed to connect to live feed {feed}"; + StreamingClient = EnvironmentExtensions.GetAlpacaDataStreamingClient(environment, _securityKey); + } + else if (_securityType.IsOption()) + { + var feed = "'indicative'"; + if (environment == Environments.Live) + { + feed = "'opra', will retry with free feed"; + } + failureMessage = $"{_securityType} failed to connect to live feed {feed}"; + StreamingClient = EnvironmentExtensions.GetAlpacaOptionsStreamingClient(environment, _securityKey); + } + else + { + throw new NotImplementedException(); + } + + StreamingClient.Connected += Connected; + StreamingClient.OnWarning += OnWarning; + StreamingClient.SocketOpened += SocketOpened; + StreamingClient.SocketClosed += SocketClosed; + StreamingClient.OnError += OnError; + + result = await StreamingClient.ConnectAndAuthenticateAsync(); + if (result == AuthStatus.Authorized) + { + // once connected we will just keep this environment, if we need to reconnect, due to internet issues, we don't want to retry all + _environments = new[] { environment }; + Logging.Log.Trace($"AlpacaStreamingClientWrapper.ConnectAndAuthenticateAsync({_securityType}): connection succeeded"); + // we got what we wanted + break; + } + else + { + if (!string.IsNullOrEmpty(failureMessage)) + { + EnviromentFailure?.Invoke(failureMessage); + } + } + } + return result; + } + + public Task DisconnectAsync(CancellationToken cancellationToken = default) + { + return StreamingClient?.DisconnectAsync(); + } + + public void Dispose() + { + StreamingClient.DisposeSafely(); + } + + public Task ConnectAsync(CancellationToken cancellationToken = default) + { + throw new NotImplementedException(); + } + } +} diff --git a/QuantConnect.AlpacaBrokerage/QuantConnect.AlpacaBrokerage.csproj b/QuantConnect.AlpacaBrokerage/QuantConnect.AlpacaBrokerage.csproj index cc3a8b5..a6062d5 100644 --- a/QuantConnect.AlpacaBrokerage/QuantConnect.AlpacaBrokerage.csproj +++ b/QuantConnect.AlpacaBrokerage/QuantConnect.AlpacaBrokerage.csproj @@ -27,8 +27,23 @@ - + + + + + + + Alpaca.Markets.dll + + + PreserveNewest + true + + + PreserveNewest + true + \ No newline at end of file