mirror of
https://github.com/BrentNeale1/fx-quant.git
synced 2026-07-28 02:47:47 +00:00
Add 2025 forward validation: only S3 survives out of 4 strategies
Downloaded 2025 data (Oct 2024-Dec 2025) for GBP_JPY H1, GBP_AUD H1, GBP_USD M15+H1 via Dukascopy. Ran all 4 Phase 2 passing strategies on 2025 data. Results: S7_Tight PF=0.52 FAIL, S9_Filtered PF=0.74 FAIL, S3 PF=1.05 PASS (+52p), S8_OB PF=0.84 FAIL. Portfolio PF=0.83 (-373p). Only S3 (Key Level Breakout) maintained edge into 2025. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,36 @@
|
||||
timestamp,strategy_id,pair,signal_direction,entry_price,sl_price,tp1_price,tp2_price,tp3_price,lot_size,confluence_score,session,spread_at_entry,atr_at_entry,adx_at_entry,rsi_at_entry,ema_50_value,ema_200_value,vwap_deviation,news_within_60min,macd_hist_at_entry,stoch_k_at_entry,distance_from_ema50_pips,candle_body_ratio,hour_of_day,day_of_week,entry_pattern,exit_price,exit_reason,exit_time,pnl_pips,pnl_dollars,hold_time_minutes,win
|
||||
2025-01-02 13:00:00+00:00,3,GBP_JPY,SHORT,194.497,194.98438307256333,193.84185078231008,193.38575130385013,192.70160208616022,1979.34,5,OVERLAP,2.5,0.4560994784599478,53.23697312740748,25.584911052554403,196.64761627313277,196.71736396264131,-91.60168368109396,False,-0.21127471707582773,15.097389036726605,-212.16162731327586,0.7547169811320885,13,3,key_level_break,194.98438307256333,SL,2025-01-02 16:00:00+00:00,-48.73830725633184,-964.6968108474786,180,False
|
||||
2025-01-10 14:00:00+00:00,3,GBP_JPY,SHORT,193.326,193.7494785203664,192.6760644389007,192.22344073150117,191.5445051704019,2255.25,5,OVERLAP,2.5,0.45262370739952645,38.95561719942836,33.86544229081126,194.82731880126565,195.86690709305736,-65.81650341895511,False,-0.04922672962035998,40.5053411064868,-147.23188012656578,0.7123115577889354,14,4,key_level_break,191.5445051704019,TP3,2025-01-13 03:00:00+00:00,105.7296897758863,2384.468828670676,3660,True
|
||||
2025-01-15 14:00:00+00:00,3,GBP_JPY,SHORT,191.684,192.5355808996434,191.05640015821268,190.61866693035446,189.96206708856715,1149.5,5,OVERLAP,2.5,0.4377332278582107,39.08655852417394,42.44381925580649,192.305609092027,193.93147797889625,-15.601164374157861,False,-0.05266014396619048,57.517099250059495,-59.26090920270042,0.8589562764457412,14,2,key_level_break,189.96206708856715,TP3,2025-01-16 02:00:00+00:00,102.15597468597082,1174.2829290152347,720,True
|
||||
2025-01-16 13:00:00+00:00,3,GBP_JPY,SHORT,190.121,190.48273843390464,189.53398469828616,189.12330783047693,188.50729252876312,2738.55,5,OVERLAP,2.5,0.4106768678092243,35.357876072374715,37.267574188200975,191.32080681058747,193.27965894755692,-5.978630270192298,False,-0.005761267357707378,47.62532981530526,-117.08068105874645,0.5643340857787656,13,3,key_level_break,190.48273843390464,SL,2025-01-16 14:00:00+00:00,-36.17384339046339,-990.6387881695352,60,False
|
||||
2025-01-24 14:00:00+00:00,3,GBP_JPY,LONG,194.435,193.7414257343567,195.09772279692987,195.55887132821647,196.25059412514634,1414.02,4,OVERLAP,2.5,0.4611485312865839,35.210979018501284,71.5768836064153,192.83189299725,192.3137179355624,78.83496325360397,False,0.16366671314045877,93.07563527837654,157.41070027499973,0.6077057793345177,14,4,key_level_break,193.7414257343567,SL,2025-01-27 00:00:00+00:00,-69.35742656432922,-980.727883104928,3480,False
|
||||
2025-02-05 15:00:00+00:00,3,GBP_JPY,SHORT,190.40800000000002,191.365121240855,189.756636277435,189.30306046239167,188.62269673982667,1014.42,5,OVERLAP,2.5,0.45357581504334,37.0766631656943,28.591132666787416,191.87502906266835,192.2470668376155,-83.71675860483379,False,-0.057439498137697775,29.003530032027246,-143.80290626683347,0.815648445873528,15,2,key_level_break,188.62269673982667,TP3,2025-02-06 12:00:00+00:00,105.95819561040116,1074.8611279110314,1260,True
|
||||
2025-02-21 14:00:00+00:00,3,GBP_JPY,SHORT,189.529,190.03210189281828,188.96719432154512,188.57332386924188,187.98251819078698,1951.24,4,OVERLAP,2.5,0.393870452303251,25.37110924847192,41.66245176977919,190.13341884916542,190.63185283680852,-62.080102935590276,False,-0.04347769886035274,30.296925529481314,-57.54188491654304,0.8506329113924099,14,4,key_level_break,188.95046974789906,TP1+TP2+SL,2025-02-23 23:00:00+00:00,72.26987741053847,1410.1587559853908,3420,True
|
||||
2025-03-12 12:00:00+00:00,3,GBP_JPY,LONG,193.04,192.30577528273506,193.70000748512817,194.15934580854696,194.84835329367513,1356.23,4,LONDON,2.5,0.45933832341878533,44.8237062015922,75.68273202405237,191.09851162254492,190.53276109434807,61.19302513729963,False,0.09335510950043424,86.70092908715687,191.24883774550767,0.6380208333333446,12,2,key_level_break,192.30577528273506,SL,2025-03-12 13:00:00+00:00,-73.42247172649365,-995.7775882962248,60,False
|
||||
2025-03-17 12:00:00+00:00,3,GBP_JPY,LONG,193.069,192.49210171162414,193.60069486512756,193.97449144187928,194.53518630700685,1708.82,5,LONDON,2.5,0.3737965767517135,20.702241997285892,66.16853350006848,192.18451043243147,191.33195391746656,35.24717288279646,False,0.031617572507774305,59.971167102327364,85.54895675685259,0.6022443890274422,12,0,key_level_break,194.53518630700685,TP3,2025-03-18 07:00:00+00:00,86.81117842041202,1483.4467790836848,1140,True
|
||||
2025-04-01 11:00:00+00:00,3,GBP_JPY,SHORT,192.294,192.82981145377798,191.699190638666,191.28331773111,190.65950836977598,1867.54,4,LONDON,2.5,0.4158729075560048,21.238453476934822,32.06595400189933,193.64223469017827,193.75382938222035,-70.84659242934492,False,-0.0958450162681939,20.394408011251898,-131.92346901782628,0.8409090909091119,11,1,key_level_break,192.82981145377798,SL,2025-04-01 13:00:00+00:00,-53.5811453777967,-1000.6493223885045,120,False
|
||||
2025-04-03 12:00:00+00:00,3,GBP_JPY,SHORT,191.928,192.64626960621501,191.07452451468836,190.48620752448062,189.60373203916902,1379.21,4,LONDON,2.5,0.5883169902077462,31.64199341633001,35.125989686055135,193.26838281307124,193.57390896517083,-83.48143394310057,False,-0.08721327615007979,14.818278035185685,-131.13828130712477,0.5105140186916058,12,3,key_level_break,189.60373203916902,TP3,2025-04-04 10:00:00+00:00,138.29607764986005,1907.393332554635,1320,True
|
||||
2025-04-08 14:00:00+00:00,3,GBP_JPY,SHORT,187.91,188.63083883373105,186.91760849880683,186.2366808313447,185.21528933015153,1400.75,4,OVERLAP,2.5,0.6809276674621171,28.930013206360904,47.46077070596699,188.62995989716217,191.10662056541338,10.755495988894381,False,-0.0023966979134897037,62.02546554790512,-69.09598971621733,0.5141987829614707,14,1,key_level_break,186.95191160126862,TP1+TP2+SL,2025-04-09 01:00:00+00:00,125.79019476856617,1762.0061532206905,660,True
|
||||
2025-05-13 12:00:00+00:00,3,GBP_JPY,LONG,196.01,195.6190644549294,196.40180663521178,196.68234439201962,197.1031510272314,2627.9,4,LONDON,2.5,0.28053775680785176,38.807915943812134,69.6859185053641,194.64227274492103,192.7793750609354,36.11116818764515,False,0.016342516742202773,88.18678049574855,133.87272550789646,0.608108108108083,12,1,key_level_break,195.6190644549294,SL,2025-05-13 13:00:00+00:00,-39.09355450705903,-1027.3395188910042,60,False
|
||||
2025-05-13 14:00:00+00:00,3,GBP_JPY,LONG,196.058,195.60318567797484,196.49744296607545,196.80973827679244,197.2781812428679,2236.22,4,OVERLAP,2.5,0.3122953107169743,40.05359194386566,65.34169001065715,194.73251321051725,192.8394371869039,33.840990569945006,False,0.025155391240539393,72.32001479764033,129.6486789482742,0.8932238193018623,14,1,key_level_break,195.60318567797484,SL,2025-05-14 04:00:00+00:00,-45.48143220251575,-1017.0648831990976,840,False
|
||||
2025-05-20 14:00:00+00:00,3,GBP_JPY,SHORT,193.229,193.60457105757715,192.8329118272686,192.54951971211432,192.12443153938293,2680.97,4,OVERLAP,2.5,0.2833921151542737,23.184969277480825,46.27056158522468,193.4905849278543,193.51749423374523,0.1945930788252781,False,-0.008528704790559546,57.00972555289216,-23.25849278542762,0.7781818181817971,14,1,key_level_break,193.60457105757715,SL,2025-05-20 16:00:00+00:00,-37.557105757713316,-1006.8947382325666,120,False
|
||||
2025-05-23 13:00:00+00:00,3,GBP_JPY,SHORT,192.46800000000002,192.85036911612343,191.93339265162982,191.55765441938303,190.99404707101286,2606.97,4,OVERLAP,2.5,0.37573823224678926,34.201849808097535,41.98970011088173,192.9670361178132,193.2292748311599,-27.41814198580812,False,-0.06866208982446759,31.30562317009658,-47.003611781318,0.6403061224489259,13,4,key_level_break,192.85036911612343,SL,2025-05-23 16:00:00+00:00,-38.23691161234137,-996.8248146602558,180,False
|
||||
2025-06-05 14:00:00+00:00,3,GBP_JPY,LONG,195.007,194.5958173733494,195.47579787995178,195.80766313325296,196.30546101320473,2400.05,4,OVERLAP,2.5,0.3318652533011814,49.31009875592514,69.98015372886118,194.1207308633276,194.01335008379831,39.0768205082594,False,0.13009248094344875,68.92088292288908,85.72691366724143,0.7970204841713502,14,3,key_level_break,195.007,TP1+SL,2025-06-05 17:00:00+00:00,18.751915198071174,450.0553407113073,180,True
|
||||
2025-06-06 12:00:00+00:00,3,GBP_JPY,LONG,195.787,195.17899431133128,196.19601706600622,196.4880284433437,196.9260455093499,1630.51,5,LONDON,2.5,0.29201137733747584,33.92620529336979,69.52672082231129,194.7152106319891,194.23149251382875,42.63092402857467,False,0.01870868440868262,94.85791834694639,104.2789368010915,0.6704180064308861,12,4,key_level_break,195.787,TP1+SL,2025-06-10 05:00:00+00:00,16.360682640248573,266.762566517517,5340,True
|
||||
2025-06-13 14:00:00+00:00,3,GBP_JPY,LONG,195.67,195.15743499729416,196.23902834145088,196.63771390241814,197.23574224386905,1939.32,4,OVERLAP,2.5,0.3986855609672636,27.31081836738945,60.64249109971264,195.15013520488617,195.06423605960205,42.14309237741247,False,0.12031382579923301,68.22167027966398,49.08647951138221,0.8216463414633878,14,4,key_level_break,195.15743499729416,SL,2025-06-13 18:00:00+00:00,-51.256500270582706,-994.0275610474645,240,False
|
||||
2025-06-20 11:00:00+00:00,3,GBP_JPY,LONG,196.536,196.0945227368836,196.91093178934918,197.1802196489153,197.58415143826448,2229.07,4,LONDON,2.5,0.2692878595661198,22.156552735049925,67.43644425450441,195.60580202448418,195.38159334021114,32.363239947252964,False,0.014633608046707047,86.86021199183216,90.11979755158279,0.7329192546584361,11,4,key_level_break,197.58415143826448,TP3,2025-06-23 05:00:00+00:00,61.72908629586914,1375.9845438953303,3960,True
|
||||
2025-06-30 14:00:00+00:00,3,GBP_JPY,LONG,197.968,197.50116887949284,198.37549336152154,198.6664889358692,199.10298229739075,2137.49,4,OVERLAP,2.5,0.29099557434768725,27.50051685447893,50.730643162174694,198.00442456262942,197.32268310650338,28.837764064334692,False,0.020965312855296542,72.70966511507753,-6.542456262943119,0.6548672566371788,14,0,key_level_break,197.50116887949284,SL,2025-06-30 21:00:00+00:00,-46.68311205071518,-997.8468517728318,420,False
|
||||
2025-08-01 12:00:00+00:00,3,GBP_JPY,SHORT,197.42000000000002,197.9240625869552,196.9521455724677,196.62090928744615,196.12405485991385,1959.81,5,LONDON,2.5,0.3312362850215407,39.70741883714897,30.883748563855576,198.39358929989507,198.42740572261104,-44.094734242111144,False,-0.18151460798487157,13.76468588256765,-94.45892998950569,0.7970822281167195,12,4,key_level_break,196.12405485991385,TP3,2025-08-01 14:00:00+00:00,76.5967084051698,1501.1499509953583,120,True
|
||||
2025-08-14 13:00:00+00:00,3,GBP_JPY,LONG,199.554,199.10977887941726,199.96666336174815,200.26110560291357,200.7027689646617,2257.61,5,OVERLAP,2.5,0.2944422411654218,40.79848802125706,54.95548743490444,199.34556971024975,198.53565295788798,39.03909081138863,False,0.029277806124416605,62.14737037230483,17.943028975025754,0.8668224299065693,13,3,key_level_break,199.554,TP1+SL,2025-08-15 01:00:00+00:00,16.506534469925782,372.6531728464915,720,True
|
||||
2025-08-29 13:00:00+00:00,3,GBP_JPY,SHORT,198.084,198.37054912924077,197.78001927894445,197.5580321315741,197.22505141051857,3512.85,5,OVERLAP,2.5,0.22198714737035677,23.895428385806568,41.067792364739496,198.51657552909555,198.76682716062209,-1.8543425743160924,False,-0.009635298687658958,51.726292866489956,-40.357552909554784,0.7254098360655437,13,4,key_level_break,198.37054912924077,SL,2025-08-29 14:00:00+00:00,-28.65491292407682,-1006.6041086534327,60,False
|
||||
2025-09-03 12:00:00+00:00,3,GBP_JPY,LONG,199.683,199.1745151348446,200.076097452609,200.3574957543483,200.7795932069573,1959.82,4,LONDON,2.5,0.28139830173932046,28.386640186435333,68.17455925510868,198.98764035953457,198.89036605529782,38.32679347516148,False,0.09955251783628763,94.46670215278057,66.635964046543,0.9243243243243422,12,2,key_level_break,199.1745151348446,SL,2025-09-03 14:00:00+00:00,-50.84848651553955,-996.5388084288471,120,False
|
||||
2025-09-04 12:00:00+00:00,3,GBP_JPY,LONG,199.53,199.1580373683451,199.85858020265707,200.09696700442842,200.45454720708548,2652.34,5,LONDON,2.5,0.2383868017713703,31.76344050115275,63.05367443103985,199.07477481470764,198.9360884908947,14.62417504868938,False,0.044334013057012955,78.00884632110103,42.622518529236686,0.5539215686274278,12,3,key_level_break,199.1580373683451,SL,2025-09-04 21:00:00+00:00,-37.19626316548954,-986.5713664435453,540,False
|
||||
2025-09-26 12:00:00+00:00,3,GBP_JPY,LONG,200.176,199.8810095833572,200.4204712499284,200.60278541654733,200.8762566664757,3310.98,5,LONDON,2.5,0.18231416661893246,27.37506137572165,57.91734386625047,199.92203116078872,199.8615161940762,7.902698610351422,False,0.025858923587124133,44.57708928787432,22.496883921127164,0.6569343065692621,12,4,key_level_break,200.176,TP1+SL,2025-09-28 21:00:00+00:00,9.778849997136376,323.775767635186,3420,True
|
||||
2025-09-30 08:00:00+00:00,3,GBP_JPY,SHORT,198.775,199.17284708382297,198.4574587485311,198.22643124755186,197.87988999608297,2463.12,4,LONDON,2.5,0.23102750097925917,41.63705591756108,28.296084190987116,199.69308888938565,199.8329516544229,-10.666666666665492,False,-0.0658756422070308,9.996304863001129,-88.9088889385647,0.7949438202246949,8,1,key_level_break,199.17284708382297,SL,2025-10-01 00:00:00+00:00,-39.784708382296685,-979.945109106026,960,False
|
||||
2025-10-02 13:00:00+00:00,3,GBP_JPY,SHORT,197.699,198.3673694359172,197.31846312081979,197.04543853469963,196.63590165551938,1451.51,5,OVERLAP,2.5,0.27302458612015656,31.897686513797137,38.36260126547985,198.45704338867026,199.24615107819562,-23.65148586146404,False,-0.030908554095362292,35.14437143789346,-72.90433886702488,0.877300613496929,13,3,key_level_break,198.3673694359172,SL,2025-10-03 01:00:00+00:00,-66.83694359171852,-970.1449199281535,720,False
|
||||
2025-10-31 12:00:00+00:00,3,GBP_JPY,SHORT,201.986,202.36644328422398,201.53581300447095,201.21635500745157,200.73716801192253,2524.54,5,LONDON,2.5,0.3194579970193616,22.82419881407295,39.57823725047947,202.35922671547286,202.5386506524266,-38.64908045094637,False,-0.0749015214121307,13.06374361376191,-34.42267154728711,0.6082474226804637,12,4,key_level_break,202.36644328422398,SL,2025-10-31 15:00:00+00:00,-38.04432842239862,-960.4442887548221,180,False
|
||||
2025-11-06 14:00:00+00:00,3,GBP_JPY,SHORT,200.678,201.43266638276307,200.2760008517108,199.98866808618465,199.55766893789541,1259.95,5,OVERLAP,2.5,0.2873327655261438,24.04747874311413,43.14585488567115,200.94600444412532,201.68973527402446,-32.44439173315925,False,-0.028705453789163754,58.49429881151105,-23.900444412532806,0.911602209944749,14,3,key_level_break,201.43266638276307,SL,2025-11-07 14:00:00+00:00,-75.46663827630766,-950.8419089623384,1440,False
|
||||
2025-11-13 12:00:00+00:00,3,GBP_JPY,LONG,203.814,203.41034258243914,204.18957225268252,204.4592870878042,204.86385934048673,2332.01,4,LONDON,2.5,0.2697148351216835,20.56868702841438,66.40371602508213,203.0716856504323,202.39146860117472,35.692269634708396,False,0.04425282361647792,86.96687805168501,71.33143495676961,0.8272506082725116,12,3,key_level_break,203.41034258243914,SL,2025-11-13 14:00:00+00:00,-40.365741756085065,-941.3331343260795,120,False
|
||||
2025-11-17 15:00:00+00:00,3,GBP_JPY,LONG,204.529,203.90295581495903,204.93363255512293,205.2227209252049,205.65635348032782,1488.58,4,OVERLAP,2.5,0.28908837008195803,44.120884639178314,73.67198224700778,203.50822492476817,202.83440965015498,50.228252496739856,False,0.08715369092268493,80.83038665305689,99.17750752318284,0.9121621621621302,15,0,key_level_break,203.90295581495903,SL,2025-11-17 22:00:00+00:00,-62.60441850409677,-931.9168529682837,420,False
|
||||
2025-12-08 14:00:00+00:00,3,GBP_JPY,LONG,207.684,207.1324838268482,207.97334851945539,208.185580865759,208.50392938521438,1672.84,5,OVERLAP,2.5,0.2122323463035939,34.45429430805797,72.73022063720836,206.91691881158908,206.36578333963027,41.749328469771285,False,0.057577265589728144,85.74299857507897,73.80811884109164,0.8208616780045186,14,0,key_level_break,208.50392938521438,TP3,2025-12-09 08:00:00+00:00,48.035763112862924,803.5614596572161,1080,True
|
||||
2025-12-17 15:00:00+00:00,3,GBP_JPY,LONG,208.258,207.80254291435278,208.65337125694163,208.936285428236,209.36065668517762,2043.3,5,OVERLAP,2.5,0.28291417129439966,24.794927127520445,64.23431513733097,207.6347248984463,207.61650916690658,69.46564805469961,False,0.05282173222311107,92.80520178810885,59.427510155370555,0.8038194444444924,15,2,key_level_break,208.45334380723025,TP1+TP2+SL,2025-12-18 14:00:00+00:00,46.85314355170931,957.3502821920763,1380,True
|
||||
|
@@ -0,0 +1,19 @@
|
||||
timestamp,strategy_id,pair,signal_direction,entry_price,sl_price,tp1_price,tp2_price,tp3_price,lot_size,confluence_score,session,spread_at_entry,atr_at_entry,adx_at_entry,rsi_at_entry,ema_50_value,ema_200_value,vwap_deviation,news_within_60min,macd_hist_at_entry,stoch_k_at_entry,distance_from_ema50_pips,candle_body_ratio,hour_of_day,day_of_week,entry_pattern,exit_price,exit_reason,exit_time,pnl_pips,pnl_dollars,hold_time_minutes,win
|
||||
2025-01-06 08:00:00+00:00,7,GBP_JPY,LONG,196.795,196.03562464338182,197.20456303492728,197.64312606985453,197.64312606985453,1326.04,3,LONDON,2.5,0.2923753566181812,45.050221339210545,77.80688335793323,195.71885313944267,196.23361299221412,13.56666666666797,False,0.10862603334152274,76.13264615568745,104.71468605573193,0.9339019189765324,8,0,liquidity_sweep_bullish,196.795,TP1+SL,2025-01-06 12:00:00+00:00,20.4781517463644,271.5484834174905,240,True
|
||||
2025-01-20 08:00:00+00:00,7,GBP_JPY,SHORT,190.368,191.00814705018644,189.90477942472035,189.4125588494407,189.4125588494407,1577.26,4,LONDON,2.5,0.3281470501864324,25.298907150137687,53.43629606532976,190.37008387714386,192.17198916859877,-6.30000000000166,False,0.05233286983744043,67.03372468460755,2.691612285613587,0.3952254641909738,8,0,liquidity_sweep_bearish,191.00814705018644,SL,2025-01-20 13:00:00+00:00,-64.01470501864424,-1009.678336377068,300,False
|
||||
2025-01-23 16:00:00+00:00,7,GBP_JPY,LONG,192.63,191.9914763841423,193.0067854237866,193.41257084757316,193.41257084757316,1565.46,5,OVERLAP,2.5,0.2705236158577244,18.66356085986309,51.093857506184456,192.3279797181537,192.11847936562066,4.843352747684548,False,-0.04679460852219795,45.385416158364286,27.30202818462999,0.39000000000000923,16,3,liquidity_sweep_bullish,193.41257084757316,TP3,2025-01-24 02:00:00+00:00,57.968313466323494,907.4707599899078,600,True
|
||||
2025-02-18 14:00:00+00:00,7,GBP_JPY,LONG,191.401,190.61660095897497,191.83309856153755,192.2941971230751,192.2941971230751,1285.89,4,OVERLAP,2.5,0.30739904102502896,21.4599980182721,51.8930443330576,191.32376083769176,191.00195076638033,8.437271970993265,False,-0.02846848606283359,34.04542331279312,4.823916230824921,0.7325102880659059,14,1,liquidity_sweep_bullish,191.401,TP1+SL,2025-02-19 01:00:00+00:00,21.60492807687717,277.8156096477559,660,True
|
||||
2025-02-26 16:00:00+00:00,7,GBP_JPY,SHORT,189.275,190.21298715589526,188.7235192661571,188.14303853231416,188.14303853231416,1078.3,4,OVERLAP,2.5,0.3869871558952756,22.133066874265946,54.18003728061299,189.11118565385374,189.7835561346014,2.4538497016692418,False,0.06168790896406007,70.7215119032236,19.28143461462639,0.8388278388278478,16,2,liquidity_sweep_bearish,189.275,TP1+SL,2025-02-27 08:00:00+00:00,27.574036692145402,297.33083765140384,960,True
|
||||
2025-03-06 15:00:00+00:00,7,GBP_JPY,LONG,191.106,189.7752292340628,191.85065614890576,192.62431229781154,192.62431229781154,762.27,4,OVERLAP,2.5,0.5157707659371802,46.93199444636843,48.41002242969856,191.0828601212273,190.28532328403827,53.69696397433188,False,-0.1501054792100494,58.621741402055534,-0.5860121227300397,0.7652947719688403,15,3,liquidity_sweep_bullish,189.7752292340628,SL,2025-03-07 17:00:00+00:00,-133.07707659371886,-1014.4066317509407,1560,False
|
||||
2025-03-13 09:00:00+00:00,7,GBP_JPY,LONG,192.018,190.96996870844208,192.58154693733692,193.17409387467382,193.17409387467382,958.24,4,LONDON,2.5,0.39503129155793953,34.48310138818815,53.6518517301343,191.57661097842632,190.80803703314126,41.22496199382795,False,-0.0869180645672551,57.10849783778287,41.238902157368784,0.7356143079315904,9,3,liquidity_sweep_bullish,190.96996870844208,SL,2025-03-13 17:00:00+00:00,-104.80312915579191,-1004.2655048224603,480,False
|
||||
2025-03-21 08:00:00+00:00,7,GBP_JPY,LONG,193.465,192.60699022054078,193.94301466918884,194.45002933837765,194.45002933837765,1158.75,4,LONDON,2.5,0.3380097794592138,19.55413013900674,57.59345719786689,193.21326929977846,192.64402368080886,14.099999999999113,False,0.07378067080985559,64.68349606404871,22.273070022154684,0.5474060822898265,8,4,liquidity_sweep_bullish,192.60699022054078,SL,2025-03-21 12:00:00+00:00,-85.80097794592234,-994.2188319483752,240,False
|
||||
2025-04-10 13:00:00+00:00,7,GBP_JPY,SHORT,187.113,188.6969894079523,186.14001588807156,185.13803177614312,185.13803177614312,621.39,3,OVERLAP,2.5,0.6679894079522872,22.675582678106778,42.105428917197436,187.7886506113008,189.6986960361379,-81.28752132374188,False,-0.18187732366884368,22.821017680266227,-64.66506113007995,0.861365953109076,13,3,liquidity_sweep_bearish,187.113,TP1+SL,2025-04-11 06:00:00+00:00,48.649205596422014,302.30129865560673,1020,True
|
||||
2025-05-07 12:00:00+00:00,7,GBP_JPY,LONG,191.644,191.03785831575223,192.06071252637167,192.50642505274334,192.50642505274334,1628.83,3,LONDON,2.5,0.2971416842477794,30.04581062738892,64.51742125633898,191.14319599460813,191.06214272652716,32.78067002964917,False,0.07921229071340095,76.64342719685682,47.18040053918742,0.7922535211268634,12,2,liquidity_sweep_bullish,191.03785831575223,SL,2025-05-07 18:00:00+00:00,-60.614168424777404,-987.3017595533017,360,False
|
||||
2025-09-25 14:00:00+00:00,7,GBP_JPY,SHORT,199.696,200.1487560194459,199.40736597083117,199.08973194166234,199.08973194166234,2158.84,4,OVERLAP,2.5,0.21175601944588426,31.759483416022125,41.53198926024545,199.90856344598103,199.8488025993896,-11.70593311110224,False,-0.06154447825391013,28.71972318339205,-18.356344598103647,0.2895927601809588,14,3,liquidity_sweep_bearish,200.1487560194459,SL,2025-09-26 07:00:00+00:00,-45.27560194458999,-977.4278050205867,1020,False
|
||||
2025-10-09 11:00:00+00:00,7,GBP_JPY,LONG,204.387,203.68883656502143,204.80824515246786,205.25849030493572,205.25849030493572,1386.0,3,LONDON,2.5,0.3001634349785676,26.47777521556377,50.07149501573136,203.95657599082438,201.64379957839563,15.37902553312449,False,-0.0784209891394244,40.970714071725496,40.14240091756278,0.6354679802955814,11,3,liquidity_sweep_bullish,203.68883656502143,SL,2025-10-09 15:00:00+00:00,-69.81634349785679,-967.6545208802952,240,False
|
||||
2025-11-24 12:00:00+00:00,7,GBP_JPY,LONG,205.68699999999998,204.982931102766,206.10210334585096,206.54620669170194,206.54620669170194,1360.63,3,LONDON,2.5,0.29606889723398366,28.937655011938737,60.26378817556637,205.24125319483898,204.39473049527857,32.74583855999822,False,0.059839510918221234,55.56168461605938,41.67468051610115,0.8740554156170971,12,0,liquidity_sweep_bullish,205.77,TIME,2025-11-26 04:00:00+00:00,8.300000000002683,112.93229000003652,2400,True
|
||||
2025-12-03 09:00:00+00:00,7,GBP_JPY,LONG,206.666,206.0605009907832,206.98874851382521,207.3404970276504,207.3404970276504,1583.99,4,LONDON,2.5,0.23449900921680372,28.344594479891004,72.17672370547221,205.9594723013251,205.7422457337999,19.86240915854296,False,0.06360367716976709,90.23947202070583,67.75276986749077,0.585858585858562,9,2,liquidity_sweep_bullish,207.3404970276504,TP3,2025-12-03 21:00:00+00:00,49.86270289529991,789.8202275912611,720,True
|
||||
2025-12-23 09:00:00+00:00,7,GBP_JPY,LONG,210.611,210.04134466889494,210.9699829966576,211.3579659933152,211.3579659933152,1697.52,4,LONDON,2.5,0.25865533110506334,41.48957497418431,42.89300280553006,210.52938837174582,209.04430568410808,-0.17577004943234442,False,-0.0806279410814187,67.69704779631962,5.261162825416932,0.16155988857937573,9,1,liquidity_sweep_bullish,210.611,TP1+SL,2025-12-23 15:00:00+00:00,17.949149832880096,304.6904082431062,360,True
|
||||
2025-12-24 15:00:00+00:00,7,GBP_JPY,LONG,210.406,209.77845579590925,210.77381630613615,211.1706326122723,211.1706326122723,1545.79,4,OVERLAP,2.5,0.2645442040907657,23.160935773629824,42.92575626793039,210.59786209934424,209.46187458014302,-11.337377135691895,False,-0.027031930118123687,38.270999947637016,-22.086209934423096,0.5810810810811182,15,2,liquidity_sweep_bullish,210.406,TP1+SL,2025-12-25 07:00:00+00:00,18.39081530680744,284.28338393109874,960,True
|
||||
2025-12-30 08:00:00+00:00,7,GBP_JPY,LONG,210.74,210.31343409461678,211.04934885807484,211.38769771614963,211.38769771614963,2280.76,3,LONDON,2.5,0.22556590538320787,27.79658816044497,44.176618763832884,210.85847556356012,210.1984761267166,3.5666666666656965,False,-0.005321844175906129,28.660863172250515,-14.747556356010705,0.21940928270048873,8,1,liquidity_sweep_bullish,210.31343409461678,SL,2025-12-30 22:00:00+00:00,-42.656590538322796,-972.8944543618512,840,False
|
||||
2025-12-31 09:00:00+00:00,7,GBP_JPY,LONG,210.492,210.0619801216865,210.76002981747024,211.0570596349405,211.0570596349405,2239.81,3,LONDON,2.5,0.1980198783134948,28.740310445169715,42.19993800482815,210.70362349428802,210.29074875948643,1.797318301254336,False,-0.0119967564523158,24.784612302144044,-24.06234942880303,0.5445544554455232,9,2,liquidity_sweep_bullish,211.0570596349405,TP3,2025-12-31 13:00:00+00:00,41.65472490070168,932.9866937984063,240,True
|
||||
|
@@ -0,0 +1,20 @@
|
||||
timestamp,strategy_id,pair,signal_direction,entry_price,sl_price,tp1_price,tp2_price,tp3_price,lot_size,confluence_score,session,spread_at_entry,atr_at_entry,adx_at_entry,rsi_at_entry,ema_50_value,ema_200_value,vwap_deviation,news_within_60min,macd_hist_at_entry,stoch_k_at_entry,distance_from_ema50_pips,candle_body_ratio,hour_of_day,day_of_week,entry_pattern,exit_price,exit_reason,exit_time,pnl_pips,pnl_dollars,hold_time_minutes,win
|
||||
2025-01-17 11:30:00+00:00,8,GBP_USD,SHORT,1.2207,1.2217998788056657,1.2189574746288963,1.2179912119433443,1.2179912119433443,897661.16,5,LONDON,1.5,0.0009662626855518997,20.84501130864583,53.967290313344606,1.2209548175727356,1.221705788136929,14.408661075588913,False,0.00037833557154009085,88.21294508794394,-0.6481757273557598,0.8987341772150974,11,4,order_block_retest_short,1.2179912119433443,TP3,2025-01-17 13:15:00+00:00,22.256567440557063,1997.8856146308688,105,True
|
||||
2025-01-17 15:15:00+00:00,8,GBP_USD,SHORT,1.2205099999999998,1.2219572350762553,1.2177184328249644,1.2162276492374466,1.2162276492374466,696015.01,5,OVERLAP,1.5,0.0014907835875177175,38.66636444850098,55.4246627620362,1.2200578193653082,1.2213180863115822,14.479532997535571,False,0.00032359126019247285,82.13631322628801,6.421806346916803,0.718750000000112,15,4,order_block_retest_short,1.2162276492374466,TP3,2025-01-17 21:45:00+00:00,35.36959030320947,2461.7765748584243,390,True
|
||||
2025-02-13 09:30:00+00:00,8,GBP_USD,LONG,1.2489700000000001,1.248398624562227,1.250855836251821,1.2518937543777313,1.2518937543777313,1806019.37,4,LONDON,1.5,0.0010379181259104386,35.09352882568999,52.085764201705594,1.2475087132733504,1.24435769918256,2.7325698144498034,False,-0.00032123831776868523,52.96958315262347,12.712867266495564,0.7692307692306817,9,3,order_block_retest_long,1.248398624562227,SL,2025-02-13 11:45:00+00:00,-5.713754377731917,-1031.915108160614,135,False
|
||||
2025-02-13 15:00:00+00:00,8,GBP_USD,LONG,1.25058,1.2483212696581678,1.252981535612214,1.254277303418321,1.254277303418321,452287.7,5,OVERLAP,1.5,0.001295767806107029,39.05716517195158,62.96342902975745,1.2477175533034277,1.2450732701657392,23.75098904269679,False,0.00023017811654424148,85.44331884617651,26.724466965721838,0.7571428571428447,15,3,order_block_retest_long,1.25058,TP1+SL,2025-02-13 18:30:00+00:00,12.007678061070058,543.0925092581837,210,True
|
||||
2025-02-18 11:00:00+00:00,8,GBP_USD,LONG,1.2605400000000002,1.2593886277358495,1.2619591484276704,1.2627637226415054,1.2627637226415054,892002.45,5,LONDON,1.5,0.0008045742138351297,30.607208048935153,48.95731631995742,1.260606195375266,1.2590680755001311,-2.2740659569375765,False,-0.00013346633113002124,30.73067283593535,-2.5619537526599956,0.8829787234044262,11,1,order_block_retest_long,1.2593886277358495,SL,2025-02-18 12:15:00+00:00,-11.513722641507407,-1027.0268804845077,75,False
|
||||
2025-02-18 13:30:00+00:00,8,GBP_USD,LONG,1.2598300000000002,1.2594042680750746,1.2611448794995037,1.2618973192492555,1.2618973192492555,2388255.5,5,OVERLAP,1.5,0.0007524397497518295,24.996574345740935,46.785356587396834,1.2602352463740532,1.2591098426653864,-4.691727773975529,False,-5.292202501422491e-05,62.63449326409103,-5.9524637405306,0.6521739130437021,13,1,order_block_retest_long,1.2594042680750746,SL,2025-02-18 13:45:00+00:00,-4.2573192492567635,-1016.7566112293337,15,False
|
||||
2025-02-18 14:00:00+00:00,8,GBP_USD,LONG,1.2605100000000002,1.2593817005341204,1.2619753297725314,1.262802994658797,1.262802994658797,892129.33,5,OVERLAP,1.5,0.0008276648862656256,21.231541234515117,53.74009502256932,1.2601995642230301,1.259122772193559,2.651101806887546,False,3.812354488079634e-05,82.44274140922572,1.2043577696996266,0.730263157894756,14,1,order_block_retest_long,1.2605100000000002,TP1+SL,2025-02-18 16:45:00+00:00,7.326648862655549,653.6318340986157,165,True
|
||||
2025-03-28 09:15:00+00:00,8,GBP_USD,LONG,1.2949100000000002,1.2938994835849424,1.2961901094337167,1.296925164150575,1.296925164150575,1002581.8,5,LONDON,1.5,0.0007350547168583399,24.961002924520145,50.09906009469786,1.2946157175483293,1.2933809042338165,-1.5100220579311596,False,-1.7796324347916882e-05,31.075837742507275,1.0428245167082295,0.18421052631585866,9,4,order_block_retest_long,1.2938994835849424,SL,2025-03-28 10:45:00+00:00,-10.105164150577828,-1013.125366338179,90,False
|
||||
2025-03-28 16:15:00+00:00,8,GBP_USD,LONG,1.2947300000000002,1.2938032211457426,1.2966518590283813,1.2977077885425718,1.2977077885425718,1082236.72,5,OVERLAP,1.5,0.0010559295141906345,29.806889425109837,48.87858970804048,1.2946034576957266,1.2936569539321616,-2.1709510945577826,False,-8.893257477541881e-05,28.903654485050524,-0.6345769572657645,0.676470588235467,16,4,order_block_retest_long,1.2938032211457426,SL,2025-03-28 17:00:00+00:00,-9.26778854257515,-1002.9941073970111,45,False
|
||||
2025-04-29 08:15:00+00:00,8,GBP_USD,LONG,1.3425900000000002,1.3417277912302759,1.3444147251314953,1.345422087697243,1.345422087697243,1151651.67,5,LONDON,1.5,0.001007362565747635,23.448879557850997,55.98278969477211,1.3413145737352126,1.3368985113098952,6.225963849175731,False,0.00018832212096023027,80.65480073307857,10.854262647874702,0.8983050847458456,8,1,order_block_retest_long,1.3417277912302759,SL,2025-04-29 08:30:00+00:00,-8.622087697243153,-992.9641695416531,15,False
|
||||
2025-09-23 11:00:00+00:00,8,GBP_USD,SHORT,1.3510699999999998,1.352348109569772,1.3493392695348534,1.34837890430228,1.34837890430228,769131.65,5,LONDON,1.5,0.0009603652325732603,18.527140609522668,52.50995405776254,1.3509659563533851,1.3511426410867804,5.125306603559476,False,1.7955590843987803e-05,47.39716627721859,2.9404364661478333,0.21212121212106938,11,1,order_block_retest_short,1.352348109569772,SL,2025-09-23 12:45:00+00:00,-12.781095697722566,-983.0345222797259,105,False
|
||||
2025-09-23 13:30:00+00:00,8,GBP_USD,SHORT,1.35144,1.3523304322105039,1.3498271185966406,1.348925677894961,1.348925677894961,1092957.07,5,OVERLAP,1.5,0.0009014407016797055,28.621085204356604,51.85424880448976,1.3512452815855094,1.3512035944197989,4.245638161839427,False,0.00012402369854182547,46.1241520388657,3.8471841449072564,0.6220472440943161,13,1,order_block_retest_short,1.3523304322105039,SL,2025-09-23 14:15:00+00:00,-8.904322105038887,-973.2041798259535,45,False
|
||||
2025-09-23 15:15:00+00:00,8,GBP_USD,SHORT,1.3512,1.352352518843887,1.3494398743740872,1.3484648115611306,1.3484648115611306,835970.83,5,OVERLAP,1.5,0.0009750628129565047,14.531792544779664,48.10119297719565,1.3513983682422297,1.351248689260827,-0.15546186224124625,False,-1.858984620550013e-05,60.35129740519671,-0.08368242229606082,0.9499999999996808,15,1,order_block_retest_short,1.352352518843887,SL,2025-09-23 16:45:00+00:00,-11.525188438870071,-963.4721345148618,90,False
|
||||
2025-11-07 11:30:00+00:00,8,GBP_USD,SHORT,1.31134,1.312677689934505,1.3102120671033006,1.309553100654951,1.309553100654951,713048.21,5,LONDON,1.5,0.0006589664483497063,28.947200369303815,55.405300474563205,1.3113355009177095,1.309593476640256,7.658962541503556,False,0.00017318438208830967,78.9208558484841,1.944990822906334,0.09638554216878428,11,4,order_block_retest_short,1.312677689934505,SL,2025-11-07 12:00:00+00:00,-13.37689934505004,-953.8374133338104,30,False
|
||||
2025-11-07 12:15:00+00:00,8,GBP_USD,SHORT,1.31222,1.3126824310444998,1.311060459703335,1.3103856895550028,1.3103856895550028,2042032.12,5,LONDON,1.5,0.0006747701483324636,40.32938370984814,61.99124665500826,1.311451959408279,1.309675279691457,13.231795975916505,False,0.0003053314419751475,86.54409872377703,9.580405917211099,0.6046511627906256,12,4,order_block_retest_short,1.31222,TP1+SL,2025-11-07 13:00:00+00:00,5.797701483324369,1183.9092651120006,45,True
|
||||
2025-11-18 14:15:00+00:00,8,GBP_USD,LONG,1.3156800000000002,1.3147493620356634,1.3172275864289114,1.318096379643367,1.318096379643367,1027400.74,5,OVERLAP,1.5,0.0008687932144556389,20.169414535307315,54.05851174471317,1.3152266854353665,1.3156221120846152,3.501596141906038,False,0.00012574352104018186,71.7461081688361,2.633145646335766,0.7037037037038103,14,1,order_block_retest_long,1.3147493620356634,SL,2025-11-18 15:45:00+00:00,-9.30637964336789,-956.1381332317106,90,False
|
||||
2025-11-26 12:15:00+00:00,8,GBP_USD,LONG,1.3155200000000002,1.3147597228312242,1.3185985144585055,1.320232771687758,1.320232771687758,1245041.67,4,LONDON,1.5,0.0016342572292526614,45.734629650170305,43.12562598634748,1.3173516711000095,1.3148759397381775,-14.286202300348716,False,-0.00019862877186547047,32.159064877289765,-20.216711000093923,0.6917293233082669,12,2,order_block_retest_long,1.3147597228312242,SL,2025-11-26 12:30:00+00:00,-7.602771687760246,-946.5767558757734,15,False
|
||||
2025-12-04 13:15:00+00:00,8,GBP_USD,LONG,1.3339,1.332928403032527,1.3353206464498197,1.3361259696747299,1.3361259696747299,964505.88,5,OVERLAP,1.5,0.0008053232249099331,32.15385950013448,41.332027117944854,1.3342078271104736,1.3298869918749696,-9.59350743660714,False,-0.00018535728177609777,19.911912384751183,-4.978271104736365,0.20833333333344897,13,3,order_block_retest_long,1.332928403032527,SL,2025-12-04 13:30:00+00:00,-9.715969674730651,-937.1109881179401,15,False
|
||||
2025-12-04 13:30:00+00:00,8,GBP_USD,LONG,1.3336400000000002,1.3329062313873465,1.33520845741769,1.336087686126535,1.336087686126535,1264349.36,5,OVERLAP,1.5,0.0008792287088449424,36.12844519641167,39.319260594322266,1.3341781084002589,1.329922444692134,-10.96753521290239,False,-0.00023886255406293383,18.124639588484566,-7.281084002588312,0.15760869565211488,13,3,order_block_retest_long,1.336087686126535,TP3,2025-12-04 14:15:00+00:00,20.080717914715176,2538.904284381067,45,True
|
||||
|
@@ -0,0 +1,19 @@
|
||||
timestamp,strategy_id,pair,signal_direction,entry_price,sl_price,tp1_price,tp2_price,tp3_price,lot_size,confluence_score,session,spread_at_entry,atr_at_entry,adx_at_entry,rsi_at_entry,ema_50_value,ema_200_value,vwap_deviation,news_within_60min,macd_hist_at_entry,stoch_k_at_entry,distance_from_ema50_pips,candle_body_ratio,hour_of_day,day_of_week,entry_pattern,exit_price,exit_reason,exit_time,pnl_pips,pnl_dollars,hold_time_minutes,win
|
||||
2025-01-14 07:00:00+00:00,9,GBP_AUD,SHORT,1.96987,1.97597,1.96577,1.96137,1.96137,164164.31,5,ASIAN,2.0,0.0026659453534973207,51.10461378700829,33.57648527694198,1.9779937094858377,1.9903848137931874,-36.46601958007922,False,-8.0321024104134e-05,26.353957437154065,-78.2370948583777,0.4739229024943353,7,1,london_breakout_short,1.96987,TP1+SL,2025-01-14 16:00:00+00:00,20.49999999999996,336.53683549999937,540,True
|
||||
2025-01-15 09:00:00+00:00,9,GBP_AUD,SHORT,1.96823,1.97389,1.96389,1.9593099999999999,1.9593099999999999,177520.79,5,LONDON,2.0,0.002903707440105533,30.350007232130594,41.1314902314605,1.97317119590719,1.9858210797244493,-9.377681979998442,False,-3.830542848311713e-05,72.2338204592911,-47.01195907190092,0.4775086505190763,9,2,london_breakout_short,1.96823,TP1+SL,2025-01-16 03:00:00+00:00,21.70000000000005,385.22011430000094,1080,True
|
||||
2025-02-05 09:00:00+00:00,9,GBP_AUD,SHORT,1.99311,1.9982,1.98861,1.98387,1.98387,198157.14,5,LONDON,2.0,0.0024534323455596687,25.865604256394604,40.95523981131868,1.997511430129037,1.9924029812132957,9.72743077136684,False,-0.00012151129670664854,29.570175063381708,-41.61430129037136,0.6235632183908191,9,2,london_breakout_short,1.99311,TP1+SL,2025-02-06 03:00:00+00:00,22.49999999999974,445.85356499999494,1080,True
|
||||
2025-02-11 07:00:00+00:00,9,GBP_AUD,SHORT,1.96452,1.9698018328816747,1.9606899999999998,1.9565599999999996,1.9565599999999996,191804.32,5,ASIAN,2.0,0.0021061093560506127,54.08797868867474,25.070101126224785,1.9745538398106732,1.9836905020733688,-70.93642234271336,False,-0.00016217686601334175,5.7989669119669065,-97.33839810673217,0.8603351955307383,7,1,london_breakout_short,1.9698018328816747,SL,2025-02-11 09:00:00+00:00,-52.818328816746074,-1013.0783642232387,120,False
|
||||
2025-02-12 09:00:00+00:00,9,GBP_AUD,LONG,1.98255,1.9768852362913332,1.9867000000000001,1.9910900000000002,1.9910900000000002,177050.21,4,LONDON,2.0,0.002174197948933425,26.57333680167964,73.14799150558264,1.9756615951583436,1.9818330046117205,10.70416476106617,False,0.0005513519013618151,90.82225929014999,66.48404841656408,0.7219730941704683,9,2,london_breakout_long,1.9910900000000002,TP3,2025-02-13 07:00:00+00:00,63.45000482349202,1123.3836678500275,1320,True
|
||||
2025-02-13 07:00:00+00:00,9,GBP_AUD,LONG,1.99095,1.9853729973191263,1.99571,2.00077,2.00077,181850.63,5,ASIAN,2.0,0.002520029567181688,36.29520370028991,76.83222499407914,1.9799125089518954,1.981992646890817,83.63704613435496,False,0.0005064426948104901,77.40250668219456,107.37491048104619,0.62882653061227,7,3,london_breakout_long,1.9853729973191263,SL,2025-02-14 02:00:00+00:00,-55.77002680873687,-1014.1814510285692,1140,False
|
||||
2025-02-25 09:00:00+00:00,9,GBP_AUD,LONG,1.99364,1.988599417464172,1.99696,2.00052,2.00052,199191.19,5,LONDON,2.0,0.0019923592275933127,26.525749807902468,68.21487867430963,1.9866537121645187,1.9838619276218508,19.139198299911175,False,0.00023309550956027202,87.95608585980699,67.46287835481368,0.8703071672354833,9,1,london_breakout_long,2.00052,TP3,2025-02-25 15:00:00+00:00,51.00000345396683,1015.8751377999765,360,True
|
||||
2025-03-19 08:00:00+00:00,9,GBP_AUD,LONG,2.05049,2.044615411372999,2.05348,2.05671,2.05671,172641.6,5,LONDON,2.0,0.002433561490029042,26.17144305232752,74.37703117587992,2.042313506265227,2.0434247015321274,15.499999999999403,False,0.0005499548623005546,95.01082445046443,79.36493734773009,0.32704402515722275,8,2,london_breakout_long,2.044615411372999,SL,2025-03-19 19:00:00+00:00,-58.74588627000854,-1014.1983799072307,660,False
|
||||
2025-05-27 07:00:00+00:00,9,GBP_AUD,LONG,2.0980700000000003,2.091606123682184,2.1028300000000004,2.1078900000000007,2.1078900000000007,155333.48,5,ASIAN,2.0,0.002598725489474504,47.705141953816366,68.79747535133207,2.0888067527286065,2.0819229198478677,73.2656122544828,False,0.000390793983194367,56.06831151916049,89.63247271393637,0.8752886836027732,7,1,london_breakout_long,2.0980700000000003,TP1+SL,2025-05-27 15:00:00+00:00,23.800000000000487,369.6936824000076,480,True
|
||||
2025-08-21 09:00:00+00:00,9,GBP_AUD,LONG,2.0975599999999996,2.0915539565575547,2.10282,2.10832,2.10832,167789.88,5,LONDON,2.0,0.002304530421479691,32.864172451194136,64.29434027025471,2.0911470512437447,2.0799416207876167,10.06170820242236,False,0.00023592932069658947,75.27011432602625,61.72948756255181,0.6140350877192743,9,3,london_breakout_long,2.0915539565575547,SL,2025-08-21 13:00:00+00:00,-60.0604344244493,-1007.7533084826218,240,False
|
||||
2025-08-28 08:00:00+00:00,9,GBP_AUD,SHORT,2.07018,2.074584570821249,2.06763,2.06484,2.06484,226509.2,5,LONDON,2.0,0.001750412019321125,36.73987751642415,32.035738212757735,2.075144579740872,2.0786838619711268,-6.633333333336822,False,-0.0001978782408250775,23.735373537351837,-47.24579740872148,0.5157894736842384,8,3,london_breakout_short,2.07018,TP1+SL,2025-08-28 13:00:00+00:00,12.75000000000137,288.79923000003106,300,True
|
||||
2025-09-02 08:00:00+00:00,9,GBP_AUD,SHORT,2.05877,2.0644241383013617,2.0548499999999996,2.0506899999999995,2.0506899999999995,176961.32,5,LONDON,2.0,0.002288108511934481,34.19845750866452,29.171930418292916,2.066024310961001,2.0719680043939843,-1.266666666666083,False,-0.0007092029698850514,25.466925821668664,-70.14310961001246,0.3737113402062201,8,1,london_breakout_short,2.05877,TP1+SL,2025-09-02 12:00:00+00:00,19.600000000001835,346.84418720003254,240,True
|
||||
2025-09-11 07:00:00+00:00,9,GBP_AUD,SHORT,2.0435399999999997,2.04744,2.04034,2.03684,2.03684,257444.16,5,ASIAN,2.0,0.0019430727348773557,29.27763320024049,38.90974145803529,2.048468552126547,2.056280079897551,-20.888229542626036,False,0.00018338625559389372,28.497652582160374,-46.28552126547003,0.11920529801342812,7,3,london_breakout_short,2.04744,SL,2025-09-11 12:00:00+00:00,-39.000000000002366,-1004.032224000061,300,False
|
||||
2025-09-25 08:00:00+00:00,9,GBP_AUD,SHORT,2.03833,2.04263,2.03485,2.03113,2.03113,231160.91,5,LONDON,2.0,0.0021282061139955644,33.08148800831127,39.9469482378245,2.042660256857102,2.0454353392988183,-2.533333333332166,False,-6.383444543208176e-05,46.83780889454729,-40.90256857101959,0.5769230769232023,8,3,london_breakout_short,2.04263,SL,2025-09-25 13:00:00+00:00,-42.999999999997485,-993.9919129999419,300,False
|
||||
2025-10-08 07:00:00+00:00,9,GBP_AUD,LONG,2.04341,2.03838,2.04705,2.05099,2.05099,195636.58,5,ASIAN,2.0,0.0020194520011311426,26.80465547827146,64.99522203922425,2.0386935643265907,2.0391867512038773,41.37639764318024,False,0.000213947239409086,72.29200687074271,44.164356734093246,0.7990196078431309,7,2,london_breakout_long,2.03838,SL,2025-10-08 12:00:00+00:00,-50.30000000000089,-984.0519974000175,300,False
|
||||
2025-11-12 09:00:00+00:00,9,GBP_AUD,SHORT,2.0072300000000003,2.0140649478936967,2.00156,1.99565,1.99565,142533.85,5,LONDON,2.0,0.002713123503373028,42.95629698115229,33.01078285195048,2.0148833151345658,2.016775043875889,0.1268471901916257,False,-0.0008107269993824886,20.886938679890367,-74.13315134565667,0.6260162601626534,9,2,london_breakout_short,2.0072300000000003,TP1+SL,2025-11-13 12:00:00+00:00,28.350000000001426,404.08346475002037,1620,True
|
||||
2025-11-25 09:00:00+00:00,9,GBP_AUD,LONG,2.0338399999999996,2.027999896784358,2.03796,2.04232,2.04232,167506.0,5,LONDON,2.0,0.0022436097658097027,38.459508674616266,64.99671055358925,2.0283593290893607,2.0231659737418064,9.206545216335904,False,0.0005863322424012519,82.41714556384893,52.40670910639178,0.7423580786026667,9,1,london_breakout_long,2.04232,TP3,2025-11-25 14:00:00+00:00,63.00000506250937,1055.2878848000696,300,True
|
||||
2025-12-17 08:00:00+00:00,9,GBP_AUD,SHORT,2.0125200000000003,2.0204319222021234,2.0060900000000004,1.9994200000000006,1.9994200000000006,124976.61,5,LONDON,2.0,0.0030224282465028947,33.91969680759084,32.63828226785574,2.0181420202874225,2.013926670132273,-1.9999999999997797,False,-0.00147787377451206,8.855824114285872,-53.820202874224066,0.2603305785122814,8,2,london_breakout_short,2.0204319222021234,SL,2025-12-17 15:00:00+00:00,-79.11922202123111,-988.8052154050813,420,False
|
||||
|
@@ -0,0 +1,91 @@
|
||||
timestamp,strategy_id,pair,signal_direction,entry_price,sl_price,tp1_price,tp2_price,tp3_price,lot_size,confluence_score,session,spread_at_entry,atr_at_entry,adx_at_entry,rsi_at_entry,ema_50_value,ema_200_value,vwap_deviation,news_within_60min,macd_hist_at_entry,stoch_k_at_entry,distance_from_ema50_pips,candle_body_ratio,hour_of_day,day_of_week,entry_pattern,exit_price,exit_reason,exit_time,pnl_pips,pnl_dollars,hold_time_minutes,win
|
||||
2025-01-06 08:00:00+00:00,7,GBP_JPY,LONG,196.795,196.03562464338182,197.20456303492728,197.64312606985453,197.64312606985453,1326.04,3,LONDON,2.5,0.2923753566181812,45.050221339210545,77.80688335793323,195.71885313944267,196.23361299221412,13.56666666666797,False,0.10862603334152274,76.13264615568745,104.71468605573193,0.9339019189765324,8,0,liquidity_sweep_bullish,196.795,TP1+SL,2025-01-06 12:00:00+00:00,20.4781517463644,271.5484834174905,240,True
|
||||
2025-01-20 08:00:00+00:00,7,GBP_JPY,SHORT,190.368,191.00814705018644,189.90477942472035,189.4125588494407,189.4125588494407,1577.26,4,LONDON,2.5,0.3281470501864324,25.298907150137687,53.43629606532976,190.37008387714386,192.17198916859877,-6.30000000000166,False,0.05233286983744043,67.03372468460755,2.691612285613587,0.3952254641909738,8,0,liquidity_sweep_bearish,191.00814705018644,SL,2025-01-20 13:00:00+00:00,-64.01470501864424,-1009.678336377068,300,False
|
||||
2025-01-23 16:00:00+00:00,7,GBP_JPY,LONG,192.63,191.9914763841423,193.0067854237866,193.41257084757316,193.41257084757316,1565.46,5,OVERLAP,2.5,0.2705236158577244,18.66356085986309,51.093857506184456,192.3279797181537,192.11847936562066,4.843352747684548,False,-0.04679460852219795,45.385416158364286,27.30202818462999,0.39000000000000923,16,3,liquidity_sweep_bullish,193.41257084757316,TP3,2025-01-24 02:00:00+00:00,57.968313466323494,907.4707599899078,600,True
|
||||
2025-02-18 14:00:00+00:00,7,GBP_JPY,LONG,191.401,190.61660095897497,191.83309856153755,192.2941971230751,192.2941971230751,1285.89,4,OVERLAP,2.5,0.30739904102502896,21.4599980182721,51.8930443330576,191.32376083769176,191.00195076638033,8.437271970993265,False,-0.02846848606283359,34.04542331279312,4.823916230824921,0.7325102880659059,14,1,liquidity_sweep_bullish,191.401,TP1+SL,2025-02-19 01:00:00+00:00,21.60492807687717,277.8156096477559,660,True
|
||||
2025-02-26 16:00:00+00:00,7,GBP_JPY,SHORT,189.275,190.21298715589526,188.7235192661571,188.14303853231416,188.14303853231416,1078.3,4,OVERLAP,2.5,0.3869871558952756,22.133066874265946,54.18003728061299,189.11118565385374,189.7835561346014,2.4538497016692418,False,0.06168790896406007,70.7215119032236,19.28143461462639,0.8388278388278478,16,2,liquidity_sweep_bearish,189.275,TP1+SL,2025-02-27 08:00:00+00:00,27.574036692145402,297.33083765140384,960,True
|
||||
2025-03-06 15:00:00+00:00,7,GBP_JPY,LONG,191.106,189.7752292340628,191.85065614890576,192.62431229781154,192.62431229781154,762.27,4,OVERLAP,2.5,0.5157707659371802,46.93199444636843,48.41002242969856,191.0828601212273,190.28532328403827,53.69696397433188,False,-0.1501054792100494,58.621741402055534,-0.5860121227300397,0.7652947719688403,15,3,liquidity_sweep_bullish,189.7752292340628,SL,2025-03-07 17:00:00+00:00,-133.07707659371886,-1014.4066317509407,1560,False
|
||||
2025-03-13 09:00:00+00:00,7,GBP_JPY,LONG,192.018,190.96996870844208,192.58154693733692,193.17409387467382,193.17409387467382,958.24,4,LONDON,2.5,0.39503129155793953,34.48310138818815,53.6518517301343,191.57661097842632,190.80803703314126,41.22496199382795,False,-0.0869180645672551,57.10849783778287,41.238902157368784,0.7356143079315904,9,3,liquidity_sweep_bullish,190.96996870844208,SL,2025-03-13 17:00:00+00:00,-104.80312915579191,-1004.2655048224603,480,False
|
||||
2025-03-21 08:00:00+00:00,7,GBP_JPY,LONG,193.465,192.60699022054078,193.94301466918884,194.45002933837765,194.45002933837765,1158.75,4,LONDON,2.5,0.3380097794592138,19.55413013900674,57.59345719786689,193.21326929977846,192.64402368080886,14.099999999999113,False,0.07378067080985559,64.68349606404871,22.273070022154684,0.5474060822898265,8,4,liquidity_sweep_bullish,192.60699022054078,SL,2025-03-21 12:00:00+00:00,-85.80097794592234,-994.2188319483752,240,False
|
||||
2025-04-10 13:00:00+00:00,7,GBP_JPY,SHORT,187.113,188.6969894079523,186.14001588807156,185.13803177614312,185.13803177614312,621.39,3,OVERLAP,2.5,0.6679894079522872,22.675582678106778,42.105428917197436,187.7886506113008,189.6986960361379,-81.28752132374188,False,-0.18187732366884368,22.821017680266227,-64.66506113007995,0.861365953109076,13,3,liquidity_sweep_bearish,187.113,TP1+SL,2025-04-11 06:00:00+00:00,48.649205596422014,302.30129865560673,1020,True
|
||||
2025-05-07 12:00:00+00:00,7,GBP_JPY,LONG,191.644,191.03785831575223,192.06071252637167,192.50642505274334,192.50642505274334,1628.83,3,LONDON,2.5,0.2971416842477794,30.04581062738892,64.51742125633898,191.14319599460813,191.06214272652716,32.78067002964917,False,0.07921229071340095,76.64342719685682,47.18040053918742,0.7922535211268634,12,2,liquidity_sweep_bullish,191.03785831575223,SL,2025-05-07 18:00:00+00:00,-60.614168424777404,-987.3017595533017,360,False
|
||||
2025-09-25 14:00:00+00:00,7,GBP_JPY,SHORT,199.696,200.1487560194459,199.40736597083117,199.08973194166234,199.08973194166234,2158.84,4,OVERLAP,2.5,0.21175601944588426,31.759483416022125,41.53198926024545,199.90856344598103,199.8488025993896,-11.70593311110224,False,-0.06154447825391013,28.71972318339205,-18.356344598103647,0.2895927601809588,14,3,liquidity_sweep_bearish,200.1487560194459,SL,2025-09-26 07:00:00+00:00,-45.27560194458999,-977.4278050205867,1020,False
|
||||
2025-10-09 11:00:00+00:00,7,GBP_JPY,LONG,204.387,203.68883656502143,204.80824515246786,205.25849030493572,205.25849030493572,1386.0,3,LONDON,2.5,0.3001634349785676,26.47777521556377,50.07149501573136,203.95657599082438,201.64379957839563,15.37902553312449,False,-0.0784209891394244,40.970714071725496,40.14240091756278,0.6354679802955814,11,3,liquidity_sweep_bullish,203.68883656502143,SL,2025-10-09 15:00:00+00:00,-69.81634349785679,-967.6545208802952,240,False
|
||||
2025-11-24 12:00:00+00:00,7,GBP_JPY,LONG,205.68699999999998,204.982931102766,206.10210334585096,206.54620669170194,206.54620669170194,1360.63,3,LONDON,2.5,0.29606889723398366,28.937655011938737,60.26378817556637,205.24125319483898,204.39473049527857,32.74583855999822,False,0.059839510918221234,55.56168461605938,41.67468051610115,0.8740554156170971,12,0,liquidity_sweep_bullish,205.77,TIME,2025-11-26 04:00:00+00:00,8.300000000002683,112.93229000003652,2400,True
|
||||
2025-12-03 09:00:00+00:00,7,GBP_JPY,LONG,206.666,206.0605009907832,206.98874851382521,207.3404970276504,207.3404970276504,1583.99,4,LONDON,2.5,0.23449900921680372,28.344594479891004,72.17672370547221,205.9594723013251,205.7422457337999,19.86240915854296,False,0.06360367716976709,90.23947202070583,67.75276986749077,0.585858585858562,9,2,liquidity_sweep_bullish,207.3404970276504,TP3,2025-12-03 21:00:00+00:00,49.86270289529991,789.8202275912611,720,True
|
||||
2025-12-23 09:00:00+00:00,7,GBP_JPY,LONG,210.611,210.04134466889494,210.9699829966576,211.3579659933152,211.3579659933152,1697.52,4,LONDON,2.5,0.25865533110506334,41.48957497418431,42.89300280553006,210.52938837174582,209.04430568410808,-0.17577004943234442,False,-0.0806279410814187,67.69704779631962,5.261162825416932,0.16155988857937573,9,1,liquidity_sweep_bullish,210.611,TP1+SL,2025-12-23 15:00:00+00:00,17.949149832880096,304.6904082431062,360,True
|
||||
2025-12-24 15:00:00+00:00,7,GBP_JPY,LONG,210.406,209.77845579590925,210.77381630613615,211.1706326122723,211.1706326122723,1545.79,4,OVERLAP,2.5,0.2645442040907657,23.160935773629824,42.92575626793039,210.59786209934424,209.46187458014302,-11.337377135691895,False,-0.027031930118123687,38.270999947637016,-22.086209934423096,0.5810810810811182,15,2,liquidity_sweep_bullish,210.406,TP1+SL,2025-12-25 07:00:00+00:00,18.39081530680744,284.28338393109874,960,True
|
||||
2025-12-30 08:00:00+00:00,7,GBP_JPY,LONG,210.74,210.31343409461678,211.04934885807484,211.38769771614963,211.38769771614963,2280.76,3,LONDON,2.5,0.22556590538320787,27.79658816044497,44.176618763832884,210.85847556356012,210.1984761267166,3.5666666666656965,False,-0.005321844175906129,28.660863172250515,-14.747556356010705,0.21940928270048873,8,1,liquidity_sweep_bullish,210.31343409461678,SL,2025-12-30 22:00:00+00:00,-42.656590538322796,-972.8944543618512,840,False
|
||||
2025-12-31 09:00:00+00:00,7,GBP_JPY,LONG,210.492,210.0619801216865,210.76002981747024,211.0570596349405,211.0570596349405,2239.81,3,LONDON,2.5,0.1980198783134948,28.740310445169715,42.19993800482815,210.70362349428802,210.29074875948643,1.797318301254336,False,-0.0119967564523158,24.784612302144044,-24.06234942880303,0.5445544554455232,9,2,liquidity_sweep_bullish,211.0570596349405,TP3,2025-12-31 13:00:00+00:00,41.65472490070168,932.9866937984063,240,True
|
||||
2025-01-14 07:00:00+00:00,9,GBP_AUD,SHORT,1.96987,1.97597,1.96577,1.96137,1.96137,164164.31,5,ASIAN,2.0,0.0026659453534973207,51.10461378700829,33.57648527694198,1.9779937094858377,1.9903848137931874,-36.46601958007922,False,-8.0321024104134e-05,26.353957437154065,-78.2370948583777,0.4739229024943353,7,1,london_breakout_short,1.96987,TP1+SL,2025-01-14 16:00:00+00:00,20.49999999999996,336.53683549999937,540,True
|
||||
2025-01-15 09:00:00+00:00,9,GBP_AUD,SHORT,1.96823,1.97389,1.96389,1.9593099999999999,1.9593099999999999,177520.79,5,LONDON,2.0,0.002903707440105533,30.350007232130594,41.1314902314605,1.97317119590719,1.9858210797244493,-9.377681979998442,False,-3.830542848311713e-05,72.2338204592911,-47.01195907190092,0.4775086505190763,9,2,london_breakout_short,1.96823,TP1+SL,2025-01-16 03:00:00+00:00,21.70000000000005,385.22011430000094,1080,True
|
||||
2025-02-05 09:00:00+00:00,9,GBP_AUD,SHORT,1.99311,1.9982,1.98861,1.98387,1.98387,198157.14,5,LONDON,2.0,0.0024534323455596687,25.865604256394604,40.95523981131868,1.997511430129037,1.9924029812132957,9.72743077136684,False,-0.00012151129670664854,29.570175063381708,-41.61430129037136,0.6235632183908191,9,2,london_breakout_short,1.99311,TP1+SL,2025-02-06 03:00:00+00:00,22.49999999999974,445.85356499999494,1080,True
|
||||
2025-02-11 07:00:00+00:00,9,GBP_AUD,SHORT,1.96452,1.9698018328816747,1.9606899999999998,1.9565599999999996,1.9565599999999996,191804.32,5,ASIAN,2.0,0.0021061093560506127,54.08797868867474,25.070101126224785,1.9745538398106732,1.9836905020733688,-70.93642234271336,False,-0.00016217686601334175,5.7989669119669065,-97.33839810673217,0.8603351955307383,7,1,london_breakout_short,1.9698018328816747,SL,2025-02-11 09:00:00+00:00,-52.818328816746074,-1013.0783642232387,120,False
|
||||
2025-02-12 09:00:00+00:00,9,GBP_AUD,LONG,1.98255,1.9768852362913332,1.9867000000000001,1.9910900000000002,1.9910900000000002,177050.21,4,LONDON,2.0,0.002174197948933425,26.57333680167964,73.14799150558264,1.9756615951583436,1.9818330046117205,10.70416476106617,False,0.0005513519013618151,90.82225929014999,66.48404841656408,0.7219730941704683,9,2,london_breakout_long,1.9910900000000002,TP3,2025-02-13 07:00:00+00:00,63.45000482349202,1123.3836678500275,1320,True
|
||||
2025-02-13 07:00:00+00:00,9,GBP_AUD,LONG,1.99095,1.9853729973191263,1.99571,2.00077,2.00077,181850.63,5,ASIAN,2.0,0.002520029567181688,36.29520370028991,76.83222499407914,1.9799125089518954,1.981992646890817,83.63704613435496,False,0.0005064426948104901,77.40250668219456,107.37491048104619,0.62882653061227,7,3,london_breakout_long,1.9853729973191263,SL,2025-02-14 02:00:00+00:00,-55.77002680873687,-1014.1814510285692,1140,False
|
||||
2025-02-25 09:00:00+00:00,9,GBP_AUD,LONG,1.99364,1.988599417464172,1.99696,2.00052,2.00052,199191.19,5,LONDON,2.0,0.0019923592275933127,26.525749807902468,68.21487867430963,1.9866537121645187,1.9838619276218508,19.139198299911175,False,0.00023309550956027202,87.95608585980699,67.46287835481368,0.8703071672354833,9,1,london_breakout_long,2.00052,TP3,2025-02-25 15:00:00+00:00,51.00000345396683,1015.8751377999765,360,True
|
||||
2025-03-19 08:00:00+00:00,9,GBP_AUD,LONG,2.05049,2.044615411372999,2.05348,2.05671,2.05671,172641.6,5,LONDON,2.0,0.002433561490029042,26.17144305232752,74.37703117587992,2.042313506265227,2.0434247015321274,15.499999999999403,False,0.0005499548623005546,95.01082445046443,79.36493734773009,0.32704402515722275,8,2,london_breakout_long,2.044615411372999,SL,2025-03-19 19:00:00+00:00,-58.74588627000854,-1014.1983799072307,660,False
|
||||
2025-05-27 07:00:00+00:00,9,GBP_AUD,LONG,2.0980700000000003,2.091606123682184,2.1028300000000004,2.1078900000000007,2.1078900000000007,155333.48,5,ASIAN,2.0,0.002598725489474504,47.705141953816366,68.79747535133207,2.0888067527286065,2.0819229198478677,73.2656122544828,False,0.000390793983194367,56.06831151916049,89.63247271393637,0.8752886836027732,7,1,london_breakout_long,2.0980700000000003,TP1+SL,2025-05-27 15:00:00+00:00,23.800000000000487,369.6936824000076,480,True
|
||||
2025-08-21 09:00:00+00:00,9,GBP_AUD,LONG,2.0975599999999996,2.0915539565575547,2.10282,2.10832,2.10832,167789.88,5,LONDON,2.0,0.002304530421479691,32.864172451194136,64.29434027025471,2.0911470512437447,2.0799416207876167,10.06170820242236,False,0.00023592932069658947,75.27011432602625,61.72948756255181,0.6140350877192743,9,3,london_breakout_long,2.0915539565575547,SL,2025-08-21 13:00:00+00:00,-60.0604344244493,-1007.7533084826218,240,False
|
||||
2025-08-28 08:00:00+00:00,9,GBP_AUD,SHORT,2.07018,2.074584570821249,2.06763,2.06484,2.06484,226509.2,5,LONDON,2.0,0.001750412019321125,36.73987751642415,32.035738212757735,2.075144579740872,2.0786838619711268,-6.633333333336822,False,-0.0001978782408250775,23.735373537351837,-47.24579740872148,0.5157894736842384,8,3,london_breakout_short,2.07018,TP1+SL,2025-08-28 13:00:00+00:00,12.75000000000137,288.79923000003106,300,True
|
||||
2025-09-02 08:00:00+00:00,9,GBP_AUD,SHORT,2.05877,2.0644241383013617,2.0548499999999996,2.0506899999999995,2.0506899999999995,176961.32,5,LONDON,2.0,0.002288108511934481,34.19845750866452,29.171930418292916,2.066024310961001,2.0719680043939843,-1.266666666666083,False,-0.0007092029698850514,25.466925821668664,-70.14310961001246,0.3737113402062201,8,1,london_breakout_short,2.05877,TP1+SL,2025-09-02 12:00:00+00:00,19.600000000001835,346.84418720003254,240,True
|
||||
2025-09-11 07:00:00+00:00,9,GBP_AUD,SHORT,2.0435399999999997,2.04744,2.04034,2.03684,2.03684,257444.16,5,ASIAN,2.0,0.0019430727348773557,29.27763320024049,38.90974145803529,2.048468552126547,2.056280079897551,-20.888229542626036,False,0.00018338625559389372,28.497652582160374,-46.28552126547003,0.11920529801342812,7,3,london_breakout_short,2.04744,SL,2025-09-11 12:00:00+00:00,-39.000000000002366,-1004.032224000061,300,False
|
||||
2025-09-25 08:00:00+00:00,9,GBP_AUD,SHORT,2.03833,2.04263,2.03485,2.03113,2.03113,231160.91,5,LONDON,2.0,0.0021282061139955644,33.08148800831127,39.9469482378245,2.042660256857102,2.0454353392988183,-2.533333333332166,False,-6.383444543208176e-05,46.83780889454729,-40.90256857101959,0.5769230769232023,8,3,london_breakout_short,2.04263,SL,2025-09-25 13:00:00+00:00,-42.999999999997485,-993.9919129999419,300,False
|
||||
2025-10-08 07:00:00+00:00,9,GBP_AUD,LONG,2.04341,2.03838,2.04705,2.05099,2.05099,195636.58,5,ASIAN,2.0,0.0020194520011311426,26.80465547827146,64.99522203922425,2.0386935643265907,2.0391867512038773,41.37639764318024,False,0.000213947239409086,72.29200687074271,44.164356734093246,0.7990196078431309,7,2,london_breakout_long,2.03838,SL,2025-10-08 12:00:00+00:00,-50.30000000000089,-984.0519974000175,300,False
|
||||
2025-11-12 09:00:00+00:00,9,GBP_AUD,SHORT,2.0072300000000003,2.0140649478936967,2.00156,1.99565,1.99565,142533.85,5,LONDON,2.0,0.002713123503373028,42.95629698115229,33.01078285195048,2.0148833151345658,2.016775043875889,0.1268471901916257,False,-0.0008107269993824886,20.886938679890367,-74.13315134565667,0.6260162601626534,9,2,london_breakout_short,2.0072300000000003,TP1+SL,2025-11-13 12:00:00+00:00,28.350000000001426,404.08346475002037,1620,True
|
||||
2025-11-25 09:00:00+00:00,9,GBP_AUD,LONG,2.0338399999999996,2.027999896784358,2.03796,2.04232,2.04232,167506.0,5,LONDON,2.0,0.0022436097658097027,38.459508674616266,64.99671055358925,2.0283593290893607,2.0231659737418064,9.206545216335904,False,0.0005863322424012519,82.41714556384893,52.40670910639178,0.7423580786026667,9,1,london_breakout_long,2.04232,TP3,2025-11-25 14:00:00+00:00,63.00000506250937,1055.2878848000696,300,True
|
||||
2025-12-17 08:00:00+00:00,9,GBP_AUD,SHORT,2.0125200000000003,2.0204319222021234,2.0060900000000004,1.9994200000000006,1.9994200000000006,124976.61,5,LONDON,2.0,0.0030224282465028947,33.91969680759084,32.63828226785574,2.0181420202874225,2.013926670132273,-1.9999999999997797,False,-0.00147787377451206,8.855824114285872,-53.820202874224066,0.2603305785122814,8,2,london_breakout_short,2.0204319222021234,SL,2025-12-17 15:00:00+00:00,-79.11922202123111,-988.8052154050813,420,False
|
||||
2025-01-02 13:00:00+00:00,3,GBP_JPY,SHORT,194.497,194.98438307256333,193.84185078231008,193.38575130385013,192.70160208616022,1979.34,5,OVERLAP,2.5,0.4560994784599478,53.23697312740748,25.584911052554403,196.64761627313277,196.71736396264131,-91.60168368109396,False,-0.21127471707582773,15.097389036726605,-212.16162731327586,0.7547169811320885,13,3,key_level_break,194.98438307256333,SL,2025-01-02 16:00:00+00:00,-48.73830725633184,-964.6968108474786,180,False
|
||||
2025-01-10 14:00:00+00:00,3,GBP_JPY,SHORT,193.326,193.7494785203664,192.6760644389007,192.22344073150117,191.5445051704019,2255.25,5,OVERLAP,2.5,0.45262370739952645,38.95561719942836,33.86544229081126,194.82731880126565,195.86690709305736,-65.81650341895511,False,-0.04922672962035998,40.5053411064868,-147.23188012656578,0.7123115577889354,14,4,key_level_break,191.5445051704019,TP3,2025-01-13 03:00:00+00:00,105.7296897758863,2384.468828670676,3660,True
|
||||
2025-01-15 14:00:00+00:00,3,GBP_JPY,SHORT,191.684,192.5355808996434,191.05640015821268,190.61866693035446,189.96206708856715,1149.5,5,OVERLAP,2.5,0.4377332278582107,39.08655852417394,42.44381925580649,192.305609092027,193.93147797889625,-15.601164374157861,False,-0.05266014396619048,57.517099250059495,-59.26090920270042,0.8589562764457412,14,2,key_level_break,189.96206708856715,TP3,2025-01-16 02:00:00+00:00,102.15597468597082,1174.2829290152347,720,True
|
||||
2025-01-16 13:00:00+00:00,3,GBP_JPY,SHORT,190.121,190.48273843390464,189.53398469828616,189.12330783047693,188.50729252876312,2738.55,5,OVERLAP,2.5,0.4106768678092243,35.357876072374715,37.267574188200975,191.32080681058747,193.27965894755692,-5.978630270192298,False,-0.005761267357707378,47.62532981530526,-117.08068105874645,0.5643340857787656,13,3,key_level_break,190.48273843390464,SL,2025-01-16 14:00:00+00:00,-36.17384339046339,-990.6387881695352,60,False
|
||||
2025-01-24 14:00:00+00:00,3,GBP_JPY,LONG,194.435,193.7414257343567,195.09772279692987,195.55887132821647,196.25059412514634,1414.02,4,OVERLAP,2.5,0.4611485312865839,35.210979018501284,71.5768836064153,192.83189299725,192.3137179355624,78.83496325360397,False,0.16366671314045877,93.07563527837654,157.41070027499973,0.6077057793345177,14,4,key_level_break,193.7414257343567,SL,2025-01-27 00:00:00+00:00,-69.35742656432922,-980.727883104928,3480,False
|
||||
2025-02-05 15:00:00+00:00,3,GBP_JPY,SHORT,190.40800000000002,191.365121240855,189.756636277435,189.30306046239167,188.62269673982667,1014.42,5,OVERLAP,2.5,0.45357581504334,37.0766631656943,28.591132666787416,191.87502906266835,192.2470668376155,-83.71675860483379,False,-0.057439498137697775,29.003530032027246,-143.80290626683347,0.815648445873528,15,2,key_level_break,188.62269673982667,TP3,2025-02-06 12:00:00+00:00,105.95819561040116,1074.8611279110314,1260,True
|
||||
2025-02-21 14:00:00+00:00,3,GBP_JPY,SHORT,189.529,190.03210189281828,188.96719432154512,188.57332386924188,187.98251819078698,1951.24,4,OVERLAP,2.5,0.393870452303251,25.37110924847192,41.66245176977919,190.13341884916542,190.63185283680852,-62.080102935590276,False,-0.04347769886035274,30.296925529481314,-57.54188491654304,0.8506329113924099,14,4,key_level_break,188.95046974789906,TP1+TP2+SL,2025-02-23 23:00:00+00:00,72.26987741053847,1410.1587559853908,3420,True
|
||||
2025-03-12 12:00:00+00:00,3,GBP_JPY,LONG,193.04,192.30577528273506,193.70000748512817,194.15934580854696,194.84835329367513,1356.23,4,LONDON,2.5,0.45933832341878533,44.8237062015922,75.68273202405237,191.09851162254492,190.53276109434807,61.19302513729963,False,0.09335510950043424,86.70092908715687,191.24883774550767,0.6380208333333446,12,2,key_level_break,192.30577528273506,SL,2025-03-12 13:00:00+00:00,-73.42247172649365,-995.7775882962248,60,False
|
||||
2025-03-17 12:00:00+00:00,3,GBP_JPY,LONG,193.069,192.49210171162414,193.60069486512756,193.97449144187928,194.53518630700685,1708.82,5,LONDON,2.5,0.3737965767517135,20.702241997285892,66.16853350006848,192.18451043243147,191.33195391746656,35.24717288279646,False,0.031617572507774305,59.971167102327364,85.54895675685259,0.6022443890274422,12,0,key_level_break,194.53518630700685,TP3,2025-03-18 07:00:00+00:00,86.81117842041202,1483.4467790836848,1140,True
|
||||
2025-04-01 11:00:00+00:00,3,GBP_JPY,SHORT,192.294,192.82981145377798,191.699190638666,191.28331773111,190.65950836977598,1867.54,4,LONDON,2.5,0.4158729075560048,21.238453476934822,32.06595400189933,193.64223469017827,193.75382938222035,-70.84659242934492,False,-0.0958450162681939,20.394408011251898,-131.92346901782628,0.8409090909091119,11,1,key_level_break,192.82981145377798,SL,2025-04-01 13:00:00+00:00,-53.5811453777967,-1000.6493223885045,120,False
|
||||
2025-04-03 12:00:00+00:00,3,GBP_JPY,SHORT,191.928,192.64626960621501,191.07452451468836,190.48620752448062,189.60373203916902,1379.21,4,LONDON,2.5,0.5883169902077462,31.64199341633001,35.125989686055135,193.26838281307124,193.57390896517083,-83.48143394310057,False,-0.08721327615007979,14.818278035185685,-131.13828130712477,0.5105140186916058,12,3,key_level_break,189.60373203916902,TP3,2025-04-04 10:00:00+00:00,138.29607764986005,1907.393332554635,1320,True
|
||||
2025-04-08 14:00:00+00:00,3,GBP_JPY,SHORT,187.91,188.63083883373105,186.91760849880683,186.2366808313447,185.21528933015153,1400.75,4,OVERLAP,2.5,0.6809276674621171,28.930013206360904,47.46077070596699,188.62995989716217,191.10662056541338,10.755495988894381,False,-0.0023966979134897037,62.02546554790512,-69.09598971621733,0.5141987829614707,14,1,key_level_break,186.95191160126862,TP1+TP2+SL,2025-04-09 01:00:00+00:00,125.79019476856617,1762.0061532206905,660,True
|
||||
2025-05-13 12:00:00+00:00,3,GBP_JPY,LONG,196.01,195.6190644549294,196.40180663521178,196.68234439201962,197.1031510272314,2627.9,4,LONDON,2.5,0.28053775680785176,38.807915943812134,69.6859185053641,194.64227274492103,192.7793750609354,36.11116818764515,False,0.016342516742202773,88.18678049574855,133.87272550789646,0.608108108108083,12,1,key_level_break,195.6190644549294,SL,2025-05-13 13:00:00+00:00,-39.09355450705903,-1027.3395188910042,60,False
|
||||
2025-05-13 14:00:00+00:00,3,GBP_JPY,LONG,196.058,195.60318567797484,196.49744296607545,196.80973827679244,197.2781812428679,2236.22,4,OVERLAP,2.5,0.3122953107169743,40.05359194386566,65.34169001065715,194.73251321051725,192.8394371869039,33.840990569945006,False,0.025155391240539393,72.32001479764033,129.6486789482742,0.8932238193018623,14,1,key_level_break,195.60318567797484,SL,2025-05-14 04:00:00+00:00,-45.48143220251575,-1017.0648831990976,840,False
|
||||
2025-05-20 14:00:00+00:00,3,GBP_JPY,SHORT,193.229,193.60457105757715,192.8329118272686,192.54951971211432,192.12443153938293,2680.97,4,OVERLAP,2.5,0.2833921151542737,23.184969277480825,46.27056158522468,193.4905849278543,193.51749423374523,0.1945930788252781,False,-0.008528704790559546,57.00972555289216,-23.25849278542762,0.7781818181817971,14,1,key_level_break,193.60457105757715,SL,2025-05-20 16:00:00+00:00,-37.557105757713316,-1006.8947382325666,120,False
|
||||
2025-05-23 13:00:00+00:00,3,GBP_JPY,SHORT,192.46800000000002,192.85036911612343,191.93339265162982,191.55765441938303,190.99404707101286,2606.97,4,OVERLAP,2.5,0.37573823224678926,34.201849808097535,41.98970011088173,192.9670361178132,193.2292748311599,-27.41814198580812,False,-0.06866208982446759,31.30562317009658,-47.003611781318,0.6403061224489259,13,4,key_level_break,192.85036911612343,SL,2025-05-23 16:00:00+00:00,-38.23691161234137,-996.8248146602558,180,False
|
||||
2025-06-05 14:00:00+00:00,3,GBP_JPY,LONG,195.007,194.5958173733494,195.47579787995178,195.80766313325296,196.30546101320473,2400.05,4,OVERLAP,2.5,0.3318652533011814,49.31009875592514,69.98015372886118,194.1207308633276,194.01335008379831,39.0768205082594,False,0.13009248094344875,68.92088292288908,85.72691366724143,0.7970204841713502,14,3,key_level_break,195.007,TP1+SL,2025-06-05 17:00:00+00:00,18.751915198071174,450.0553407113073,180,True
|
||||
2025-06-06 12:00:00+00:00,3,GBP_JPY,LONG,195.787,195.17899431133128,196.19601706600622,196.4880284433437,196.9260455093499,1630.51,5,LONDON,2.5,0.29201137733747584,33.92620529336979,69.52672082231129,194.7152106319891,194.23149251382875,42.63092402857467,False,0.01870868440868262,94.85791834694639,104.2789368010915,0.6704180064308861,12,4,key_level_break,195.787,TP1+SL,2025-06-10 05:00:00+00:00,16.360682640248573,266.762566517517,5340,True
|
||||
2025-06-13 14:00:00+00:00,3,GBP_JPY,LONG,195.67,195.15743499729416,196.23902834145088,196.63771390241814,197.23574224386905,1939.32,4,OVERLAP,2.5,0.3986855609672636,27.31081836738945,60.64249109971264,195.15013520488617,195.06423605960205,42.14309237741247,False,0.12031382579923301,68.22167027966398,49.08647951138221,0.8216463414633878,14,4,key_level_break,195.15743499729416,SL,2025-06-13 18:00:00+00:00,-51.256500270582706,-994.0275610474645,240,False
|
||||
2025-06-20 11:00:00+00:00,3,GBP_JPY,LONG,196.536,196.0945227368836,196.91093178934918,197.1802196489153,197.58415143826448,2229.07,4,LONDON,2.5,0.2692878595661198,22.156552735049925,67.43644425450441,195.60580202448418,195.38159334021114,32.363239947252964,False,0.014633608046707047,86.86021199183216,90.11979755158279,0.7329192546584361,11,4,key_level_break,197.58415143826448,TP3,2025-06-23 05:00:00+00:00,61.72908629586914,1375.9845438953303,3960,True
|
||||
2025-06-30 14:00:00+00:00,3,GBP_JPY,LONG,197.968,197.50116887949284,198.37549336152154,198.6664889358692,199.10298229739075,2137.49,4,OVERLAP,2.5,0.29099557434768725,27.50051685447893,50.730643162174694,198.00442456262942,197.32268310650338,28.837764064334692,False,0.020965312855296542,72.70966511507753,-6.542456262943119,0.6548672566371788,14,0,key_level_break,197.50116887949284,SL,2025-06-30 21:00:00+00:00,-46.68311205071518,-997.8468517728318,420,False
|
||||
2025-08-01 12:00:00+00:00,3,GBP_JPY,SHORT,197.42000000000002,197.9240625869552,196.9521455724677,196.62090928744615,196.12405485991385,1959.81,5,LONDON,2.5,0.3312362850215407,39.70741883714897,30.883748563855576,198.39358929989507,198.42740572261104,-44.094734242111144,False,-0.18151460798487157,13.76468588256765,-94.45892998950569,0.7970822281167195,12,4,key_level_break,196.12405485991385,TP3,2025-08-01 14:00:00+00:00,76.5967084051698,1501.1499509953583,120,True
|
||||
2025-08-14 13:00:00+00:00,3,GBP_JPY,LONG,199.554,199.10977887941726,199.96666336174815,200.26110560291357,200.7027689646617,2257.61,5,OVERLAP,2.5,0.2944422411654218,40.79848802125706,54.95548743490444,199.34556971024975,198.53565295788798,39.03909081138863,False,0.029277806124416605,62.14737037230483,17.943028975025754,0.8668224299065693,13,3,key_level_break,199.554,TP1+SL,2025-08-15 01:00:00+00:00,16.506534469925782,372.6531728464915,720,True
|
||||
2025-08-29 13:00:00+00:00,3,GBP_JPY,SHORT,198.084,198.37054912924077,197.78001927894445,197.5580321315741,197.22505141051857,3512.85,5,OVERLAP,2.5,0.22198714737035677,23.895428385806568,41.067792364739496,198.51657552909555,198.76682716062209,-1.8543425743160924,False,-0.009635298687658958,51.726292866489956,-40.357552909554784,0.7254098360655437,13,4,key_level_break,198.37054912924077,SL,2025-08-29 14:00:00+00:00,-28.65491292407682,-1006.6041086534327,60,False
|
||||
2025-09-03 12:00:00+00:00,3,GBP_JPY,LONG,199.683,199.1745151348446,200.076097452609,200.3574957543483,200.7795932069573,1959.82,4,LONDON,2.5,0.28139830173932046,28.386640186435333,68.17455925510868,198.98764035953457,198.89036605529782,38.32679347516148,False,0.09955251783628763,94.46670215278057,66.635964046543,0.9243243243243422,12,2,key_level_break,199.1745151348446,SL,2025-09-03 14:00:00+00:00,-50.84848651553955,-996.5388084288471,120,False
|
||||
2025-09-04 12:00:00+00:00,3,GBP_JPY,LONG,199.53,199.1580373683451,199.85858020265707,200.09696700442842,200.45454720708548,2652.34,5,LONDON,2.5,0.2383868017713703,31.76344050115275,63.05367443103985,199.07477481470764,198.9360884908947,14.62417504868938,False,0.044334013057012955,78.00884632110103,42.622518529236686,0.5539215686274278,12,3,key_level_break,199.1580373683451,SL,2025-09-04 21:00:00+00:00,-37.19626316548954,-986.5713664435453,540,False
|
||||
2025-09-26 12:00:00+00:00,3,GBP_JPY,LONG,200.176,199.8810095833572,200.4204712499284,200.60278541654733,200.8762566664757,3310.98,5,LONDON,2.5,0.18231416661893246,27.37506137572165,57.91734386625047,199.92203116078872,199.8615161940762,7.902698610351422,False,0.025858923587124133,44.57708928787432,22.496883921127164,0.6569343065692621,12,4,key_level_break,200.176,TP1+SL,2025-09-28 21:00:00+00:00,9.778849997136376,323.775767635186,3420,True
|
||||
2025-09-30 08:00:00+00:00,3,GBP_JPY,SHORT,198.775,199.17284708382297,198.4574587485311,198.22643124755186,197.87988999608297,2463.12,4,LONDON,2.5,0.23102750097925917,41.63705591756108,28.296084190987116,199.69308888938565,199.8329516544229,-10.666666666665492,False,-0.0658756422070308,9.996304863001129,-88.9088889385647,0.7949438202246949,8,1,key_level_break,199.17284708382297,SL,2025-10-01 00:00:00+00:00,-39.784708382296685,-979.945109106026,960,False
|
||||
2025-10-02 13:00:00+00:00,3,GBP_JPY,SHORT,197.699,198.3673694359172,197.31846312081979,197.04543853469963,196.63590165551938,1451.51,5,OVERLAP,2.5,0.27302458612015656,31.897686513797137,38.36260126547985,198.45704338867026,199.24615107819562,-23.65148586146404,False,-0.030908554095362292,35.14437143789346,-72.90433886702488,0.877300613496929,13,3,key_level_break,198.3673694359172,SL,2025-10-03 01:00:00+00:00,-66.83694359171852,-970.1449199281535,720,False
|
||||
2025-10-31 12:00:00+00:00,3,GBP_JPY,SHORT,201.986,202.36644328422398,201.53581300447095,201.21635500745157,200.73716801192253,2524.54,5,LONDON,2.5,0.3194579970193616,22.82419881407295,39.57823725047947,202.35922671547286,202.5386506524266,-38.64908045094637,False,-0.0749015214121307,13.06374361376191,-34.42267154728711,0.6082474226804637,12,4,key_level_break,202.36644328422398,SL,2025-10-31 15:00:00+00:00,-38.04432842239862,-960.4442887548221,180,False
|
||||
2025-11-06 14:00:00+00:00,3,GBP_JPY,SHORT,200.678,201.43266638276307,200.2760008517108,199.98866808618465,199.55766893789541,1259.95,5,OVERLAP,2.5,0.2873327655261438,24.04747874311413,43.14585488567115,200.94600444412532,201.68973527402446,-32.44439173315925,False,-0.028705453789163754,58.49429881151105,-23.900444412532806,0.911602209944749,14,3,key_level_break,201.43266638276307,SL,2025-11-07 14:00:00+00:00,-75.46663827630766,-950.8419089623384,1440,False
|
||||
2025-11-13 12:00:00+00:00,3,GBP_JPY,LONG,203.814,203.41034258243914,204.18957225268252,204.4592870878042,204.86385934048673,2332.01,4,LONDON,2.5,0.2697148351216835,20.56868702841438,66.40371602508213,203.0716856504323,202.39146860117472,35.692269634708396,False,0.04425282361647792,86.96687805168501,71.33143495676961,0.8272506082725116,12,3,key_level_break,203.41034258243914,SL,2025-11-13 14:00:00+00:00,-40.365741756085065,-941.3331343260795,120,False
|
||||
2025-11-17 15:00:00+00:00,3,GBP_JPY,LONG,204.529,203.90295581495903,204.93363255512293,205.2227209252049,205.65635348032782,1488.58,4,OVERLAP,2.5,0.28908837008195803,44.120884639178314,73.67198224700778,203.50822492476817,202.83440965015498,50.228252496739856,False,0.08715369092268493,80.83038665305689,99.17750752318284,0.9121621621621302,15,0,key_level_break,203.90295581495903,SL,2025-11-17 22:00:00+00:00,-62.60441850409677,-931.9168529682837,420,False
|
||||
2025-12-08 14:00:00+00:00,3,GBP_JPY,LONG,207.684,207.1324838268482,207.97334851945539,208.185580865759,208.50392938521438,1672.84,5,OVERLAP,2.5,0.2122323463035939,34.45429430805797,72.73022063720836,206.91691881158908,206.36578333963027,41.749328469771285,False,0.057577265589728144,85.74299857507897,73.80811884109164,0.8208616780045186,14,0,key_level_break,208.50392938521438,TP3,2025-12-09 08:00:00+00:00,48.035763112862924,803.5614596572161,1080,True
|
||||
2025-12-17 15:00:00+00:00,3,GBP_JPY,LONG,208.258,207.80254291435278,208.65337125694163,208.936285428236,209.36065668517762,2043.3,5,OVERLAP,2.5,0.28291417129439966,24.794927127520445,64.23431513733097,207.6347248984463,207.61650916690658,69.46564805469961,False,0.05282173222311107,92.80520178810885,59.427510155370555,0.8038194444444924,15,2,key_level_break,208.45334380723025,TP1+TP2+SL,2025-12-18 14:00:00+00:00,46.85314355170931,957.3502821920763,1380,True
|
||||
2025-01-17 11:30:00+00:00,8,GBP_USD,SHORT,1.2207,1.2217998788056657,1.2189574746288963,1.2179912119433443,1.2179912119433443,897661.16,5,LONDON,1.5,0.0009662626855518997,20.84501130864583,53.967290313344606,1.2209548175727356,1.221705788136929,14.408661075588913,False,0.00037833557154009085,88.21294508794394,-0.6481757273557598,0.8987341772150974,11,4,order_block_retest_short,1.2179912119433443,TP3,2025-01-17 13:15:00+00:00,22.256567440557063,1997.8856146308688,105,True
|
||||
2025-01-17 15:15:00+00:00,8,GBP_USD,SHORT,1.2205099999999998,1.2219572350762553,1.2177184328249644,1.2162276492374466,1.2162276492374466,696015.01,5,OVERLAP,1.5,0.0014907835875177175,38.66636444850098,55.4246627620362,1.2200578193653082,1.2213180863115822,14.479532997535571,False,0.00032359126019247285,82.13631322628801,6.421806346916803,0.718750000000112,15,4,order_block_retest_short,1.2162276492374466,TP3,2025-01-17 21:45:00+00:00,35.36959030320947,2461.7765748584243,390,True
|
||||
2025-02-13 09:30:00+00:00,8,GBP_USD,LONG,1.2489700000000001,1.248398624562227,1.250855836251821,1.2518937543777313,1.2518937543777313,1806019.37,4,LONDON,1.5,0.0010379181259104386,35.09352882568999,52.085764201705594,1.2475087132733504,1.24435769918256,2.7325698144498034,False,-0.00032123831776868523,52.96958315262347,12.712867266495564,0.7692307692306817,9,3,order_block_retest_long,1.248398624562227,SL,2025-02-13 11:45:00+00:00,-5.713754377731917,-1031.915108160614,135,False
|
||||
2025-02-13 15:00:00+00:00,8,GBP_USD,LONG,1.25058,1.2483212696581678,1.252981535612214,1.254277303418321,1.254277303418321,452287.7,5,OVERLAP,1.5,0.001295767806107029,39.05716517195158,62.96342902975745,1.2477175533034277,1.2450732701657392,23.75098904269679,False,0.00023017811654424148,85.44331884617651,26.724466965721838,0.7571428571428447,15,3,order_block_retest_long,1.25058,TP1+SL,2025-02-13 18:30:00+00:00,12.007678061070058,543.0925092581837,210,True
|
||||
2025-02-18 11:00:00+00:00,8,GBP_USD,LONG,1.2605400000000002,1.2593886277358495,1.2619591484276704,1.2627637226415054,1.2627637226415054,892002.45,5,LONDON,1.5,0.0008045742138351297,30.607208048935153,48.95731631995742,1.260606195375266,1.2590680755001311,-2.2740659569375765,False,-0.00013346633113002124,30.73067283593535,-2.5619537526599956,0.8829787234044262,11,1,order_block_retest_long,1.2593886277358495,SL,2025-02-18 12:15:00+00:00,-11.513722641507407,-1027.0268804845077,75,False
|
||||
2025-02-18 13:30:00+00:00,8,GBP_USD,LONG,1.2598300000000002,1.2594042680750746,1.2611448794995037,1.2618973192492555,1.2618973192492555,2388255.5,5,OVERLAP,1.5,0.0007524397497518295,24.996574345740935,46.785356587396834,1.2602352463740532,1.2591098426653864,-4.691727773975529,False,-5.292202501422491e-05,62.63449326409103,-5.9524637405306,0.6521739130437021,13,1,order_block_retest_long,1.2594042680750746,SL,2025-02-18 13:45:00+00:00,-4.2573192492567635,-1016.7566112293337,15,False
|
||||
2025-02-18 14:00:00+00:00,8,GBP_USD,LONG,1.2605100000000002,1.2593817005341204,1.2619753297725314,1.262802994658797,1.262802994658797,892129.33,5,OVERLAP,1.5,0.0008276648862656256,21.231541234515117,53.74009502256932,1.2601995642230301,1.259122772193559,2.651101806887546,False,3.812354488079634e-05,82.44274140922572,1.2043577696996266,0.730263157894756,14,1,order_block_retest_long,1.2605100000000002,TP1+SL,2025-02-18 16:45:00+00:00,7.326648862655549,653.6318340986157,165,True
|
||||
2025-03-28 09:15:00+00:00,8,GBP_USD,LONG,1.2949100000000002,1.2938994835849424,1.2961901094337167,1.296925164150575,1.296925164150575,1002581.8,5,LONDON,1.5,0.0007350547168583399,24.961002924520145,50.09906009469786,1.2946157175483293,1.2933809042338165,-1.5100220579311596,False,-1.7796324347916882e-05,31.075837742507275,1.0428245167082295,0.18421052631585866,9,4,order_block_retest_long,1.2938994835849424,SL,2025-03-28 10:45:00+00:00,-10.105164150577828,-1013.125366338179,90,False
|
||||
2025-03-28 16:15:00+00:00,8,GBP_USD,LONG,1.2947300000000002,1.2938032211457426,1.2966518590283813,1.2977077885425718,1.2977077885425718,1082236.72,5,OVERLAP,1.5,0.0010559295141906345,29.806889425109837,48.87858970804048,1.2946034576957266,1.2936569539321616,-2.1709510945577826,False,-8.893257477541881e-05,28.903654485050524,-0.6345769572657645,0.676470588235467,16,4,order_block_retest_long,1.2938032211457426,SL,2025-03-28 17:00:00+00:00,-9.26778854257515,-1002.9941073970111,45,False
|
||||
2025-04-29 08:15:00+00:00,8,GBP_USD,LONG,1.3425900000000002,1.3417277912302759,1.3444147251314953,1.345422087697243,1.345422087697243,1151651.67,5,LONDON,1.5,0.001007362565747635,23.448879557850997,55.98278969477211,1.3413145737352126,1.3368985113098952,6.225963849175731,False,0.00018832212096023027,80.65480073307857,10.854262647874702,0.8983050847458456,8,1,order_block_retest_long,1.3417277912302759,SL,2025-04-29 08:30:00+00:00,-8.622087697243153,-992.9641695416531,15,False
|
||||
2025-09-23 11:00:00+00:00,8,GBP_USD,SHORT,1.3510699999999998,1.352348109569772,1.3493392695348534,1.34837890430228,1.34837890430228,769131.65,5,LONDON,1.5,0.0009603652325732603,18.527140609522668,52.50995405776254,1.3509659563533851,1.3511426410867804,5.125306603559476,False,1.7955590843987803e-05,47.39716627721859,2.9404364661478333,0.21212121212106938,11,1,order_block_retest_short,1.352348109569772,SL,2025-09-23 12:45:00+00:00,-12.781095697722566,-983.0345222797259,105,False
|
||||
2025-09-23 13:30:00+00:00,8,GBP_USD,SHORT,1.35144,1.3523304322105039,1.3498271185966406,1.348925677894961,1.348925677894961,1092957.07,5,OVERLAP,1.5,0.0009014407016797055,28.621085204356604,51.85424880448976,1.3512452815855094,1.3512035944197989,4.245638161839427,False,0.00012402369854182547,46.1241520388657,3.8471841449072564,0.6220472440943161,13,1,order_block_retest_short,1.3523304322105039,SL,2025-09-23 14:15:00+00:00,-8.904322105038887,-973.2041798259535,45,False
|
||||
2025-09-23 15:15:00+00:00,8,GBP_USD,SHORT,1.3512,1.352352518843887,1.3494398743740872,1.3484648115611306,1.3484648115611306,835970.83,5,OVERLAP,1.5,0.0009750628129565047,14.531792544779664,48.10119297719565,1.3513983682422297,1.351248689260827,-0.15546186224124625,False,-1.858984620550013e-05,60.35129740519671,-0.08368242229606082,0.9499999999996808,15,1,order_block_retest_short,1.352352518843887,SL,2025-09-23 16:45:00+00:00,-11.525188438870071,-963.4721345148618,90,False
|
||||
2025-11-07 11:30:00+00:00,8,GBP_USD,SHORT,1.31134,1.312677689934505,1.3102120671033006,1.309553100654951,1.309553100654951,713048.21,5,LONDON,1.5,0.0006589664483497063,28.947200369303815,55.405300474563205,1.3113355009177095,1.309593476640256,7.658962541503556,False,0.00017318438208830967,78.9208558484841,1.944990822906334,0.09638554216878428,11,4,order_block_retest_short,1.312677689934505,SL,2025-11-07 12:00:00+00:00,-13.37689934505004,-953.8374133338104,30,False
|
||||
2025-11-07 12:15:00+00:00,8,GBP_USD,SHORT,1.31222,1.3126824310444998,1.311060459703335,1.3103856895550028,1.3103856895550028,2042032.12,5,LONDON,1.5,0.0006747701483324636,40.32938370984814,61.99124665500826,1.311451959408279,1.309675279691457,13.231795975916505,False,0.0003053314419751475,86.54409872377703,9.580405917211099,0.6046511627906256,12,4,order_block_retest_short,1.31222,TP1+SL,2025-11-07 13:00:00+00:00,5.797701483324369,1183.9092651120006,45,True
|
||||
2025-11-18 14:15:00+00:00,8,GBP_USD,LONG,1.3156800000000002,1.3147493620356634,1.3172275864289114,1.318096379643367,1.318096379643367,1027400.74,5,OVERLAP,1.5,0.0008687932144556389,20.169414535307315,54.05851174471317,1.3152266854353665,1.3156221120846152,3.501596141906038,False,0.00012574352104018186,71.7461081688361,2.633145646335766,0.7037037037038103,14,1,order_block_retest_long,1.3147493620356634,SL,2025-11-18 15:45:00+00:00,-9.30637964336789,-956.1381332317106,90,False
|
||||
2025-11-26 12:15:00+00:00,8,GBP_USD,LONG,1.3155200000000002,1.3147597228312242,1.3185985144585055,1.320232771687758,1.320232771687758,1245041.67,4,LONDON,1.5,0.0016342572292526614,45.734629650170305,43.12562598634748,1.3173516711000095,1.3148759397381775,-14.286202300348716,False,-0.00019862877186547047,32.159064877289765,-20.216711000093923,0.6917293233082669,12,2,order_block_retest_long,1.3147597228312242,SL,2025-11-26 12:30:00+00:00,-7.602771687760246,-946.5767558757734,15,False
|
||||
2025-12-04 13:15:00+00:00,8,GBP_USD,LONG,1.3339,1.332928403032527,1.3353206464498197,1.3361259696747299,1.3361259696747299,964505.88,5,OVERLAP,1.5,0.0008053232249099331,32.15385950013448,41.332027117944854,1.3342078271104736,1.3298869918749696,-9.59350743660714,False,-0.00018535728177609777,19.911912384751183,-4.978271104736365,0.20833333333344897,13,3,order_block_retest_long,1.332928403032527,SL,2025-12-04 13:30:00+00:00,-9.715969674730651,-937.1109881179401,15,False
|
||||
2025-12-04 13:30:00+00:00,8,GBP_USD,LONG,1.3336400000000002,1.3329062313873465,1.33520845741769,1.336087686126535,1.336087686126535,1264349.36,5,OVERLAP,1.5,0.0008792287088449424,36.12844519641167,39.319260594322266,1.3341781084002589,1.329922444692134,-10.96753521290239,False,-0.00023886255406293383,18.124639588484566,-7.281084002588312,0.15760869565211488,13,3,order_block_retest_long,1.336087686126535,TP3,2025-12-04 14:15:00+00:00,20.080717914715176,2538.904284381067,45,True
|
||||
|
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"S7_Tight": {
|
||||
"pair": "GBP_JPY",
|
||||
"timeframe": "H1",
|
||||
"metrics_2025": {
|
||||
"trades": 18,
|
||||
"wr": 55.6,
|
||||
"pf": 0.52,
|
||||
"sharpe": -4.36,
|
||||
"pnl_pips": -293.6,
|
||||
"max_dd_pips": -450.7,
|
||||
"expectancy": -16.31
|
||||
}
|
||||
},
|
||||
"S9_Filtered": {
|
||||
"pair": "GBP_AUD",
|
||||
"timeframe": "H1",
|
||||
"metrics_2025": {
|
||||
"trades": 18,
|
||||
"wr": 55.6,
|
||||
"pf": 0.74,
|
||||
"sharpe": -2.08,
|
||||
"pnl_pips": -112.2,
|
||||
"max_dd_pips": -199.7,
|
||||
"expectancy": -6.23
|
||||
}
|
||||
},
|
||||
"S3": {
|
||||
"pair": "GBP_JPY",
|
||||
"timeframe": "H1",
|
||||
"metrics_2025": {
|
||||
"trades": 35,
|
||||
"wr": 42.9,
|
||||
"pf": 1.05,
|
||||
"sharpe": 0.36,
|
||||
"pnl_pips": 52.2,
|
||||
"max_dd_pips": -498.4,
|
||||
"expectancy": 1.49
|
||||
}
|
||||
},
|
||||
"S8_OB": {
|
||||
"pair": "GBP_USD",
|
||||
"timeframe": "M15",
|
||||
"metrics_2025": {
|
||||
"trades": 19,
|
||||
"wr": 31.6,
|
||||
"pf": 0.84,
|
||||
"sharpe": -1.17,
|
||||
"pnl_pips": -19.9,
|
||||
"max_dd_pips": -103.9,
|
||||
"expectancy": -1.04
|
||||
}
|
||||
},
|
||||
"_portfolio": {
|
||||
"metrics_2025": {
|
||||
"trades": 90,
|
||||
"wr": 45.6,
|
||||
"pf": 0.83,
|
||||
"sharpe": -1.23,
|
||||
"pnl_pips": -373.4,
|
||||
"max_dd_pips": -518.1,
|
||||
"expectancy": -4.15
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
"""
|
||||
Download 2025 data from Dukascopy for the 4 passing Phase 2 strategies.
|
||||
|
||||
Pairs/TFs needed:
|
||||
- GBP_JPY H1 (S7_Tight, S3)
|
||||
- GBP_AUD H1 (S9_Filtered)
|
||||
- GBP_USD M15 (S8_OB primary)
|
||||
- GBP_USD H1 (S8_OB HTF context)
|
||||
|
||||
Downloads from Oct 2024 (warmup) through Dec 2025.
|
||||
Saves to data/2025/ directory.
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import pandas as pd
|
||||
from dukascopy_python import fetch, INTERVAL_MIN_15, INTERVAL_HOUR_1, OFFER_SIDE_BID
|
||||
|
||||
PAIRS_TFS = [
|
||||
("GBP/JPY", "H1", INTERVAL_HOUR_1),
|
||||
("GBP/AUD", "H1", INTERVAL_HOUR_1),
|
||||
("GBP/USD", "H1", INTERVAL_HOUR_1),
|
||||
("GBP/USD", "M15", INTERVAL_MIN_15),
|
||||
]
|
||||
|
||||
# Oct 2024 for warmup, through end of 2025
|
||||
START = datetime(2024, 10, 1)
|
||||
END = datetime(2025, 12, 31, 23, 59)
|
||||
|
||||
CHUNK_MONTHS = 3
|
||||
|
||||
OUT_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data", "2025")
|
||||
|
||||
|
||||
def chunk_date_range(start, end, months):
|
||||
chunks = []
|
||||
current = start
|
||||
while current < end:
|
||||
chunk_end = current + timedelta(days=months * 30)
|
||||
if chunk_end > end:
|
||||
chunk_end = end
|
||||
chunks.append((current, chunk_end))
|
||||
current = chunk_end + timedelta(hours=1)
|
||||
return chunks
|
||||
|
||||
|
||||
def download_pair(pair, tf_name, tf_code):
|
||||
pair_file = pair.replace("/", "_")
|
||||
filename = f"{pair_file}_{tf_name}.csv"
|
||||
filepath = os.path.join(OUT_DIR, filename)
|
||||
|
||||
if os.path.exists(filepath):
|
||||
existing = pd.read_csv(filepath)
|
||||
print(f" Already exists: {filename} ({len(existing)} rows) - skipping")
|
||||
return True
|
||||
|
||||
chunks = chunk_date_range(START, END, CHUNK_MONTHS)
|
||||
all_dfs = []
|
||||
|
||||
for i, (chunk_start, chunk_end) in enumerate(chunks):
|
||||
print(f" Chunk {i+1}/{len(chunks)}: {chunk_start.date()} to {chunk_end.date()}...",
|
||||
end=" ", flush=True)
|
||||
try:
|
||||
df = fetch(
|
||||
instrument=pair,
|
||||
interval=tf_code,
|
||||
offer_side=OFFER_SIDE_BID,
|
||||
start=chunk_start,
|
||||
end=chunk_end,
|
||||
max_retries=5,
|
||||
)
|
||||
print(f"{len(df)} rows")
|
||||
if len(df) > 0:
|
||||
all_dfs.append(df)
|
||||
time.sleep(1)
|
||||
except Exception as e:
|
||||
print(f"ERROR: {e}")
|
||||
time.sleep(3)
|
||||
try:
|
||||
df = fetch(
|
||||
instrument=pair,
|
||||
interval=tf_code,
|
||||
offer_side=OFFER_SIDE_BID,
|
||||
start=chunk_start,
|
||||
end=chunk_end,
|
||||
max_retries=5,
|
||||
)
|
||||
print(f" Retry OK: {len(df)} rows")
|
||||
if len(df) > 0:
|
||||
all_dfs.append(df)
|
||||
except Exception as e2:
|
||||
print(f" Retry failed: {e2}")
|
||||
return False
|
||||
|
||||
if not all_dfs:
|
||||
print(f" No data retrieved for {pair} {tf_name}")
|
||||
return False
|
||||
|
||||
combined = pd.concat(all_dfs)
|
||||
combined = combined[~combined.index.duplicated(keep="first")]
|
||||
combined = combined.sort_index()
|
||||
combined.to_csv(filepath)
|
||||
print(f" Saved: {filename} ({len(combined)} rows, "
|
||||
f"{combined.index[0].date()} to {combined.index[-1].date()})")
|
||||
return True
|
||||
|
||||
|
||||
def main():
|
||||
os.makedirs(OUT_DIR, exist_ok=True)
|
||||
|
||||
print(f"Downloading 2025 data from Dukascopy")
|
||||
print(f"Date range: {START.date()} to {END.date()}")
|
||||
print(f"Output: {OUT_DIR}")
|
||||
print("=" * 60)
|
||||
|
||||
failed = []
|
||||
for pair, tf_name, tf_code in PAIRS_TFS:
|
||||
print(f"\n{pair} {tf_name}")
|
||||
success = download_pair(pair, tf_name, tf_code)
|
||||
if not success:
|
||||
failed.append(f"{pair} {tf_name}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
if failed:
|
||||
print(f"Failed: {', '.join(failed)}")
|
||||
else:
|
||||
print("All downloads successful!")
|
||||
print(f"\nNext: python src/run_2025_validation.py")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,277 @@
|
||||
"""
|
||||
2025 Forward Validation — Run 4 passing Phase 2 strategies on 2025 data.
|
||||
|
||||
This is a true out-of-sample test on data the strategies have never seen.
|
||||
Data includes Oct-Dec 2024 warmup for indicator computation; trades are
|
||||
filtered to only count those from Jan 1 2025 onward.
|
||||
|
||||
Strategies:
|
||||
S7_Tight — GBP_JPY H1 (Liquidity Sweep)
|
||||
S9_Filtered — GBP_AUD H1 (London Session)
|
||||
S3 — GBP_JPY H1 (Key Level Breakout)
|
||||
S8_OB — GBP_USD M15 + H1 HTF (Order Block Retest)
|
||||
"""
|
||||
import os, sys, io, json, time
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
|
||||
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
from src.indicators.technical import compute_all_indicators
|
||||
from src.backtester.engine import Backtester
|
||||
|
||||
from src.strategies_pkg.s7_liquidity_sweep import S7_Liquidity_Sweep
|
||||
from src.strategies_pkg.s9_london_session import S9_London_Session
|
||||
from src.strategies_pkg.s3_key_level_breakout import S3_KeyLevel_Breakout
|
||||
from src.strategies_pkg.s8_order_block import S8_Order_Block
|
||||
|
||||
DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data", "2025")
|
||||
RESULTS_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), "results", "2025_validation")
|
||||
os.makedirs(RESULTS_DIR, exist_ok=True)
|
||||
|
||||
# 2025 test period (warmup from Oct 2024 is in the data files)
|
||||
TEST_START = "2025-01-01"
|
||||
TEST_END = "2025-12-31"
|
||||
|
||||
|
||||
def _s8_tuned():
|
||||
s = S8_Order_Block()
|
||||
s.DISPLACEMENT_ATR = 2.5
|
||||
s.TP1_ATR_MULT = 2.0
|
||||
s.OB_RETEST_WINDOW = 40
|
||||
return s
|
||||
|
||||
|
||||
CONFIGS = [
|
||||
{"name": "S7_Tight", "pair": "GBP_JPY", "tf": "H1", "htf_tf": "H1",
|
||||
"factory": lambda: S7_Liquidity_Sweep()},
|
||||
{"name": "S9_Filtered", "pair": "GBP_AUD", "tf": "H1", "htf_tf": "H1",
|
||||
"factory": lambda: S9_London_Session(pair="GBP_AUD", filtered=True)},
|
||||
{"name": "S3", "pair": "GBP_JPY", "tf": "H1", "htf_tf": "H1",
|
||||
"factory": lambda: S3_KeyLevel_Breakout()},
|
||||
{"name": "S8_OB", "pair": "GBP_USD", "tf": "M15", "htf_tf": "H1",
|
||||
"factory": _s8_tuned},
|
||||
]
|
||||
|
||||
|
||||
def load_data(pair, tf):
|
||||
fp = os.path.join(DATA_DIR, f"{pair}_{tf}.csv")
|
||||
if not os.path.exists(fp):
|
||||
print(f" WARNING: {fp} not found")
|
||||
return None
|
||||
df = pd.read_csv(fp, index_col=0, parse_dates=True)
|
||||
df.index.name = "timestamp"
|
||||
return compute_all_indicators(df)
|
||||
|
||||
|
||||
def run_backtest(cfg, data, htf_data):
|
||||
"""Run backtester on full data, filter trades to 2025."""
|
||||
if len(data) < 250:
|
||||
print(f" Insufficient data ({len(data)} bars)")
|
||||
return pd.DataFrame()
|
||||
|
||||
strategy = cfg["factory"]()
|
||||
bt = Backtester(data=data, strategy=strategy, pair=cfg["pair"],
|
||||
starting_equity=100_000.0, htf_data=htf_data)
|
||||
bt.run()
|
||||
trade_log = bt.get_trade_log_df()
|
||||
|
||||
# Filter to only 2025 trades
|
||||
if not trade_log.empty:
|
||||
ts = pd.to_datetime(trade_log["timestamp"])
|
||||
start_ts = pd.Timestamp(TEST_START)
|
||||
end_ts = pd.Timestamp(f"{TEST_END} 23:59:59")
|
||||
if ts.dt.tz is not None:
|
||||
start_ts = start_ts.tz_localize(ts.dt.tz)
|
||||
end_ts = end_ts.tz_localize(ts.dt.tz)
|
||||
trade_log = trade_log[(ts >= start_ts) & (ts <= end_ts)]
|
||||
|
||||
return trade_log
|
||||
|
||||
|
||||
def compute_metrics(trade_log):
|
||||
if trade_log.empty or len(trade_log) == 0:
|
||||
return {
|
||||
"trades": 0, "wr": 0, "pf": 0, "sharpe": 0,
|
||||
"pnl_pips": 0, "max_dd_pips": 0, "expectancy": 0,
|
||||
}
|
||||
|
||||
n = len(trade_log)
|
||||
wins = trade_log[trade_log["win"] == True]
|
||||
losses = trade_log[trade_log["win"] == False]
|
||||
|
||||
wr = len(wins) / n * 100 if n > 0 else 0
|
||||
gross_profit = wins["pnl_pips"].sum() if len(wins) > 0 else 0
|
||||
gross_loss = abs(losses["pnl_pips"].sum()) if len(losses) > 0 else 0
|
||||
pf = gross_profit / gross_loss if gross_loss > 0 else float("inf")
|
||||
total_pnl = trade_log["pnl_pips"].sum()
|
||||
expectancy = total_pnl / n if n > 0 else 0
|
||||
|
||||
if n > 1:
|
||||
pnl_series = trade_log["pnl_pips"]
|
||||
sharpe = (pnl_series.mean() / pnl_series.std()) * np.sqrt(252) \
|
||||
if pnl_series.std() > 0 else 0
|
||||
else:
|
||||
sharpe = 0
|
||||
|
||||
cum_pnl = trade_log["pnl_pips"].cumsum()
|
||||
peak = cum_pnl.cummax()
|
||||
dd = cum_pnl - peak
|
||||
max_dd = dd.min() if len(dd) > 0 else 0
|
||||
|
||||
return {
|
||||
"trades": n,
|
||||
"wr": round(wr, 1),
|
||||
"pf": round(pf, 2),
|
||||
"sharpe": round(sharpe, 2),
|
||||
"pnl_pips": round(total_pnl, 1),
|
||||
"max_dd_pips": round(max_dd, 1),
|
||||
"expectancy": round(expectancy, 2),
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
t0 = time.time()
|
||||
all_results = {}
|
||||
all_trade_logs = []
|
||||
|
||||
print(f"{'='*100}")
|
||||
print("2025 FORWARD VALIDATION — 4 Passing Phase 2 Strategies")
|
||||
print(f" Test period: {TEST_START} to {TEST_END}")
|
||||
print(f" Data dir: {DATA_DIR}")
|
||||
print(f"{'='*100}")
|
||||
|
||||
# Reference: Phase 2 IS/OOS results for comparison
|
||||
print(f"\n Reference (Phase 2 results):")
|
||||
print(f" {'Strategy':<14} {'IS PF':>6} {'OOS PF':>7} {'Gen':>6}")
|
||||
print(f" {'-'*40}")
|
||||
ref = {
|
||||
"S7_Tight": (1.52, 1.80, 1.272),
|
||||
"S9_Filtered": (1.31, 2.26, 1.712),
|
||||
"S3": (1.22, 1.23, 1.068),
|
||||
"S8_OB": (1.39, 1.59, 1.397),
|
||||
}
|
||||
for name, (is_pf, oos_pf, gen) in ref.items():
|
||||
print(f" {name:<14} {is_pf:>6.2f} {oos_pf:>7.2f} {gen:>6.3f}")
|
||||
|
||||
print(f"\n{'='*100}")
|
||||
print("2025 RESULTS")
|
||||
print(f"{'='*100}")
|
||||
|
||||
data_cache = {}
|
||||
|
||||
for cfg in CONFIGS:
|
||||
name = cfg["name"]
|
||||
pair = cfg["pair"]
|
||||
tf = cfg["tf"]
|
||||
htf_tf = cfg["htf_tf"]
|
||||
|
||||
print(f"\n {name} / {pair} ({tf})...")
|
||||
|
||||
# Load primary data
|
||||
cache_key = f"{pair}_{tf}"
|
||||
if cache_key not in data_cache:
|
||||
data_cache[cache_key] = load_data(pair, tf)
|
||||
data = data_cache[cache_key]
|
||||
if data is None:
|
||||
continue
|
||||
|
||||
# Load HTF data
|
||||
if htf_tf == tf:
|
||||
htf_data = data
|
||||
else:
|
||||
htf_key = f"{pair}_{htf_tf}"
|
||||
if htf_key not in data_cache:
|
||||
data_cache[htf_key] = load_data(pair, htf_tf)
|
||||
htf_data = data_cache[htf_key]
|
||||
if htf_data is None:
|
||||
continue
|
||||
|
||||
# Run backtest
|
||||
trade_log = run_backtest(cfg, data, htf_data)
|
||||
metrics = compute_metrics(trade_log)
|
||||
|
||||
pf_str = f"{metrics['pf']:.2f}" if metrics['pf'] != float('inf') else "inf"
|
||||
print(f" 2025: {metrics['trades']:>4}t WR={metrics['wr']:>5.1f}% "
|
||||
f"PF={pf_str:>5} Sharpe={metrics['sharpe']:>6.2f} "
|
||||
f"PnL={metrics['pnl_pips']:>+8.1f}p DD={metrics['max_dd_pips']:>+7.1f}p "
|
||||
f"Exp={metrics['expectancy']:>+6.2f}")
|
||||
|
||||
# Save trade log
|
||||
if not trade_log.empty:
|
||||
trade_log.to_csv(
|
||||
os.path.join(RESULTS_DIR, f"trades_{name}_2025.csv"), index=False)
|
||||
all_trade_logs.append(trade_log)
|
||||
|
||||
all_results[name] = {
|
||||
"pair": pair, "timeframe": tf,
|
||||
"metrics_2025": metrics,
|
||||
}
|
||||
|
||||
# Portfolio aggregate
|
||||
print(f"\n{'='*100}")
|
||||
print("PORTFOLIO AGGREGATE — 2025")
|
||||
print(f"{'='*100}")
|
||||
|
||||
if all_trade_logs:
|
||||
combined = pd.concat(all_trade_logs, ignore_index=True)
|
||||
port_metrics = compute_metrics(combined)
|
||||
combined.to_csv(
|
||||
os.path.join(RESULTS_DIR, "trades_portfolio_2025.csv"), index=False)
|
||||
else:
|
||||
port_metrics = compute_metrics(pd.DataFrame())
|
||||
|
||||
pf_str = f"{port_metrics['pf']:.2f}" if port_metrics['pf'] != float('inf') else "inf"
|
||||
print(f" PORTFOLIO: {port_metrics['trades']:>4}t WR={port_metrics['wr']:>5.1f}% "
|
||||
f"PF={pf_str:>5} Sharpe={port_metrics['sharpe']:>6.2f} "
|
||||
f"PnL={port_metrics['pnl_pips']:>+8.1f}p DD={port_metrics['max_dd_pips']:>+7.1f}p "
|
||||
f"Exp={port_metrics['expectancy']:>+6.2f}")
|
||||
|
||||
all_results["_portfolio"] = {"metrics_2025": port_metrics}
|
||||
|
||||
# Comparison table
|
||||
print(f"\n{'='*100}")
|
||||
print("COMPARISON: Phase 2 vs 2025")
|
||||
print(f"{'='*100}")
|
||||
print(f" {'Strategy':<14} {'IS PF':>6} {'OOS PF':>7} {'2025 PF':>8} "
|
||||
f"{'2025 t':>7} {'2025 WR%':>9} {'2025 PnL':>9} {'Verdict':>8}")
|
||||
print(f" {'-'*75}")
|
||||
|
||||
for name in ["S7_Tight", "S9_Filtered", "S3", "S8_OB"]:
|
||||
if name not in all_results:
|
||||
continue
|
||||
is_pf, oos_pf, _ = ref[name]
|
||||
m = all_results[name]["metrics_2025"]
|
||||
pf_2025 = f"{m['pf']:.2f}" if m['pf'] != float('inf') else "inf"
|
||||
verdict = "PASS" if m["pf"] > 1.0 and m["trades"] >= 5 else "FAIL"
|
||||
print(f" {name:<14} {is_pf:>6.2f} {oos_pf:>7.2f} {pf_2025:>8} "
|
||||
f"{m['trades']:>7} {m['wr']:>8.1f}% {m['pnl_pips']:>+9.1f} {verdict:>8}")
|
||||
|
||||
pf_2025 = f"{port_metrics['pf']:.2f}" if port_metrics['pf'] != float('inf') else "inf"
|
||||
port_verdict = "PASS" if port_metrics["pf"] > 1.0 and port_metrics["trades"] >= 10 else "FAIL"
|
||||
print(f" {'PORTFOLIO':<14} {'1.31':>6} {'1.55':>7} {pf_2025:>8} "
|
||||
f"{port_metrics['trades']:>7} {port_metrics['wr']:>8.1f}% "
|
||||
f"{port_metrics['pnl_pips']:>+9.1f} {port_verdict:>8}")
|
||||
|
||||
# Save JSON
|
||||
out_path = os.path.join(RESULTS_DIR, "validation_2025.json")
|
||||
|
||||
def json_default(obj):
|
||||
if isinstance(obj, (np.integer,)):
|
||||
return int(obj)
|
||||
if isinstance(obj, (np.floating,)):
|
||||
return float(obj)
|
||||
if isinstance(obj, (np.bool_,)):
|
||||
return bool(obj)
|
||||
return str(obj)
|
||||
|
||||
with open(out_path, "w") as f:
|
||||
json.dump(all_results, f, indent=2, default=json_default)
|
||||
print(f"\nResults saved: {out_path}")
|
||||
|
||||
elapsed = time.time() - t0
|
||||
print(f"Total runtime: {elapsed:.1f}s")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user