{"id":18727346,"url":"https://github.com/nasdin/tradehistgen","last_synced_at":"2025-07-26T21:34:49.206Z","repository":{"id":125736435,"uuid":"102818537","full_name":"Nasdin/TradeHistGen","owner":"Nasdin","description":"Generate random trade histories given a time series price data. Which can later be used to filter certain trade transactions which meets criteria","archived":false,"fork":false,"pushed_at":"2017-09-08T04:52:31.000Z","size":131,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-28T13:43:23.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nasdin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-08T04:44:36.000Z","updated_at":"2019-02-27T16:12:10.000Z","dependencies_parsed_at":"2023-08-12T16:30:58.420Z","dependency_job_id":null,"html_url":"https://github.com/Nasdin/TradeHistGen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nasdin%2FTradeHistGen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nasdin%2FTradeHistGen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nasdin%2FTradeHistGen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nasdin%2FTradeHistGen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nasdin","download_url":"https://codeload.github.com/Nasdin/TradeHistGen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239598859,"owners_count":19665907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T14:17:18.668Z","updated_at":"2025-02-19T04:31:52.747Z","avatar_url":"https://github.com/Nasdin.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n```python\nimport numpy as np\nimport scipy\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n%matplotlib inline\n\n```\n\n## Random Market Trade Generator, batch of trades\n\n\n```python\nsns.set()\nspread = 0 #Assume Spread In Pips\n```\n\n### Simulation Size\n\n\n```python\nSimSize = 100000\n```\n\n#### Pip Range base area\n\n\n```python\nbase = 50\n```\n\n#### Random Generators\n\n\n```python\nrandomtrades = np.random.randint(0,high=2,size=SimSize)\n\ntradeid = range(SimSize,SimSize*2)\n\nPipModifier = (np.random.normal(size=SimSize))\n```\n\n### Risk Reward Simulation\n    Assume that the average Risk Reward is at least 2 ( like a typical Trader would try and filter by)\n\n\n```python\nRiskReward =  np.random.binomial(n = 14, p = 0.3,size=SimSize)\n# I intended to make it a max of RR 7, I use 14 where I will divide by 2 later as a float to get a intervals of 0.5\nRiskReward = (RiskReward + 1)/2. # Gets rid of 0 and makes it a float too.\n```\n\n#### Check the min and average\n\n\n```python\nprint np.min(RiskReward),np.mean(RiskReward)\n```\n\n    0.5 2.60035\n    \n\n#### Logically you should expect the Risk Reward to be a binomial distribution such as this, \n    based on market volatility, the skew should be towards the left, as I've placed the parameter p = 0.3\n\n\n```python\nsns.distplot(RiskReward)\nplt.show()\n```\n\n\n![png](output_14_0.png)\n\n\n#### Headers and inferences\n\n\n```python\nHeader = [ 'TradeId','Direction','Size','SLPips', 'TPPips', 'OutcomePips','Outcome$', 'AccumulativeOutcomePips', 'AccumulativeOutcome']\n```\n\n\n```python\nsizerange = [ 0.1 for i in range(SimSize)]\nDirection = ['Buy' if direction == 1 else 'Sell' for direction in randomtrades ]\n```\n\n### SL\n The distribution generates including negative numbers so we have to do a mathematical perturbation.\n     We'll do that by simply adding the abs of the minimum amount.\n         This way, the lowest value will become 0. However, the numbers are all inflated.\n         We will then have to divide it by the amount it was inflated by\n\n\n```python\ndef GenSL(base=base, PipModifier=PipModifier):\n    first = (base *PipModifier) # The normal distribution but with negative values and positive value\n    minamt = abs(np.min(first)) # Amount to shift it by\n    ratio = minamt/base # Amount that it was inflated by\n    output = (first + minamt ) /4\n    return output*-1 #output should be negative for SL\n\n\n```\n\n#### Same transformation for TP, except Tp is multiplied with Risk : Reward Ratio as a multiplier\n\n\n```python\ndef GenTP(base=base, PipModifier=PipModifier, RiskReward=RiskReward):\n    first = (base *PipModifier) * RiskReward # The normal distribution but with negative values and positive value\n    minamt = abs(np.min(first)) # Amount to shift it by\n    ratio = minamt/base # Amount that it was inflated by\n    \n    return (first + minamt ) /4\n    \n\n```\n\n\n```python\nsns.distplot(GenSL(),bins=50, color = 'r')\nplt.show()\n\n```\n\n\n![png](output_22_0.png)\n\n\n\n```python\nsns.distplot(GenTP(),bins=50, color = 'g')\nplt.show()\n```\n\n\n![png](output_23_0.png)\n\n\n### Create the TP and SL array\n\n\n```python\nTPPips = GenTP()\nSLPips = GenSL()\n```\n\n#### Win/Loss based on Efficient Market Hypothesis\n\n####    Calculate Probability to Win on Random\n\n\n```python\ndef Prob(TP,SL):\n    Total = TP + abs(SL)\n    pb = abs(SL) / Total\n    return pb\n```\n\n\n```python\nWinLoss = [ 1 if np.random.random() \u003c Prob(TP,SL) else 0 for TP, SL in zip(TPPips,SLPips)]\n```\n\n### Get the Outcome, Pips\n    Since this is going to be in a large loop, we'll produce it via a list comprehension\n\n\n```python\nOutcomePips = [TPPips[index] -spread if win==1 else SLPips[index] for index,win in enumerate(WinLoss)]\n```\n\n#####  Accumulative Outcome Pips\n    Accumulative Pips is a step by step iterative accumulative code so a classic for loop will do\n\n\n```python\nAccumulativePips =[]\nTotalpips =0\nfor index,pips in enumerate(OutcomePips):\n        Totalpips += pips\n        AccumulativePips.append(Totalpips)\n\n```\n\n\n```python\ndata = [ tradeid, Direction, SLPips, TPPips, WinLoss,OutcomePips,AccumulativePips]\n```\n\n### Create the Panda Dataframe\n\n\n```python\nTradehistory = pd.DataFrame( {'TradeId': tradeid, 'Direction':Direction, 'SLPips':SLPips, 'TPPips':TPPips, 'WinLoss':WinLoss, 'ResultPips':OutcomePips,'PipP\u0026L':AccumulativePips})\n```\n\n\n```python\nTradehistory\n```\n\n\n\n\n\u003cdiv\u003e\n\u003cstyle\u003e\n    .dataframe thead tr:only-child th {\n        text-align: right;\n    }\n\n    .dataframe thead th {\n        text-align: left;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\u003c/style\u003e\n\u003ctable border=\"1\" class=\"dataframe\"\u003e\n  \u003cthead\u003e\n    \u003ctr style=\"text-align: right;\"\u003e\n      \u003cth\u003e\u003c/th\u003e\n      \u003cth\u003eDirection\u003c/th\u003e\n      \u003cth\u003ePipP\u0026amp;L\u003c/th\u003e\n      \u003cth\u003eResultPips\u003c/th\u003e\n      \u003cth\u003eSLPips\u003c/th\u003e\n      \u003cth\u003eTPPips\u003c/th\u003e\n      \u003cth\u003eTradeId\u003c/th\u003e\n      \u003cth\u003eWinLoss\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003cth\u003e0\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e227.475250\u003c/td\u003e\n      \u003ctd\u003e227.475250\u003c/td\u003e\n      \u003ctd\u003e-64.979820\u003c/td\u003e\n      \u003ctd\u003e227.475250\u003c/td\u003e\n      \u003ctd\u003e100000\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e1\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e152.450761\u003c/td\u003e\n      \u003ctd\u003e-75.024489\u003c/td\u003e\n      \u003ctd\u003e-75.024489\u003c/td\u003e\n      \u003ctd\u003e277.161225\u003c/td\u003e\n      \u003ctd\u003e100001\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e2\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e72.055682\u003c/td\u003e\n      \u003ctd\u003e-80.395079\u003c/td\u003e\n      \u003ctd\u003e-80.395079\u003c/td\u003e\n      \u003ctd\u003e295.958290\u003c/td\u003e\n      \u003ctd\u003e100002\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e3\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e26.886834\u003c/td\u003e\n      \u003ctd\u003e-45.168848\u003c/td\u003e\n      \u003ctd\u003e-45.168848\u003c/td\u003e\n      \u003ctd\u003e167.604208\u003c/td\u003e\n      \u003ctd\u003e100003\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e4\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-20.804392\u003c/td\u003e\n      \u003ctd\u003e-47.691226\u003c/td\u003e\n      \u003ctd\u003e-47.691226\u003c/td\u003e\n      \u003ctd\u003e189.096976\u003c/td\u003e\n      \u003ctd\u003e100004\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e5\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-48.693098\u003c/td\u003e\n      \u003ctd\u003e-27.888706\u003c/td\u003e\n      \u003ctd\u003e-27.888706\u003c/td\u003e\n      \u003ctd\u003e112.185986\u003c/td\u003e\n      \u003ctd\u003e100005\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e6\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-110.667076\u003c/td\u003e\n      \u003ctd\u003e-61.973978\u003c/td\u003e\n      \u003ctd\u003e-61.973978\u003c/td\u003e\n      \u003ctd\u003e218.123275\u003c/td\u003e\n      \u003ctd\u003e100006\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e7\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e105.780599\u003c/td\u003e\n      \u003ctd\u003e216.447674\u003c/td\u003e\n      \u003ctd\u003e-58.075154\u003c/td\u003e\n      \u003ctd\u003e216.447674\u003c/td\u003e\n      \u003ctd\u003e100007\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e8\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e48.406640\u003c/td\u003e\n      \u003ctd\u003e-57.373959\u003c/td\u003e\n      \u003ctd\u003e-57.373959\u003c/td\u003e\n      \u003ctd\u003e210.182965\u003c/td\u003e\n      \u003ctd\u003e100008\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e9\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-4.155811\u003c/td\u003e\n      \u003ctd\u003e-52.562451\u003c/td\u003e\n      \u003ctd\u003e-52.562451\u003c/td\u003e\n      \u003ctd\u003e198.544093\u003c/td\u003e\n      \u003ctd\u003e100009\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e10\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-64.708452\u003c/td\u003e\n      \u003ctd\u003e-60.552641\u003c/td\u003e\n      \u003ctd\u003e-60.552641\u003c/td\u003e\n      \u003ctd\u003e231.769001\u003c/td\u003e\n      \u003ctd\u003e100010\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e11\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-107.369762\u003c/td\u003e\n      \u003ctd\u003e-42.661311\u003c/td\u003e\n      \u003ctd\u003e-42.661311\u003c/td\u003e\n      \u003ctd\u003e189.154274\u003c/td\u003e\n      \u003ctd\u003e100011\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e12\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-172.440583\u003c/td\u003e\n      \u003ctd\u003e-65.070820\u003c/td\u003e\n      \u003ctd\u003e-65.070820\u003c/td\u003e\n      \u003ctd\u003e237.434674\u003c/td\u003e\n      \u003ctd\u003e100012\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e13\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-235.751204\u003c/td\u003e\n      \u003ctd\u003e-63.310621\u003c/td\u003e\n      \u003ctd\u003e-63.310621\u003c/td\u003e\n      \u003ctd\u003e220.128240\u003c/td\u003e\n      \u003ctd\u003e100013\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e14\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-17.244955\u003c/td\u003e\n      \u003ctd\u003e218.506249\u003c/td\u003e\n      \u003ctd\u003e-60.495320\u003c/td\u003e\n      \u003ctd\u003e218.506249\u003c/td\u003e\n      \u003ctd\u003e100014\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e15\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-72.993676\u003c/td\u003e\n      \u003ctd\u003e-55.748721\u003c/td\u003e\n      \u003ctd\u003e-55.748721\u003c/td\u003e\n      \u003ctd\u003e209.696037\u003c/td\u003e\n      \u003ctd\u003e100015\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e16\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-129.647233\u003c/td\u003e\n      \u003ctd\u003e-56.653557\u003c/td\u003e\n      \u003ctd\u003e-56.653557\u003c/td\u003e\n      \u003ctd\u003e212.862964\u003c/td\u003e\n      \u003ctd\u003e100016\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e17\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-146.388342\u003c/td\u003e\n      \u003ctd\u003e-16.741109\u003c/td\u003e\n      \u003ctd\u003e-16.741109\u003c/td\u003e\n      \u003ctd\u003e92.445539\u003c/td\u003e\n      \u003ctd\u003e100017\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e18\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-200.151292\u003c/td\u003e\n      \u003ctd\u003e-53.762951\u003c/td\u003e\n      \u003ctd\u003e-53.762951\u003c/td\u003e\n      \u003ctd\u003e205.806734\u003c/td\u003e\n      \u003ctd\u003e100018\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e19\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-267.387836\u003c/td\u003e\n      \u003ctd\u003e-67.236543\u003c/td\u003e\n      \u003ctd\u003e-67.236543\u003c/td\u003e\n      \u003ctd\u003e243.931843\u003c/td\u003e\n      \u003ctd\u003e100019\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e20\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-325.763639\u003c/td\u003e\n      \u003ctd\u003e-58.375803\u003c/td\u003e\n      \u003ctd\u003e-58.375803\u003c/td\u003e\n      \u003ctd\u003e215.808419\u003c/td\u003e\n      \u003ctd\u003e100020\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e21\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-364.654439\u003c/td\u003e\n      \u003ctd\u003e-38.890800\u003c/td\u003e\n      \u003ctd\u003e-38.890800\u003c/td\u003e\n      \u003ctd\u003e191.699807\u003c/td\u003e\n      \u003ctd\u003e100021\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e22\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-434.593362\u003c/td\u003e\n      \u003ctd\u003e-69.938923\u003c/td\u003e\n      \u003ctd\u003e-69.938923\u003c/td\u003e\n      \u003ctd\u003e274.007270\u003c/td\u003e\n      \u003ctd\u003e100022\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e23\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-476.937072\u003c/td\u003e\n      \u003ctd\u003e-42.343711\u003c/td\u003e\n      \u003ctd\u003e-42.343711\u003c/td\u003e\n      \u003ctd\u003e169.253345\u003c/td\u003e\n      \u003ctd\u003e100023\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e24\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-532.785022\u003c/td\u003e\n      \u003ctd\u003e-55.847950\u003c/td\u003e\n      \u003ctd\u003e-55.847950\u003c/td\u003e\n      \u003ctd\u003e209.766062\u003c/td\u003e\n      \u003ctd\u003e100024\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e25\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-597.804277\u003c/td\u003e\n      \u003ctd\u003e-65.019255\u003c/td\u003e\n      \u003ctd\u003e-65.019255\u003c/td\u003e\n      \u003ctd\u003e242.142906\u003c/td\u003e\n      \u003ctd\u003e100025\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e26\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-654.063179\u003c/td\u003e\n      \u003ctd\u003e-56.258902\u003c/td\u003e\n      \u003ctd\u003e-56.258902\u003c/td\u003e\n      \u003ctd\u003e210.998920\u003c/td\u003e\n      \u003ctd\u003e100026\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e27\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-449.221278\u003c/td\u003e\n      \u003ctd\u003e204.841901\u003c/td\u003e\n      \u003ctd\u003e-53.989196\u003c/td\u003e\n      \u003ctd\u003e204.841901\u003c/td\u003e\n      \u003ctd\u003e100027\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e28\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e-523.574188\u003c/td\u003e\n      \u003ctd\u003e-74.352911\u003c/td\u003e\n      \u003ctd\u003e-74.352911\u003c/td\u003e\n      \u003ctd\u003e265.280945\u003c/td\u003e\n      \u003ctd\u003e100028\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e29\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e-568.342483\u003c/td\u003e\n      \u003ctd\u003e-44.768295\u003c/td\u003e\n      \u003ctd\u003e-44.768295\u003c/td\u003e\n      \u003ctd\u003e192.314750\u003c/td\u003e\n      \u003ctd\u003e100029\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e...\u003c/th\u003e\n      \u003ctd\u003e...\u003c/td\u003e\n      \u003ctd\u003e...\u003c/td\u003e\n      \u003ctd\u003e...\u003c/td\u003e\n      \u003ctd\u003e...\u003c/td\u003e\n      \u003ctd\u003e...\u003c/td\u003e\n      \u003ctd\u003e...\u003c/td\u003e\n      \u003ctd\u003e...\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99970\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16129.466956\u003c/td\u003e\n      \u003ctd\u003e-45.894166\u003c/td\u003e\n      \u003ctd\u003e-45.894166\u003c/td\u003e\n      \u003ctd\u003e179.904710\u003c/td\u003e\n      \u003ctd\u003e199970\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99971\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16059.938494\u003c/td\u003e\n      \u003ctd\u003e-69.528462\u003c/td\u003e\n      \u003ctd\u003e-69.528462\u003c/td\u003e\n      \u003ctd\u003e236.572534\u003c/td\u003e\n      \u003ctd\u003e199971\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99972\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e15994.415308\u003c/td\u003e\n      \u003ctd\u003e-65.523186\u003c/td\u003e\n      \u003ctd\u003e-65.523186\u003c/td\u003e\n      \u003ctd\u003e233.676876\u003c/td\u003e\n      \u003ctd\u003e199972\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99973\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e15956.083839\u003c/td\u003e\n      \u003ctd\u003e-38.331469\u003c/td\u003e\n      \u003ctd\u003e-38.331469\u003c/td\u003e\n      \u003ctd\u003e148.735656\u003c/td\u003e\n      \u003ctd\u003e199973\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99974\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e15921.753577\u003c/td\u003e\n      \u003ctd\u003e-34.330262\u003c/td\u003e\n      \u003ctd\u003e-34.330262\u003c/td\u003e\n      \u003ctd\u003e145.212998\u003c/td\u003e\n      \u003ctd\u003e199974\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99975\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e15858.064074\u003c/td\u003e\n      \u003ctd\u003e-63.689503\u003c/td\u003e\n      \u003ctd\u003e-63.689503\u003c/td\u003e\n      \u003ctd\u003e224.894616\u003c/td\u003e\n      \u003ctd\u003e199975\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99976\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e15802.677835\u003c/td\u003e\n      \u003ctd\u003e-55.386240\u003c/td\u003e\n      \u003ctd\u003e-55.386240\u003c/td\u003e\n      \u003ctd\u003e208.380932\u003c/td\u003e\n      \u003ctd\u003e199976\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99977\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16001.972741\u003c/td\u003e\n      \u003ctd\u003e199.294907\u003c/td\u003e\n      \u003ctd\u003e-52.357565\u003c/td\u003e\n      \u003ctd\u003e199.294907\u003c/td\u003e\n      \u003ctd\u003e199977\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99978\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e15931.069102\u003c/td\u003e\n      \u003ctd\u003e-70.903639\u003c/td\u003e\n      \u003ctd\u003e-70.903639\u003c/td\u003e\n      \u003ctd\u003e239.322888\u003c/td\u003e\n      \u003ctd\u003e199978\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99979\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e15879.592734\u003c/td\u003e\n      \u003ctd\u003e-51.476368\u003c/td\u003e\n      \u003ctd\u003e-51.476368\u003c/td\u003e\n      \u003ctd\u003e200.468346\u003c/td\u003e\n      \u003ctd\u003e199979\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99980\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16097.347237\u003c/td\u003e\n      \u003ctd\u003e217.754503\u003c/td\u003e\n      \u003ctd\u003e-59.154237\u003c/td\u003e\n      \u003ctd\u003e217.754503\u003c/td\u003e\n      \u003ctd\u003e199980\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99981\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16055.746008\u003c/td\u003e\n      \u003ctd\u003e-41.601229\u003c/td\u003e\n      \u003ctd\u003e-41.601229\u003c/td\u003e\n      \u003ctd\u003e167.025900\u003c/td\u003e\n      \u003ctd\u003e199981\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99982\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16007.710736\u003c/td\u003e\n      \u003ctd\u003e-48.035272\u003c/td\u003e\n      \u003ctd\u003e-48.035272\u003c/td\u003e\n      \u003ctd\u003e193.586153\u003c/td\u003e\n      \u003ctd\u003e199982\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99983\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e15940.329676\u003c/td\u003e\n      \u003ctd\u003e-67.381061\u003c/td\u003e\n      \u003ctd\u003e-67.381061\u003c/td\u003e\n      \u003ctd\u003e238.321563\u003c/td\u003e\n      \u003ctd\u003e199983\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99984\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16137.220020\u003c/td\u003e\n      \u003ctd\u003e196.890345\u003c/td\u003e\n      \u003ctd\u003e-51.556044\u003c/td\u003e\n      \u003ctd\u003e196.890345\u003c/td\u003e\n      \u003ctd\u003e199984\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99985\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16063.727250\u003c/td\u003e\n      \u003ctd\u003e-73.492770\u003c/td\u003e\n      \u003ctd\u003e-73.492770\u003c/td\u003e\n      \u003ctd\u003e271.800210\u003c/td\u003e\n      \u003ctd\u003e199985\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99986\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16265.927113\u003c/td\u003e\n      \u003ctd\u003e202.199862\u003c/td\u003e\n      \u003ctd\u003e-53.817762\u003c/td\u003e\n      \u003ctd\u003e202.199862\u003c/td\u003e\n      \u003ctd\u003e199986\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99987\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16195.241954\u003c/td\u003e\n      \u003ctd\u003e-70.685159\u003c/td\u003e\n      \u003ctd\u003e-70.685159\u003c/td\u003e\n      \u003ctd\u003e246.581808\u003c/td\u003e\n      \u003ctd\u003e199987\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99988\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16142.556237\u003c/td\u003e\n      \u003ctd\u003e-52.685718\u003c/td\u003e\n      \u003ctd\u003e-52.685718\u003c/td\u003e\n      \u003ctd\u003e201.583206\u003c/td\u003e\n      \u003ctd\u003e199988\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99989\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16084.619852\u003c/td\u003e\n      \u003ctd\u003e-57.936385\u003c/td\u003e\n      \u003ctd\u003e-57.936385\u003c/td\u003e\n      \u003ctd\u003e218.674354\u003c/td\u003e\n      \u003ctd\u003e199989\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99990\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16007.755379\u003c/td\u003e\n      \u003ctd\u003e-76.864473\u003c/td\u003e\n      \u003ctd\u003e-76.864473\u003c/td\u003e\n      \u003ctd\u003e240.459018\u003c/td\u003e\n      \u003ctd\u003e199990\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99991\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e15967.397613\u003c/td\u003e\n      \u003ctd\u003e-40.357765\u003c/td\u003e\n      \u003ctd\u003e-40.357765\u003c/td\u003e\n      \u003ctd\u003e163.295509\u003c/td\u003e\n      \u003ctd\u003e199991\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99992\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16206.001733\u003c/td\u003e\n      \u003ctd\u003e238.604120\u003c/td\u003e\n      \u003ctd\u003e-64.008173\u003c/td\u003e\n      \u003ctd\u003e238.604120\u003c/td\u003e\n      \u003ctd\u003e199992\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99993\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16415.813089\u003c/td\u003e\n      \u003ctd\u003e209.811356\u003c/td\u003e\n      \u003ctd\u003e-56.432699\u003c/td\u003e\n      \u003ctd\u003e209.811356\u003c/td\u003e\n      \u003ctd\u003e199993\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99994\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16623.669802\u003c/td\u003e\n      \u003ctd\u003e207.856713\u003c/td\u003e\n      \u003ctd\u003e-55.211500\u003c/td\u003e\n      \u003ctd\u003e207.856713\u003c/td\u003e\n      \u003ctd\u003e199994\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99995\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16580.549144\u003c/td\u003e\n      \u003ctd\u003e-43.120658\u003c/td\u003e\n      \u003ctd\u003e-43.120658\u003c/td\u003e\n      \u003ctd\u003e189.843295\u003c/td\u003e\n      \u003ctd\u003e199995\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99996\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16534.117075\u003c/td\u003e\n      \u003ctd\u003e-46.432069\u003c/td\u003e\n      \u003ctd\u003e-46.432069\u003c/td\u003e\n      \u003ctd\u003e159.365102\u003c/td\u003e\n      \u003ctd\u003e199996\u003c/td\u003e\n      \u003ctd\u003e0\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99997\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e16794.045401\u003c/td\u003e\n      \u003ctd\u003e259.928326\u003c/td\u003e\n      \u003ctd\u003e-68.249878\u003c/td\u003e\n      \u003ctd\u003e259.928326\u003c/td\u003e\n      \u003ctd\u003e199997\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99998\u003c/th\u003e\n      \u003ctd\u003eSell\u003c/td\u003e\n      \u003ctd\u003e16988.465860\u003c/td\u003e\n      \u003ctd\u003e194.420459\u003c/td\u003e\n      \u003ctd\u003e-48.452425\u003c/td\u003e\n      \u003ctd\u003e194.420459\u003c/td\u003e\n      \u003ctd\u003e199998\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003cth\u003e99999\u003c/th\u003e\n      \u003ctd\u003eBuy\u003c/td\u003e\n      \u003ctd\u003e17277.398427\u003c/td\u003e\n      \u003ctd\u003e288.932567\u003c/td\u003e\n      \u003ctd\u003e-87.625462\u003c/td\u003e\n      \u003ctd\u003e288.932567\u003c/td\u003e\n      \u003ctd\u003e199999\u003c/td\u003e\n      \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e100000 rows × 7 columns\u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\n```python\nprint Tradehistory.info()\nprint Tradehistory.describe()\n```\n\n    \u003cclass 'pandas.core.frame.DataFrame'\u003e\n    RangeIndex: 100000 entries, 0 to 99999\n    Data columns (total 7 columns):\n    Direction     100000 non-null object\n    PipP\u0026L        100000 non-null float64\n    ResultPips    100000 non-null float64\n    SLPips        100000 non-null float64\n    TPPips        100000 non-null float64\n    TradeId       100000 non-null int64\n    WinLoss       100000 non-null int64\n    dtypes: float64(4), int64(2), object(1)\n    memory usage: 5.3+ MB\n    None\n                  PipP\u0026L     ResultPips         SLPips         TPPips  \\\n    count  100000.000000  100000.000000  100000.000000  100000.000000   \n    mean     -881.153441       0.172774     -55.315874     208.131656   \n    std      5881.943018     109.298843      12.527011      34.282536   \n    min    -16748.490652    -106.180121    -118.863214       0.000000   \n    25%     -4571.669642     -61.106808     -63.816824     187.893533   \n    50%     -1197.372069     -50.883573     -55.278750     208.068400   \n    75%      2280.124517     -34.679912     -46.842749     228.355461   \n    max     17277.398427     382.483281      -0.000000     412.632627   \n    \n                 TradeId        WinLoss  \n    count  100000.000000  100000.000000  \n    mean   149999.500000       0.208840  \n    std     28867.657797       0.406482  \n    min    100000.000000       0.000000  \n    25%    124999.750000       0.000000  \n    50%    149999.500000       0.000000  \n    75%    174999.250000       0.000000  \n    max    199999.000000       1.000000  \n    \n\n### This is the Pip Accumulated curve over time, or the ROI of the account over time.\n        Assuming that the Lot / volume size entered into the market is fixed, then this would be the balance graph you would get in a efficient market hypothesis after SimSize( default is 100k) amount of trades done\n\n\n```python\nTradehistory['PipP\u0026L'].plot()\n```\n\n\n\n\n    \u003cmatplotlib.axes._subplots.AxesSubplot at 0xfbe4128\u003e\n\n\n\n\n![png](output_40_1.png)\n\n\n## Performing a bayesian generation on the accounts\n    We're going to simulate a few thousand accounts, all placing trades on a random and unpredictable market.\n\n## The above steps was used to generate just 1 account's portfolio of trades\n    We will have to create a function to automate that process and that loop it a few thousand times\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasdin%2Ftradehistgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnasdin%2Ftradehistgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasdin%2Ftradehistgen/lists"}