diff --git a/.gitignore b/.gitignore index 7acbc77..adc57e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,809 +1,386 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates -.vscode - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- Backup*.rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# JetBrains Rider -.idea/ -*.sln.iml - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# VS Code files -.vscode/ - -# BeatPulse healthcheck temp database -healthchecksdb -/Indicators/ATRMTF_time_History -/Indicators/Bar Color Change Alert -/Indicators/ATR_Stops_time_MarketData_History -/Indicators/Bar Ratio -/Indicators/Belkhayate Timing -/Indicators/Blank -/Indicators/Custom -/Indicators/Custom Data -/Indicators/Flow Indicator/Flow Indicator/Properties/AssemblyInfo.cs -/Indicators/Flow Indicator -/Indicators/Global Hook -/Indicators/HasCrossed Sample -/Indicators/Heiken Ashi -/Indicators/Heikin Ashi Smooth -/Indicators/Ichimoku Cloud -/Indicators/Keltner Channels -/Indicators/Least Squares Regression -/Indicators/Licensing Sample -/Indicators/MA Cross Alert -/Indicators/MACD Histogram Alert -/Indicators/Sample Standard Deviation -/Indicators/Sample SMA -/Indicators/Sample Reference SMA -/Indicators/Sample Price Channels -/Indicators/Sample Envelopes Cloud -/Indicators/Sample EMA -/Indicators/Sample DeMarker -/Indicators/Sample Bulls Power -/Indicators/Sample Bears Power -/Indicators/Sample Alligator -/Indicators/RSI Alert Sample -/Indicators/ROC -/Indicators/psar -/Indicators/Position_Stats_1.0 -/Indicators/Optimal Moving Average -/Indicators/Moving Average Type Sample -/Indicators/Time zone Sample -/Indicators/Zero Lag MA -/Indicators/VWAP with Source -/Indicators/Volatility Scalper -/Indicators/Triangularma Centered Bands -/Indicators/Auto Trend Channel -/Indicators/ADX Interpreter -/Indicators/Advanced Volume -/Indicators/ADR Pro -/Indicators/Auto Trend Channel.algo -/Indicators/ATR_Stops_time_MarketData_History.algo -/Indicators/ATRMTF_time_History.algo -/Indicators/ADX Interpreter.algo -/Indicators/Advanced Volume.algo -/Indicators/ADR Pro.algo -/Indicators/Sample Standard Deviation.algo -/Indicators/Sample SMA.algo -/Indicators/Sample Reference SMA.algo -/Indicators/Sample Price Channels.algo -/Indicators/Sample Envelopes Cloud.algo -/Indicators/Sample EMA.algo -/Indicators/Sample DeMarker.algo -/Indicators/Sample Bulls Power.algo -/Indicators/Sample Bears Power.algo -/Indicators/Sample Alligator.algo -/Indicators/Time zone Sample.algo -/Indicators/RSI Alert Sample.algo -/Indicators/Moving Average Type Sample.algo -/Indicators/Licensing Sample.algo -/Indicators/HasCrossed Sample.algo -/Indicators/Daily Separator Line Sample.algo -/Indicators/Daily Separator Line Sample -/Robots/Bar Breakout Trading Sample -/Robots/Licensing Sample -/Robots/Sample Advanced Take Profit -/Robots/Sample Break Even -/Robots/Sample Breakout cBot -/Robots/Sample cBot Reference SMA -/Robots/Sample Close Profitable Positions cBot -/Robots/Sample Hotkey Trading -/Robots/Sample Lines Trader -/Robots/Sample Martingale cBot -/Robots/Sample RSI cBot -/Robots/Sample SAR Trailing Stop -/Robots/Sample Trading Panel -/Robots/Sample Trend cBot -/Robots/Bar Breakout Trading Sample.algo -/Robots/Licensing Sample.algo -/Robots/Sample Trend cBot.algo -/Robots/Sample Trading Panel.algo -/Robots/Sample SAR Trailing Stop.algo -/Robots/Sample RSI cBot.algo -/Robots/Sample Martingale cBot.algo -/Robots/Sample Lines Trader.algo -/Robots/Sample Hotkey Trading.algo -/Robots/Sample Close Profitable Positions cBot.algo -/Robots/Sample cBot Reference SMA.algo -/Robots/Sample Breakout cBot.algo -/Robots/Sample Break Even.algo -/Robots/Sample Advanced Take Profit.algo -/Robots/Trading Hotkeys.algo -/Robots/Trading Hotkeys -/Robots/Tooltip.algo -/Robots/Tooltip/Tooltip.sln -/Robots/Tooltip/Tooltip/Tooltip.csproj -/Robots/Tooltip/Tooltip/Tooltip.cs -/Robots/Tooltip/Tooltip/Properties/AssemblyInfo.cs -/Robots/Tooltip/Tooltip/Properties -/Robots/Tooltip/Tooltip -/Robots/Tooltip -/Robots/ROC Bot.algo -/Robots/ROC Bot/ROC Bot.sln -/Robots/ROC Bot/ROC Bot/ROC Bot.csproj -/Robots/ROC Bot/ROC Bot/ROC Bot.cs -/Robots/ROC Bot/ROC Bot/Properties/AssemblyInfo.cs -/Robots/ROC Bot/ROC Bot/Properties -/Robots/ROC Bot/ROC Bot -/Robots/ROC Bot -/Robots/News Fixed Time Trader.algo -/Robots/News Fixed Time Trader -/Robots/My cBot.algo -/Robots/My cBot/My cBot.sln -/Robots/My cBot/My cBot/Properties/AssemblyInfo.cs -/Robots/My cBot/My cBot/Properties -/Robots/My cBot/My cBot/My cBot.csproj -/Robots/My cBot/My cBot/My cBot.cs -/Robots/My cBot/My cBot -/Robots/My cBot -/Robots/ML Data Generator.algo -/Robots/ML Data Generator -/Robots/Mean Reversion Trader.algo -/Robots/Mean Reversion Trader -/Robots/Manual Strategy Tester.algo -/Robots/Manual Strategy Tester -/Robots/Keltner EMA.algo -/Robots/Keltner EMA 2.0.algo -/Robots/Keltner EMA 2.0 -/Robots/Keltner EMA -/Robots/Keltner Channels Trader.algo -/Robots/Keltner Channels Trader v2.algo -/Robots/Keltner Channels Trader v2 -/Robots/Keltner Channels Trader -/Robots/Hull Trader Live.algo -/Robots/Hull Trader Live -/Robots/Hull Trader Backtest.algo -/Robots/Hull Trader Backtest -/Robots/High and Low Trader.algo -/Robots/High and Low Trader -/Robots/Hidden Protection.algo -/Robots/Hidden Protection -/Robots/First Hope.algo -/Robots/First Hope -/Robots/Day Trader.algo -/Robots/Day Trader/Day Trader.sln -/Robots/Day Trader/Day Trader/Properties/AssemblyInfo.cs -/Robots/Day Trader/Day Trader/Properties -/Robots/Day Trader/Day Trader/Models/LeftSpaceModel.cs -/Robots/Day Trader/Day Trader/Models -/Robots/Day Trader/Day Trader/Day Trader.csproj -/Robots/Day Trader/Day Trader/Day Trader.cs -/Robots/Day Trader/Day Trader -/Robots/Day Trader -/Robots/CustomTooltip.algo -/Robots/CustomTooltip/CustomTooltip.sln -/Robots/CustomTooltip/CustomTooltip/Properties/AssemblyInfo.cs -/Robots/CustomTooltip/CustomTooltip/Properties -/Robots/CustomTooltip/CustomTooltip/CustomTooltip.csproj -/Robots/CustomTooltip/CustomTooltip/CustomTooltip.cs -/Robots/CustomTooltip/CustomTooltip -/Robots/CustomTooltip -/Robots/Consecutive Bars Trader.algo -/Robots/Consecutive Bars Trader Backtest.algo -/Robots/Consecutive Bars Trader Backtest -/Robots/Consecutive Bars Trader -/Robots/Consecutive Bars HA Trader.algo -/Robots/Consecutive Bars HA Trader -/Robots/cMulti Tester.algo -/Robots/cMulti Tester/cMulti Tester.sln -/Robots/cMulti Tester/cMulti Tester/Properties/AssemblyInfo.cs -/Robots/cMulti Tester/cMulti Tester/Properties -/Robots/cMulti Tester/cMulti Tester/cMulti Tester.csproj -/Robots/cMulti Tester/cMulti Tester/cMulti Tester.cs -/Robots/cMulti Tester/cMulti Tester -/Robots/cMulti Tester -/Robots/Bug.algo -/Robots/Bug/Bug.sln -/Robots/Bug/Bug/Properties/AssemblyInfo.cs -/Robots/Bug/Bug/Properties -/Robots/Bug/Bug/Bug.csproj -/Robots/Bug/Bug/Bug.cs -/Robots/Bug/Bug -/Robots/Bug -/Robots/Bar Color Change Trader.algo -/Robots/Bar Color Change Trader/Bar Color Change Trader.sln -/Robots/Bar Color Change Trader/Bar Color Change Trader/Properties/AssemblyInfo.cs -/Robots/Bar Color Change Trader/Bar Color Change Trader/Properties -/Robots/Bar Color Change Trader/Bar Color Change Trader/Bar Color Change Trader.csproj -/Robots/Bar Color Change Trader/Bar Color Change Trader/Bar Color Change Trader.cs -/Robots/Bar Color Change Trader/Bar Color Change Trader -/Robots/Bar Color Change Trader -/Robots/Alert Tester.algo -/Robots/Alert Tester/Alert Tester.sln -/Robots/Alert Tester/Alert Tester/Properties/AssemblyInfo.cs -/Robots/Alert Tester/Alert Tester/Properties -/Robots/Alert Tester/Alert Tester/Alert Tester.csproj -/Robots/Alert Tester/Alert Tester/Alert Tester.cs -/Robots/Alert Tester/Alert Tester -/Robots/Alert Tester -/Robots/ABC.algo -/Robots/ABC -/Indicators/Zero Lag MA.algo -/Indicators/VWAP.algo -/Indicators/VWAP with Source.algo -/Indicators/VWAP -/Indicators/VSD.algo -/Indicators/VSD -/Indicators/Vortex.algo -/Indicators/Vortex -/Indicators/Volume Profile Timeframe.algo -/Indicators/Volume Profile Timeframe -/Indicators/Volume Profile Rectangles.algo -/Indicators/Volume Profile Rectangles -/Indicators/Volume Profile Fixed.algo -/Indicators/Volume Profile Fixed -/Indicators/Volume Profile Classic.algo -/Indicators/Volume Profile Classic -/Indicators/Volume Profile Between Two Line.algo -/Indicators/Volume Profile Between Two Line -/Indicators/Volume POC.algo -/Indicators/Volume POC -/Indicators/Volume Gap.algo -/Indicators/Volume Gap -/Indicators/Volatility Scalper.algo -/Indicators/Triangularma Centered Bands.algo -/Indicators/Trend Dash.algo -/Indicators/Trend Dash -/Indicators/Trend Catcher.algo -/Indicators/Trend Catcher -/Indicators/Trend Angle.algo -/Indicators/Trend Angle -/Indicators/Trading Time Periods.algo -/Indicators/Trading Time Periods -/Indicators/Tops and Bottoms.algo -/Indicators/Tops and Bottoms -/Indicators/Time Frame Dash.algo -/Indicators/Time Frame Dash -/Indicators/TD Trend Rider.algo -/Indicators/TD Trend Rider -/Indicators/TD Sequential.algo -/Indicators/TD Sequential -/Indicators/TD Breakout.algo -/Indicators/TD Breakout -/Indicators/Symbol Info.algo -/Indicators/Symbol Info -/Indicators/Supply And Demand Zones.algo -/Indicators/Supply And Demand Zones -/Indicators/Strong And Weak.algo -/Indicators/Strong And Weak Ranking.algo -/Indicators/Strong And Weak Ranking -/Indicators/Strong And Weak -/Indicators/Stochastic Divergence.algo -/Indicators/Stochastic Divergence -/Indicators/Session Box.algo -/Indicators/Session Box -/Indicators/RSI Divergence.algo -/Indicators/RSI Divergence -/Indicators/Round Numbers.algo -/Indicators/Round Numbers -/Indicators/ROC.algo -/Indicators/Reversal Magic.algo -/Indicators/Reversal Magic -/Indicators/ReFlex and TrendFlex.algo -/Indicators/ReFlex and TrendFlex -/Indicators/Quandl Time Series.algo -/Indicators/Quandl Time Series -/Indicators/psar.algo -/Indicators/Position_Stats_1.0.algo -/Indicators/Pivot Points Pro.algo -/Indicators/Pivot Points Pro Daily.algo -/Indicators/Pivot Points Pro Daily -/Indicators/Pivot Points Pro -/Indicators/Percentage Price Oscillator.algo -/Indicators/Percentage Price Oscillator -/Indicators/Pattern_Drawing_1.0.0.zip -/Indicators/Pattern Drawing.algo -/Indicators/Pattern Drawing -/Indicators/Outliers.algo -/Indicators/Outliers -/Indicators/Optimal Moving Average.algo -/Indicators/OHLC Lines.algo -/Indicators/OHLC Lines -/Indicators/MMI.algo -/Indicators/MMI -/Indicators/Market Status.algo -/Indicators/Market Status -/Indicators/Market Profile TimeFrame.algo -/Indicators/Market Profile TimeFrame -/Indicators/Market Profile Rectangles.algo -/Indicators/Market Profile Rectangles -/Indicators/Market Profile Fixed.algo -/Indicators/Market Profile Fixed -/Indicators/Market Profile Classic.algo -/Indicators/Market Profile Classic -/Indicators/Market Profile Between Two Line.algo -/Indicators/Market Profile Between Two Line -/Indicators/MACD Histogram Alert.algo -/Indicators/MACD Divergence.algo -/Indicators/MACD Divergence -/Indicators/MA Slope Trend.algo -/Indicators/MA Slope Trend -/Indicators/MA Ribbon.algo -/Indicators/MA Ribbon -/Indicators/MA Cross Alert.algo -/Indicators/Line Alert.algo -/Indicators/Line Alert -/Indicators/Least Squares Regression.algo -/Indicators/King-Lee.algo -/Indicators/King-Lee -/Indicators/Keltner Channels.algo -/Indicators/Keltner Blast.algo -/Indicators/Keltner Blast -/Indicators/Intraday Momentum Trading Assistant.algo -/Indicators/Intraday Momentum Trading Assistant -/Indicators/Institutional Unfilled Orders.algo -/Indicators/Institutional Unfilled Orders -/Indicators/Ichimoku Cloud.algo -/Indicators/Hull Moving Average.algo -/Indicators/Hull Moving Average -/Indicators/Hull Forecast.algo -/Indicators/Hull Forecast -/Indicators/High and Low Volume.algo -/Indicators/High and Low Volume -/Indicators/Heikin Ashi Smooth.algo -/Indicators/Heiken Ashi.algo -/Indicators/Heiken Ashi MTF.algo -/Indicators/Heiken Ashi MTF -/Indicators/Global Hook.algo -/Indicators/Flow Indicator.algo -/Indicators/Explosive Bars.algo -/Indicators/Explosive Bars -/Indicators/DMA.algo -/Indicators/DMA -/Indicators/Divergence.algo -/Indicators/Divergence -/Indicators/DEA and DIF.algo -/Indicators/DEA and DIF -/Indicators/Daily High Low Mean.algo -/Indicators/Daily High Low Mean -/Indicators/Custom.algo -/Indicators/Custom Period Chart.algo -/Indicators/Custom Period Chart Separate.algo -/Indicators/Custom Period Chart Separate -/Indicators/Custom Period Chart -/Indicators/Custom Data.algo -/Indicators/Cumulative Delta.algo -/Indicators/Cumulative Delta -/Indicators/COT.algo -/Indicators/COT -/Indicators/Correlation.algo -/Indicators/Correlation -/Indicators/Consecutive Bars.algo -/Indicators/Consecutive Bars -/Indicators/Compare Per Bar.algo -/Indicators/Compare Per Bar -/Indicators/Compare Fixed Time.algo -/Indicators/Compare Fixed Time -/Indicators/Compare Average.algo -/Indicators/Compare Average -/Indicators/Chart Switch.algo -/Indicators/Chart Switch Separate Panel.algo -/Indicators/Chart Switch Separate Panel -/Indicators/Chart Switch -/Indicators/Chart Navigator.algo -/Indicators/Chart Navigator -/Indicators/Chart Hotkeys.algo -/Indicators/Chart Hotkeys -/Indicators/Chart Calendar.algo -/Indicators/Chart Calendar -/Indicators/cFormula.algo -/Indicators/cFormula Overlay.algo -/Indicators/cFormula Overlay -/Indicators/cFormula -/Indicators/Breakout Candle.algo -/Indicators/Breakout Candle -/Indicators/Blank.algo -/Indicators/Belkhayate Timing.algo -/Indicators/BBands Volatility.algo -/Indicators/BBands Volatility -/Indicators/Bars Statistics.algo -/Indicators/Bars Statistics -/Indicators/Bar Ratio.algo -/Indicators/Bar Color Change Alert.algo -/Indicators/Bar Analyzer.algo -/Indicators/Bar Analyzer on Chart.algo -/Indicators/Bar Analyzer on Chart -/Indicators/Bar Analyzer -/Indicators/Average Bar Range.algo -/Indicators/Average Bar Range -/Robots/Trade Time.algo -/Robots/Trade Time -/Robots/PendingOrders Filled Event Issue/PendingOrders Filled Event Issue -/Robots/PendingOrders Filled Event Issue -/Robots/PendingOrders Filled Event Issue.algo -/Indicators/Event Test -/Indicators/Load History Sample -/Robots/Event Test Bot -/Indicators/Load History Sample.algo -/Indicators/Event Test.algo -/Robots/Event Test Bot.algo -/Indicators/Save File Dialog Sample -/Indicators/Save File Dialog Sample.algo -/Indicators/Alert Test -/Indicators/Alert Test.algo -/Indicators/Gann Drawing -/Indicators/Gann Drawing.algo -/Indicators/Custom Fractals -/Indicators/RSI Alert -*.algo -/Indicators/Squeeze Momentum -/Indicators/SMI Ergodic -/Indicators/Rob Booker Ziv Ghost Pivots -/Indicators/Rob Booker Reversal -/Indicators/Rob Booker Missed Pivot Points -/Indicators/Rob Booker Knoxville Divergence -/Indicators/Rob Booker Intraday Pivot Points -/Indicators/Rob Booker ADX Breakout -/Indicators/Relative Volatility Index -/Indicators/Moon Phases -/Indicators/Measure Tool -/Indicators/Ehlers Stochastic CG Oscillator -/Indicators/Ehlers Smoothed Adaptive Momentum -/Indicators/Ehlers Simple Cycle -/Indicators/Ehlers MESA Adaptive Moving Average -/Indicators/Ehlers Instantaneous Trend -/Indicators/Ehlers Adaptive Cyber Cycle -/Indicators/Ehlers Adaptive CG -/Indicators/Economic Events On Chart -/Indicators/Cumulative Volume Index -/Indicators/ConnorsRSI -/Indicators/Chop Zone -/Indicators/Chart Analysis Saver -/Indicators/Chande Kroll Stop -/Indicators/Chaikin Oscillator -/Indicators/Balance of Power -/Robots/Alert Test Bot -/Robots/Renko Backtest -/Robots/Hotkeys Tool -/Robots/Renko Test -/Robots/SMA Sample/SMA Sample -/Robots/SMA Sample/SMA Sample.sln -*.backup -/Indicators/SELL_LIQ -/Indicators/Custom Renko Chart -/Indicators/Custom Renko Chart Non-Overlay -/Indicators/Custom Tick Chart -/Indicators/Custom Tick Chart Non-Overlay -/Indicators/Go To Date -/Indicators/Synchronized Scrolling -/Indicators/Synchronized Crosshair -/Robots/WinForms Test -/Robots/DebugExample -/Robots/Data Tester -/Robots/Bar Buy Sell -/Indicators/WinForms Test -/Indicators/Ticks test -/Indicators/MACD Zero lag -/Indicators/Custom Moving Average -/Indicators/CrossHairSync -/Indicators/Bar Arrow +// JoyceReversalMTF_Solo — Cloud-ready (Pepperstone cTrader Automate) +// Attached-symbol only (run one instance per instrument/timeframe). +// Strategy: HTF impulse+overlap → LTF breakout; both directions. +// Risk: Allocation = Equity/Parts (default 5). Risk at SL = Loss% of allocation. +// Exits: TP at impulse open with buffer (10%) or RR fallback; SL at confirm/impulse extreme + buffer. +// Safeguards: Max open positions (label-scoped) + Max Daily Loss % (realized PnL). + +using System; +using cAlgo.API; +using cAlgo.API.Internals; + +namespace cAlgo.Robots +{ +public enum SLAnchor { ImpulseExtreme, ConfirmCandleExtreme } +public enum Dir { None, Buy, Sell } + +[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] +public class JoyceReversalMTF_Solo : Robot +{ +// ==== Trading toggles & guards ==== +[Parameter("Enable Live Trading", DefaultValue = false)] +public bool EnableTrading { get; set; } + +[Parameter("Max Open Positions (this symbol)", DefaultValue = 2, MinValue = 1)] +public int MaxOpenPositions { get; set; } + +[Parameter("Max Daily Loss % of Equity", DefaultValue = 50.0, MinValue = 1.0, MaxValue = 100.0, Step = 1.0)] +public double MaxDailyLossPercent { get; set; } + +// ==== Global thresholds (setup) ==== +[Parameter("Min Impulse Body (pips)", DefaultValue = 10.0, MinValue = 0.0, Step = 0.5)] +public double MinImpulseBodyPips { get; set; } + +[Parameter("Min Body/Range % (Impulse)", DefaultValue = 50.0, MinValue = 0, MaxValue = 100, Step = 1)] +public double MinBodyVsRangePercent { get; set; } + +[Parameter("Confirm Overlap of Body %", DefaultValue = 25.0, MinValue = 1, MaxValue = 100, Step = 1)] +public double OverlapPercent { get; set; } + +// ==== Allocation & risk ==== +[Parameter("Use Equity/Parts Model", DefaultValue = true)] +public bool UseEquityParts { get; set; } + +[Parameter("Parts (Equity ÷ Parts)", DefaultValue = 5, MinValue = 1)] +public int Parts { get; set; } + +[Parameter("% of Equity as Allocation (if NOT using Parts)", DefaultValue = 20.0, MinValue = 0.1, MaxValue = 100.0, Step = 0.1)] +public double AllocationPercentOfEquity { get; set; } + +[Parameter("Loss % of Allocation (risk at SL)", DefaultValue = 50.0, MinValue = 1.0, MaxValue = 100.0, Step = 1.0)] +public double LossPercentOfAllocation { get; set; } + +// ==== Stops & targets ==== +[Parameter("SL Anchor", DefaultValue = SLAnchor.ConfirmCandleExtreme)] +public SLAnchor StopAnchor { get; set; } + +[Parameter("SL Buffer (pips)", DefaultValue = 2.0, MinValue = 0.0, Step = 0.1)] +public double StopBufferPips { get; set; } + +[Parameter("TP = Impulse Open (buffered)", DefaultValue = true)] +public bool TpAtImpulseOpen { get; set; } + +[Parameter("TP Buffer % at Impulse Open", DefaultValue = 10.0, MinValue = 0.0, MaxValue = 50.0, Step = 0.5)] +public double TpBufferPercent { get; set; } + +[Parameter("Risk:Reward (if RR mode)", DefaultValue = 2.0, MinValue = 0.2, Step = 0.1)] +public double RiskReward { get; set; } + +[Parameter("Max Confirm Bars (Lower TF)", DefaultValue = 60, MinValue = 1)] +public int MaxConfirmBars { get; set; } + +// ==== Timeframe slots (use enums, not strings) ==== +[Parameter("Slot A - Enabled", DefaultValue = true, Group = "Slot A")] +public bool SlotAEnabled { get; set; } +[Parameter("Slot A - Higher TF", DefaultValue = TimeFrame.Hour, Group = "Slot A")] +public TimeFrame SlotAHigherTF { get; set; } +[Parameter("Slot A - Confirm TF", DefaultValue = TimeFrame.Minute5, Group = "Slot A")] +public TimeFrame SlotAConfirmTF { get; set; } + +[Parameter("Slot B - Enabled", DefaultValue = false, Group = "Slot B")] +public bool SlotBEnabled { get; set; } +[Parameter("Slot B - Higher TF", DefaultValue = TimeFrame.Minute30, Group = "Slot B")] +public TimeFrame SlotBHigherTF { get; set; } +[Parameter("Slot B - Confirm TF", DefaultValue = TimeFrame.Minute5, Group = "Slot B")] +public TimeFrame SlotBConfirmTF { get; set; } + +[Parameter("Slot C - Enabled", DefaultValue = false, Group = "Slot C")] +public bool SlotCEnabled { get; set; } +[Parameter("Slot C - Higher TF", DefaultValue = TimeFrame.Minute15, Group = "Slot C")] +public TimeFrame SlotCHigherTF { get; set; } +[Parameter("Slot C - Confirm TF", DefaultValue = TimeFrame.Minute3, Group = "Slot C")] +public TimeFrame SlotCConfirmTF { get; set; } + +// ==== Internals ==== +private string _label; +private DateTime _currentDayUtc; +private double _startDayEquity; +private double _realizedPnLToday; + +private class SlotState +{ +public Bars HigherBars; +public Bars ConfirmBars; +public int LastProcessedHtfIndex = -1; + +public bool PendingActive; +public Dir PendingDir; +public double Trigger; +public double ImpulseOpen; +public double ConfirmLow; +public double ConfirmHigh; +public double ImpulseLow; +public double ImpulseHigh; +public int ConfirmStartIdx; +} + +private SlotState[] _slots = new SlotState[3]; +private TimeFrame[] _slotHTF = new TimeFrame[3]; +private TimeFrame[] _slotCTF = new TimeFrame[3]; +private bool[] _slotEnabled = new bool[3]; + +protected override void OnStart() +{ +_label = $"JoyceRev_{Account.Number}_{SymbolName}"; +_currentDayUtc = DateTime.UtcNow.Date; +_startDayEquity = Account.Equity; +_realizedPnLToday = 0; + +_slotEnabled[0] = SlotAEnabled; _slotHTF[0] = SlotAHigherTF; _slotCTF[0] = SlotAConfirmTF; +_slotEnabled[1] = SlotBEnabled; _slotHTF[1] = SlotBHigherTF; _slotCTF[1] = SlotBConfirmTF; +_slotEnabled[2] = SlotCEnabled; _slotHTF[2] = SlotCHigherTF; _slotCTF[2] = SlotCConfirmTF; + +for (int i = 0; i < 3; i++) +{ +if (!_slotEnabled[i]) continue; +_slots[i] = new SlotState +{ +HigherBars = MarketData.GetBars(SymbolName, _slotHTF[i]), +ConfirmBars = MarketData.GetBars(SymbolName, _slotCTF[i]), +LastProcessedHtfIndex = -1, +PendingActive = false +}; +Print("Slot {0}: {1} HTF={2}, CTF={3}", SlotName(i), SymbolName, _slotHTF[i], _slotCTF[i]); +} + +Print("Trading {0}. Allocation: {1}", +EnableTrading ? "ENABLED" : "DISABLED", +UseEquityParts ? $"Equity/Parts (Parts={Parts})" +: $"{AllocationPercentOfEquity}% of equity; Loss%={LossPercentOfAllocation}% of allocation"); +} + +protected override void OnBar() +{ +DailyResetIfNeeded(); +for (int i = 0; i < 3; i++) +{ +if (!_slotEnabled[i] || _slots[i] == null) continue; +BuildSetupIfAny(_slots[i]); +TryConfirmAndEnter(_slots[i], i); +} +} + +protected override void OnTick() +{ +DailyResetIfNeeded(); +for (int i = 0; i < 3; i++) +{ +if (!_slotEnabled[i] || _slots[i] == null) continue; +TryConfirmAndEnter(_slots[i], i); +} +} + +protected override void OnPositionClosed(PositionClosedEventArgs args) +{ +if (args.Position.Label == _label) +_realizedPnLToday += args.Position.GrossProfit; +} + +private void DailyResetIfNeeded() +{ +var d = DateTime.UtcNow.Date; +if (d != _currentDayUtc) +{ +_currentDayUtc = d; +_startDayEquity = Account.Equity; +_realizedPnLToday = 0; +Print("New UTC day: daily loss counters reset."); +} +} + +private bool DailyLossLimitHit() +{ +double maxLoss = (_startDayEquity * MaxDailyLossPercent / 100.0); +return (-_realizedPnLToday) >= maxLoss; +} + +private void BuildSetupIfAny(SlotState st) +{ +var h = st.HigherBars; +if (h == null || h.Count < 3) return; + +int last = h.Count - 1; // last CLOSED bar +if (last == st.LastProcessedHtfIndex) return; + +int c = last; // confirmation candle +int i = c - 1; // impulse candle +if (i < 1) { st.LastProcessedHtfIndex = last; return; } + +double iOpen = h.OpenPrices[i], iClose = h.ClosePrices[i], iHigh = h.HighPrices[i], iLow = h.LowPrices[i]; +double cOpen = h.OpenPrices[c], cClose = h.ClosePrices[c], cHigh = h.HighPrices[c], cLow = h.LowPrices[c]; + +bool impulseRed = iClose < iOpen; +bool impulseGreen = iClose > iOpen; + +double body = Math.Abs(iClose - iOpen); +double range = Math.Max(1e-12, iHigh - iLow); +double bodyPct = (body / range) * 100.0; +double minBodyPrice = MinImpulseBodyPips * Symbol.PipSize; +bool strong = body >= minBodyPrice || bodyPct >= MinBodyVsRangePercent; +if (!strong) { st.LastProcessedHtfIndex = last; return; } + +double overlapFrac = Math.Max(0.0, Math.Min(1.0, OverlapPercent / 100.0)); + +if (impulseRed && cClose > cOpen) +{ +double redBodyHeight = Math.Max(1e-12, iOpen - iClose); +double requiredClose = iClose + overlapFrac * redBodyHeight; +bool enteredBody = cOpen > iClose; +bool overlapped = cClose >= requiredClose; + +if (enteredBody && overlapped) +{ +st.PendingActive = true; +st.PendingDir = Dir.Buy; +st.Trigger = cHigh; +st.ImpulseOpen = iOpen; +st.ConfirmLow = cLow; +st.ConfirmHigh = cHigh; +st.ImpulseLow = iLow; +st.ImpulseHigh = iHigh; +st.ConfirmStartIdx = st.ConfirmBars != null ? st.ConfirmBars.Count - 1 : 0; +Print("BUY setup ready. Trigger>{0} | TP anchor (impulse open)={1}", st.Trigger, st.ImpulseOpen); +} +} + +if (impulseGreen && cClose < cOpen) +{ +double greenBodyHeight = Math.Max(1e-12, iClose - iOpen); +double requiredClose = iClose - overlapFrac * greenBodyHeight; +bool enteredBody = cOpen < iClose; +bool overlapped = cClose <= requiredClose; + +if (enteredBody && overlapped) +{ +st.PendingActive = true; +st.PendingDir = Dir.Sell; +st.Trigger = cLow; +st.ImpulseOpen = iOpen; +st.ConfirmLow = cLow; +st.ConfirmHigh = cHigh; +st.ImpulseLow = iLow; +st.ImpulseHigh = iHigh; +st.ConfirmStartIdx = st.ConfirmBars != null ? st.ConfirmBars.Count - 1 : 0; +Print("SELL setup ready. Trigger<{0} | TP anchor (impulse open)={1}", st.Trigger, st.ImpulseOpen); +} +} + +st.LastProcessedHtfIndex = last; +} + +private void TryConfirmAndEnter(SlotState st, int slotIdx) +{ +if (!st.PendingActive || st.ConfirmBars == null || st.ConfirmBars.Count < 2) return; + +if (DailyLossLimitHit()) +{ +st.PendingActive = false; +Print("Daily loss limit reached. No new entries."); +return; +} + +if (CountOpenPositionsThisSymbol() >= MaxOpenPositions) +{ +st.PendingActive = false; +Print("MaxOpenPositions reached ({0}). Skipping.", MaxOpenPositions); +return; +} + +int nowIdx = st.ConfirmBars.Count - 1; +if (nowIdx - st.ConfirmStartIdx > MaxConfirmBars) +{ +Print("Slot {0}: setup expired (>{1} bars).", SlotName(slotIdx), MaxConfirmBars); +st.PendingActive = false; return; +} + +double sl = (StopAnchor == SLAnchor.ConfirmCandleExtreme) +? (st.PendingDir == Dir.Buy +? st.ConfirmLow - (StopBufferPips * Symbol.PipSize) +: st.ConfirmHigh + (StopBufferPips * Symbol.PipSize)) +: (st.PendingDir == Dir.Buy +? st.ImpulseLow - (StopBufferPips * Symbol.PipSize) +: st.ImpulseHigh + (StopBufferPips * Symbol.PipSize)); + +if (st.PendingDir == Dir.Buy && Symbol.Bid < sl - 1e-8) { st.PendingActive = false; Print("BUY setup cancelled (SL anchor)."); return; } +if (st.PendingDir == Dir.Sell && Symbol.Ask > sl + 1e-8) { st.PendingActive = false; Print("SELL setup cancelled (SL anchor)."); return; } + +bool breakout = (st.PendingDir == Dir.Buy) ? (Symbol.Ask > st.Trigger) : (Symbol.Bid < st.Trigger); +if (!breakout) return; + +double entry = (st.PendingDir == Dir.Buy) ? Symbol.Ask : Symbol.Bid; +double slPips = Math.Abs(entry - sl) / Symbol.PipSize; +if (slPips <= 0) { st.PendingActive = false; return; } + +double allocationCash = UseEquityParts ? Account.Equity / Math.Max(1, Parts) +: Account.Equity * (AllocationPercentOfEquity / 100.0); +double lossFrac = Math.Max(0.01, Math.Min(1.0, LossPercentOfAllocation / 100.0)); +double riskCash = allocationCash * lossFrac; + +double pipValuePerUnit = Symbol.PipValue / Symbol.LotSize; +if (pipValuePerUnit <= 0) { st.PendingActive = false; return; } + +double rawUnits = riskCash / (slPips * pipValuePerUnit); +long units = Symbol.NormalizeVolumeInUnits(rawUnits, RoundingMode.Down); +if (units < Symbol.VolumeInUnitsMin) +{ +Print("Slot {0}: volume {1} < min {2}. No trade.", SlotName(slotIdx), units, Symbol.VolumeInUnitsMin); +st.PendingActive = false; return; +} + +double tpPrice; +if (TpAtImpulseOpen) +{ +double bufferFrac = Math.Max(0.0, Math.Min(0.5, TpBufferPercent / 100.0)); +if (st.PendingDir == Dir.Buy) +tpPrice = entry + (1.0 - bufferFrac) * (st.ImpulseOpen - entry); +else +tpPrice = entry - (1.0 - bufferFrac) * (entry - st.ImpulseOpen); + +bool wrongSide = (st.PendingDir == Dir.Buy && tpPrice <= entry) || +(st.PendingDir == Dir.Sell && tpPrice >= entry); +if (wrongSide) +tpPrice = (st.PendingDir == Dir.Buy) +? entry + RiskReward * (entry - sl) +: entry - RiskReward * (sl - entry); +} +else +{ +tpPrice = (st.PendingDir == Dir.Buy) +? entry + RiskReward * (entry - sl) +: entry - RiskReward * (sl - entry); +} + +int slPipsInt = (int)Math.Round(slPips); +int tpPipsInt = (int)Math.Round(Math.Abs(tpPrice - entry) / Symbol.PipSize); + +if (!EnableTrading) +{ +Print("[DRY RUN] Slot {0} {1} {2}u | Entry {3} | SL {4} ({5} pips) | TP {6} ({7} pips) | Alloc ${8:F2} | Risk ${9:F2}", +SlotName(slotIdx), st.PendingDir, units, entry, sl, slPipsInt, tpPrice, tpPipsInt, allocationCash, riskCash); +st.PendingActive = false; return; +} + +var result = (st.PendingDir == Dir.Buy) +? ExecuteMarketOrder(TradeType.Buy, SymbolName, units, _label, slPipsInt, tpPipsInt) +: ExecuteMarketOrder(TradeType.Sell, SymbolName, units, _label, slPipsInt, tpPipsInt); + +if (result.Error != ErrorCode.NoError) +Print("Slot {0}: order error: {1}", SlotName(slotIdx), result.Error); +else +Print("Slot {0}: {1} placed: {2}u | SL {3} | TP {4} | Alloc ${5:F2} | Risk ${6:F2}", +SlotName(slotIdx), st.PendingDir, units, sl, tpPrice, allocationCash, riskCash); + +st.PendingActive = false; +} + +private int CountOpenPositionsThisSymbol() +{ +int n = 0; +foreach (var p in Positions) +if (p.SymbolName == SymbolName && p.Label == _label) n++; +return n; +} + +private string SlotName(int idx) => idx == 0 ? "A" : idx == 1 ? "B" : "C"; +} +}