codifx 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/explain.js +1 -179
- package/dist/cli/commands/profile.js +1 -55
- package/dist/cli/commands/scan.js +1 -300
- package/dist/cli/commands/simulate.js +1 -109
- package/dist/cli/commands/validate.js +1 -26
- package/dist/cli/index.js +1 -94
- package/dist/config/loader.js +1 -124
- package/dist/config/schema.js +1 -49
- package/dist/core/engine.js +1 -169
- package/dist/core/filters.js +1 -70
- package/dist/core/oscillator-engine.js +1 -224
- package/dist/core/scoring.js +1 -101
- package/dist/core/timeframe.js +1 -52
- package/dist/core/trend-engine.js +1 -137
- package/dist/data/mock.js +1 -111
- package/dist/data/provider.js +1 -29
- package/dist/data/yahoo.js +1 -200
- package/dist/index.js +1 -19
- package/dist/indicators/oscillator/adx.js +1 -118
- package/dist/indicators/oscillator/atr.js +1 -31
- package/dist/indicators/oscillator/cci.js +1 -39
- package/dist/indicators/oscillator/macd.js +1 -73
- package/dist/indicators/oscillator/momentum.js +1 -35
- package/dist/indicators/oscillator/rsi.js +1 -93
- package/dist/indicators/oscillator/stochastic.js +1 -89
- package/dist/indicators/oscillator/williams.js +1 -44
- package/dist/indicators/trend/ema.js +1 -36
- package/dist/indicators/trend/hma.js +1 -48
- package/dist/indicators/trend/sma.js +1 -30
- package/dist/indicators/trend/vwma.js +1 -23
- package/dist/types/index.js +1 -5
- package/dist/utils/constants.js +1 -105
- package/dist/utils/explain.js +1 -83
- package/dist/utils/formatter.js +1 -104
- package/dist/utils/html-generator.js +1 -107
- package/dist/utils/indicators.js +1 -106
- package/dist/utils/levels.js +1 -82
- package/dist/utils/logger.js +1 -238
- package/dist/utils/paths.js +1 -32
- package/dist/utils/symbols.js +1 -44
- package/dist/utils/trading-type-config.js +1 -96
- package/dist/utils/version-checker.js +1 -76
- package/package.json +1 -2
|
@@ -1,48 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hull Moving Average (HMA)
|
|
3
|
-
* HMA = WMA(2 * WMA(n/2) - WMA(n)), period = sqrt(n)
|
|
4
|
-
*/
|
|
5
|
-
import { getClosePrices } from "../../utils/indicators.js";
|
|
6
|
-
function calculateWMA(values, period) {
|
|
7
|
-
const wma = [];
|
|
8
|
-
for (let i = 0; i < values.length; i++) {
|
|
9
|
-
if (i < period - 1) {
|
|
10
|
-
wma.push(NaN);
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
const slice = values.slice(i - period + 1, i + 1);
|
|
14
|
-
let weightedSum = 0;
|
|
15
|
-
let weightSum = 0;
|
|
16
|
-
for (let j = 0; j < slice.length; j++) {
|
|
17
|
-
const weight = j + 1;
|
|
18
|
-
weightedSum += slice[j] * weight;
|
|
19
|
-
weightSum += weight;
|
|
20
|
-
}
|
|
21
|
-
wma.push(weightedSum / weightSum);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return wma;
|
|
25
|
-
}
|
|
26
|
-
export function calculateHMA(data, period) {
|
|
27
|
-
const closes = getClosePrices(data);
|
|
28
|
-
const halfPeriod = Math.floor(period / 2);
|
|
29
|
-
const sqrtPeriod = Math.floor(Math.sqrt(period));
|
|
30
|
-
// Calculate WMA(n/2)
|
|
31
|
-
const wmaHalf = calculateWMA(closes, halfPeriod);
|
|
32
|
-
// Calculate WMA(n)
|
|
33
|
-
const wmaFull = calculateWMA(closes, period);
|
|
34
|
-
// Calculate 2 * WMA(n/2) - WMA(n)
|
|
35
|
-
const diff = [];
|
|
36
|
-
for (let i = 0; i < closes.length; i++) {
|
|
37
|
-
if (isNaN(wmaHalf[i]) || isNaN(wmaFull[i])) {
|
|
38
|
-
diff.push(NaN);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
diff.push(2 * wmaHalf[i] - wmaFull[i]);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// Calculate WMA of diff with sqrt(n) period
|
|
45
|
-
const hma = calculateWMA(diff, sqrtPeriod);
|
|
46
|
-
return hma;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=hma.js.map
|
|
1
|
+
(function(_0x5d9f64,_0x1c9851){const _0x1d1469=a0_0x5a10,_0x40ba3c=_0x5d9f64();while(!![]){try{const _0x1fd10f=-parseInt(_0x1d1469(0x193))/0x1*(parseInt(_0x1d1469(0x17e))/0x2)+parseInt(_0x1d1469(0x164))/0x3*(parseInt(_0x1d1469(0x171))/0x4)+-parseInt(_0x1d1469(0x17f))/0x5+parseInt(_0x1d1469(0x194))/0x6*(parseInt(_0x1d1469(0x162))/0x7)+parseInt(_0x1d1469(0x168))/0x8*(-parseInt(_0x1d1469(0x16c))/0x9)+parseInt(_0x1d1469(0x17b))/0xa*(-parseInt(_0x1d1469(0x181))/0xb)+-parseInt(_0x1d1469(0x161))/0xc*(-parseInt(_0x1d1469(0x199))/0xd);if(_0x1fd10f===_0x1c9851)break;else _0x40ba3c['push'](_0x40ba3c['shift']());}catch(_0x4dd7ca){_0x40ba3c['push'](_0x40ba3c['shift']());}}}(a0_0x407f,0x2195b));function a0_0x407f(){const _0x431283=['rgXXy0y','suLyz00','nde4vgjoC2r4','ntK2mJG1uNLsuNn5','Dg9tDhjPBMC','otK1nvzosMTHBa','ChvZAa','uKPrChC','tujRuNC','sxPLvee','uLjWAKK','yxbbsg8','re5Lz2S','renJvKq','C2XPy2u','qvnYB0e','rKHpCMG','zw5cB0i','yK9cv0m','rgvVzuy','BgvUz3rO','t0roD0S','C2vHCMnO','mteZsKPpvuXN','mZzuBuLXCM4','qxrUExC','kcGOlISPkYKRksSK','DxjVB3y','Chv1zuu','mZC4nJqXoxLktLzsuW','qurHBKm','tuLnu2u','CKTQuem','y29UC3rYDwn0B3i','uxnYz0e','AvPoALK','sg9Ms1m','t0P2vwC','mJrKAgLjs1G','mtiYotqXy2HhBLrS','CgHzENK','mtGZuNbUB0v5','q1j5s1O','zMXVB3i','rhfJqva','mta0offmCgzryq','AgntwK8','u1P4CMy','u3DnDuW','mtG3odnpD3HrB0u','DgH4Cw0','sKzyrLa','yxbWBhK','ANvsrLm','nJq2mhvJsNjSzq','Euvbqxy','rKPszg0','C3fYDa','y1bougS','q0HjCw8','B1f1v0O','B1L1rgO','wgT4rgC','sK5hD3y','mJu3mgTOBu9Ura'];a0_0x407f=function(){return _0x431283;};return a0_0x407f();}const a0_0x5aeaa4=(function(){const _0x47300c=a0_0x5a10,_0x277fc1={'bOBWC':function(_0x3029fd,_0x3535e8){return _0x3029fd-_0x3535e8;},'AdRsN':function(_0x48ee95,_0x5a663f){return _0x48ee95<_0x5a663f;},'DlqcF':function(_0x583b75,_0x38ca4a){return _0x583b75*_0x38ca4a;},'enBoB':function(_0x54fc79,_0xb2fa8e){return _0x54fc79/_0xb2fa8e;},'yEAAv':function(_0x5eda23,_0x3ad7a5){return _0x5eda23!==_0x3ad7a5;},'UnegC':'rSYeR','eJYQD':function(_0x571c2c,_0x4a3283){return _0x571c2c===_0x4a3283;},'MUrYc':_0x47300c(0x160),'JNGwv':_0x47300c(0x195)};let _0x24c541=!![];return function(_0x234faa,_0x20d3f7){const _0xbf30f8=_0x47300c,_0x54dcc3={'FJRdm':function(_0xda4f8f,_0x377828){return _0xda4f8f+_0x377828;},'apAHo':function(_0x262ee8,_0x3bc83f){const _0x1448b8=a0_0x5a10;return _0x277fc1[_0x1448b8(0x18e)](_0x262ee8,_0x3bc83f);},'DCcVD':function(_0x1f045e,_0x374534){return _0x277fc1['AdRsN'](_0x1f045e,_0x374534);},'MBkRw':function(_0xad54ee,_0xcaa80b){const _0x484126=a0_0x5a10;return _0x277fc1[_0x484126(0x17c)](_0xad54ee,_0xcaa80b);},'CHIqo':function(_0x2f5e65,_0x33157a){const _0x4b2557=a0_0x5a10;return _0x277fc1[_0x4b2557(0x18d)](_0x2f5e65,_0x33157a);},'olfJS':function(_0x2590d5,_0x388303){const _0x3ade38=a0_0x5a10;return _0x277fc1[_0x3ade38(0x172)](_0x2590d5,_0x388303);},'SWTBU':_0x277fc1['UnegC']};if(_0x277fc1['eJYQD'](_0x277fc1['MUrYc'],_0x277fc1[_0xbf30f8(0x17a)])){const _0x78ef5d=_0x2b1d65[_0xbf30f8(0x18a)](_0x54dcc3[_0xbf30f8(0x173)](_0x54dcc3[_0xbf30f8(0x187)](_0x3c52dc,_0x5d212f),0x1),_0x54dcc3['FJRdm'](_0x1e8e38,0x1));let _0x9e47ea=0x0,_0x5b9f2f=0x0;for(let _0x5e06f5=0x0;_0x54dcc3[_0xbf30f8(0x189)](_0x5e06f5,_0x78ef5d[_0xbf30f8(0x190)]);_0x5e06f5++){const _0x21fbd3=_0x54dcc3[_0xbf30f8(0x173)](_0x5e06f5,0x1);_0x9e47ea+=_0x54dcc3[_0xbf30f8(0x184)](_0x78ef5d[_0x5e06f5],_0x21fbd3),_0x5b9f2f+=_0x21fbd3;}_0x471282[_0xbf30f8(0x182)](_0x54dcc3[_0xbf30f8(0x176)](_0x9e47ea,_0x5b9f2f));}else{const _0x4bd7ee=_0x24c541?function(){const _0x1c4c43=_0xbf30f8;if(_0x54dcc3['olfJS'](_0x1c4c43(0x183),_0x54dcc3['SWTBU'])){if(_0x20d3f7){const _0x567f64=_0x20d3f7[_0x1c4c43(0x16f)](_0x234faa,arguments);return _0x20d3f7=null,_0x567f64;}}else{const _0x32e0fd=_0x7e84f7?function(){const _0x41ab9c=_0x1c4c43;if(_0x2207d5){const _0x56fe4=_0x398f55[_0x41ab9c(0x16f)](_0x2e636f,arguments);return _0x53c404=null,_0x56fe4;}}:function(){};return _0x7e3588=![],_0x32e0fd;}}:function(){};return _0x24c541=![],_0x4bd7ee;}};}()),a0_0x295ef3=a0_0x5aeaa4(this,function(){const _0x4a4e52=a0_0x5a10,_0x5ce238={'hcSZO':_0x4a4e52(0x196)};return a0_0x295ef3[_0x4a4e52(0x180)]()[_0x4a4e52(0x192)](_0x5ce238[_0x4a4e52(0x169)])[_0x4a4e52(0x180)]()[_0x4a4e52(0x19d)](a0_0x295ef3)[_0x4a4e52(0x192)](_0x5ce238[_0x4a4e52(0x169)]);});function a0_0x5a10(_0x5cd243,_0x199a7c){_0x5cd243=_0x5cd243-0x15d;const _0x40c40d=a0_0x407f();let _0x295ef3=_0x40c40d[_0x5cd243];if(a0_0x5a10['zQeEcj']===undefined){var _0x5aeaa4=function(_0x3bb7ef){const _0x2f6a6a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x49c42d='',_0x3788cb='',_0x1244db=_0x49c42d+_0x5aeaa4;for(let _0x1dce09=0x0,_0x14eaf8,_0x319916,_0x56fb90=0x0;_0x319916=_0x3bb7ef['charAt'](_0x56fb90++);~_0x319916&&(_0x14eaf8=_0x1dce09%0x4?_0x14eaf8*0x40+_0x319916:_0x319916,_0x1dce09++%0x4)?_0x49c42d+=_0x1244db['charCodeAt'](_0x56fb90+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x14eaf8>>(-0x2*_0x1dce09&0x6)):_0x1dce09:0x0){_0x319916=_0x2f6a6a['indexOf'](_0x319916);}for(let _0x10dfad=0x0,_0x1c1e2f=_0x49c42d['length'];_0x10dfad<_0x1c1e2f;_0x10dfad++){_0x3788cb+='%'+('00'+_0x49c42d['charCodeAt'](_0x10dfad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3788cb);};a0_0x5a10['yVijPh']=_0x5aeaa4,a0_0x5a10['iHQyRq']={},a0_0x5a10['zQeEcj']=!![];}const _0x407f17=_0x40c40d[0x0],_0x5a10b1=_0x5cd243+_0x407f17,_0x29b5fe=a0_0x5a10['iHQyRq'][_0x5a10b1];if(!_0x29b5fe){const _0x7e84f7=function(_0x32a6ad){this['Fyqkli']=_0x32a6ad,this['XvcXGn']=[0x1,0x0,0x0],this['DEGgWD']=function(){return'newState';},this['goCdJd']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['CKuZVk']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x7e84f7['prototype']['WAlXhK']=function(){const _0x4c8415=new RegExp(this['goCdJd']+this['CKuZVk']),_0x164c27=_0x4c8415['test'](this['DEGgWD']['toString']())?--this['XvcXGn'][0x1]:--this['XvcXGn'][0x0];return this['GrSYoT'](_0x164c27);},_0x7e84f7['prototype']['GrSYoT']=function(_0x2fbeff){if(!Boolean(~_0x2fbeff))return _0x2fbeff;return this['YPnKBk'](this['Fyqkli']);},_0x7e84f7['prototype']['YPnKBk']=function(_0x7e3588){for(let _0x2207d5=0x0,_0x4d767b=this['XvcXGn']['length'];_0x2207d5<_0x4d767b;_0x2207d5++){this['XvcXGn']['push'](Math['round'](Math['random']())),_0x4d767b=this['XvcXGn']['length'];}return _0x7e3588(this['XvcXGn'][0x0]);},new _0x7e84f7(a0_0x5a10)['WAlXhK'](),_0x295ef3=a0_0x5a10['yVijPh'](_0x295ef3),a0_0x5a10['iHQyRq'][_0x5a10b1]=_0x295ef3;}else _0x295ef3=_0x29b5fe;return _0x295ef3;}a0_0x295ef3();import{getClosePrices}from'../../utils/indicators.js';function calculateWMA(_0xa4855a,_0x88fbb7){const _0x10c2fc=a0_0x5a10,_0x402326={'ASroA':function(_0x16d035,_0x199e24){return _0x16d035(_0x199e24);},'DNegk':function(_0x24260e,_0x21a32e){return _0x24260e/_0x21a32e;},'ODNwK':function(_0x234611,_0x3b4d25,_0x202a36){return _0x234611(_0x3b4d25,_0x202a36);},'HofKS':function(_0x2515f3,_0x33db47){return _0x2515f3<_0x33db47;},'JFXFP':function(_0xe71c79,_0x4268d0){return _0xe71c79(_0x4268d0);},'cPNPk':function(_0x351365,_0x2842bc){return _0x351365-_0x2842bc;},'oYuDj':function(_0x5cedc9,_0x258ff9){return _0x5cedc9*_0x258ff9;},'DeoeF':_0x10c2fc(0x19a),'RRpjI':function(_0xfc9a27,_0x1b0da3){return _0xfc9a27!==_0x1b0da3;},'QsrgA':_0x10c2fc(0x17d),'uroov':function(_0x22a7f4,_0x3af702){return _0x22a7f4+_0x3af702;},'rKjPC':function(_0x1ebbec,_0x5c0a2d){return _0x1ebbec-_0x5c0a2d;},'iZNjY':function(_0x5ad39b,_0xcbcd03){return _0x5ad39b+_0xcbcd03;},'JKccF':function(_0x55570e,_0x1f0df6){return _0x55570e<_0x1f0df6;},'CRyKZ':function(_0x46644c,_0x372e3d){return _0x46644c+_0x372e3d;}},_0x3c1052=[];for(let _0x3385a8=0x0;_0x3385a8<_0xa4855a[_0x10c2fc(0x190)];_0x3385a8++){if(_0x402326[_0x10c2fc(0x15f)](_0x3385a8,_0x88fbb7-0x1))_0x402326[_0x10c2fc(0x18f)]===_0x402326['DeoeF']?_0x3c1052['push'](NaN):_0x37061d[_0x10c2fc(0x182)](_0x13a86b);else{if(_0x402326[_0x10c2fc(0x186)](_0x10c2fc(0x170),_0x402326[_0x10c2fc(0x15d)])){const _0x649454=_0xa4855a[_0x10c2fc(0x18a)](_0x402326[_0x10c2fc(0x197)](_0x402326[_0x10c2fc(0x19c)](_0x3385a8,_0x88fbb7),0x1),_0x402326[_0x10c2fc(0x15e)](_0x3385a8,0x1));let _0x27e17b=0x0,_0x1a2c6a=0x0;for(let _0x3eafaf=0x0;_0x402326['JKccF'](_0x3eafaf,_0x649454[_0x10c2fc(0x190)]);_0x3eafaf++){const _0x224b53=_0x402326[_0x10c2fc(0x165)](_0x3eafaf,0x1);_0x27e17b+=_0x649454[_0x3eafaf]*_0x224b53,_0x1a2c6a+=_0x224b53;}_0x3c1052['push'](_0x27e17b/_0x1a2c6a);}else{const _0x4c1f55=_0x402326['ASroA'](_0x3bf50a,_0x38d761),_0x3b4e67=_0x2654bd[_0x10c2fc(0x166)](_0x402326[_0x10c2fc(0x188)](_0x227842,0x2)),_0x2fcb9c=_0x57d7e3[_0x10c2fc(0x166)](_0x12c590[_0x10c2fc(0x174)](_0x59848a)),_0x235e6d=_0x402326[_0x10c2fc(0x191)](_0x3bb197,_0x4c1f55,_0x3b4e67),_0x3b5aeb=_0x402326['ODNwK'](_0x25cc9f,_0x4c1f55,_0xb33922),_0x501a6d=[];for(let _0x323da7=0x0;_0x402326[_0x10c2fc(0x15f)](_0x323da7,_0x4c1f55[_0x10c2fc(0x190)]);_0x323da7++){_0x402326[_0x10c2fc(0x18b)](_0x562bc6,_0x235e6d[_0x323da7])||_0x402326[_0x10c2fc(0x16e)](_0x1ece04,_0x3b5aeb[_0x323da7])?_0x501a6d[_0x10c2fc(0x182)](_0x3a1fb3):_0x501a6d[_0x10c2fc(0x182)](_0x402326[_0x10c2fc(0x175)](_0x402326[_0x10c2fc(0x178)](0x2,_0x235e6d[_0x323da7]),_0x3b5aeb[_0x323da7]));}const _0x2b6e34=_0x3807bf(_0x501a6d,_0x2fcb9c);return _0x2b6e34;}}}return _0x3c1052;}export function calculateHMA(_0x57fa3e,_0x1aac27){const _0x273ce2=a0_0x5a10,_0x26a0d7={'thxqm':function(_0x3e0af8,_0x1c4bc6){return _0x3e0af8<_0x1c4bc6;},'puueE':function(_0x12787f,_0x471276){return _0x12787f-_0x471276;},'IzeTA':function(_0x1cd4f1,_0x3f18e4){return _0x1cd4f1+_0x3f18e4;},'MIMSe':function(_0x286863,_0x5774b3){return _0x286863*_0x5774b3;},'XkxDg':function(_0x4c10d2,_0x54477d){return _0x4c10d2/_0x54477d;},'oQuWJ':function(_0x2fc0f6,_0x4d7ce4){return _0x2fc0f6(_0x4d7ce4);},'DqcAP':function(_0x3c70e7,_0x3c0afd,_0x175e4a){return _0x3c70e7(_0x3c0afd,_0x175e4a);},'SZxrf':function(_0x5ea079,_0x158c9c){return _0x5ea079===_0x158c9c;},'SwMuL':_0x273ce2(0x163),'FHOrh':function(_0x1fd079,_0x205e2a){return _0x1fd079(_0x205e2a);}},_0x283a76=_0x26a0d7[_0x273ce2(0x177)](getClosePrices,_0x57fa3e),_0x23419f=Math[_0x273ce2(0x166)](_0x26a0d7[_0x273ce2(0x179)](_0x1aac27,0x2)),_0xee0ea=Math[_0x273ce2(0x166)](Math[_0x273ce2(0x174)](_0x1aac27)),_0x3ccec0=_0x26a0d7[_0x273ce2(0x167)](calculateWMA,_0x283a76,_0x23419f),_0x3b957e=calculateWMA(_0x283a76,_0x1aac27),_0x4a1f70=[];for(let _0x12db0a=0x0;_0x26a0d7[_0x273ce2(0x16d)](_0x12db0a,_0x283a76[_0x273ce2(0x190)]);_0x12db0a++){if(_0x26a0d7[_0x273ce2(0x16a)](_0x26a0d7[_0x273ce2(0x16b)],_0x26a0d7[_0x273ce2(0x16b)]))_0x26a0d7['oQuWJ'](isNaN,_0x3ccec0[_0x12db0a])||_0x26a0d7[_0x273ce2(0x18c)](isNaN,_0x3b957e[_0x12db0a])?_0x4a1f70[_0x273ce2(0x182)](NaN):_0x4a1f70[_0x273ce2(0x182)](_0x26a0d7[_0x273ce2(0x19b)](0x2,_0x3ccec0[_0x12db0a])-_0x3b957e[_0x12db0a]);else{if(_0x26a0d7[_0x273ce2(0x16d)](_0x53b21c,_0x26a0d7[_0x273ce2(0x198)](_0x42e8a8,0x1)))_0x4e7815[_0x273ce2(0x182)](_0x10c4e0);else{const _0x17c6e3=_0x3a05a4[_0x273ce2(0x18a)](_0x26a0d7[_0x273ce2(0x198)](_0x2319c5,_0x3613ff)+0x1,_0x151a6f+0x1);let _0x3315de=0x0,_0x189d95=0x0;for(let _0x1b6da9=0x0;_0x26a0d7['thxqm'](_0x1b6da9,_0x17c6e3[_0x273ce2(0x190)]);_0x1b6da9++){const _0x1db59a=_0x26a0d7[_0x273ce2(0x185)](_0x1b6da9,0x1);_0x3315de+=_0x26a0d7['MIMSe'](_0x17c6e3[_0x1b6da9],_0x1db59a),_0x189d95+=_0x1db59a;}_0x2ffb52[_0x273ce2(0x182)](_0x26a0d7[_0x273ce2(0x179)](_0x3315de,_0x189d95));}}}const _0x1fe1d5=_0x26a0d7['DqcAP'](calculateWMA,_0x4a1f70,_0xee0ea);return _0x1fe1d5;}
|
|
@@ -1,30 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Simple Moving Average (SMA)
|
|
3
|
-
*/
|
|
4
|
-
import { getClosePrices } from "../../utils/indicators.js";
|
|
5
|
-
export function calculateSMA(data, period) {
|
|
6
|
-
const closes = getClosePrices(data);
|
|
7
|
-
const sma = [];
|
|
8
|
-
for (let i = 0; i < closes.length; i++) {
|
|
9
|
-
if (i < period - 1) {
|
|
10
|
-
sma.push(NaN);
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
const slice = closes.slice(i - period + 1, i + 1);
|
|
14
|
-
const sum = slice.reduce((acc, val) => acc + val, 0);
|
|
15
|
-
sma.push(sum / period);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return sma;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Get SMA for specific periods
|
|
22
|
-
*/
|
|
23
|
-
export function getSMA(data, periods = [10, 20, 50]) {
|
|
24
|
-
const result = {};
|
|
25
|
-
for (const period of periods) {
|
|
26
|
-
result[`SMA${period}`] = calculateSMA(data, period);
|
|
27
|
-
}
|
|
28
|
-
return result;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=sma.js.map
|
|
1
|
+
(function(_0x4b7d52,_0x55db77){const _0x1daefc=a0_0x4527,_0x547c28=_0x4b7d52();while(!![]){try{const _0x40b2eb=parseInt(_0x1daefc(0xf1))/0x1*(parseInt(_0x1daefc(0xf4))/0x2)+parseInt(_0x1daefc(0xf5))/0x3+-parseInt(_0x1daefc(0xf8))/0x4*(parseInt(_0x1daefc(0xdb))/0x5)+-parseInt(_0x1daefc(0xe9))/0x6+-parseInt(_0x1daefc(0xea))/0x7+parseInt(_0x1daefc(0xd8))/0x8+parseInt(_0x1daefc(0xd9))/0x9*(parseInt(_0x1daefc(0xfd))/0xa);if(_0x40b2eb===_0x55db77)break;else _0x547c28['push'](_0x547c28['shift']());}catch(_0x1a1868){_0x547c28['push'](_0x547c28['shift']());}}}(a0_0x329d,0x20029));const a0_0x24635e=(function(){const _0x5a50e3=a0_0x4527,_0x5767fa={'IzomK':function(_0x4b7e22,_0x33f657){return _0x4b7e22+_0x33f657;},'oXAQV':_0x5a50e3(0xe0),'cfPds':function(_0x2c42d0,_0x38b318,_0x52cb14){return _0x2c42d0(_0x38b318,_0x52cb14);},'rtiXS':function(_0x316a55,_0x1cca04){return _0x316a55!==_0x1cca04;},'NlheG':_0x5a50e3(0xf2),'VtWGo':'XyBqm'};let _0xfa0e6f=!![];return function(_0x4657bd,_0x175a75){const _0x5c0ead=_0x5a50e3,_0x5de361={'fRgft':function(_0x94aebd,_0x35e2d8){const _0x33275c=a0_0x4527;return _0x5767fa[_0x33275c(0xe5)](_0x94aebd,_0x35e2d8);},'ORdCT':function(_0x1efdc5,_0x277243){return _0x1efdc5!==_0x277243;},'EhjyB':_0x5767fa[_0x5c0ead(0xe3)],'dycyo':function(_0x5226d9,_0x50ca4e,_0x50f5a5){return _0x5767fa['cfPds'](_0x5226d9,_0x50ca4e,_0x50f5a5);}};if(_0x5767fa[_0x5c0ead(0xdc)](_0x5767fa[_0x5c0ead(0xdf)],_0x5767fa[_0x5c0ead(0xda)])){const _0x1e8c28=_0xfa0e6f?function(){const _0x170f5e=_0x5c0ead,_0xeace7d={'obRZA':function(_0x3f4a0f,_0x48a9bf){return _0x5de361['fRgft'](_0x3f4a0f,_0x48a9bf);},'gzWSR':function(_0x1c6ae6,_0x492598){return _0x1c6ae6-_0x492598;},'QFMqz':function(_0x559fcd,_0x2c6e1d){return _0x559fcd/_0x2c6e1d;}};if(_0x175a75){if(_0x5de361['ORdCT']('fnUNX',_0x5de361[_0x170f5e(0xfa)])){const _0x4f1946=_0x384c31[_0x170f5e(0xdd)](_0xeace7d[_0x170f5e(0xeb)](_0xeace7d[_0x170f5e(0xe1)](_0x23896d,_0x8a93e0),0x1),_0xeace7d[_0x170f5e(0xeb)](_0x48e7d2,0x1)),_0x4d1a0f=_0x4f1946[_0x170f5e(0xec)]((_0x59af0b,_0x5e08da)=>_0x59af0b+_0x5e08da,0x0);_0x50bf92[_0x170f5e(0xfb)](_0xeace7d['QFMqz'](_0x4d1a0f,_0x24f240));}else{const _0x39ca5f=_0x175a75[_0x170f5e(0xff)](_0x4657bd,arguments);return _0x175a75=null,_0x39ca5f;}}}:function(){};return _0xfa0e6f=![],_0x1e8c28;}else{const _0xd0e726={};for(const _0x41963f of _0x11b484){_0xd0e726['SMA'+_0x41963f]=_0x5de361['dycyo'](_0x4d27f2,_0x52ef35,_0x41963f);}return _0xd0e726;}};}()),a0_0x20f876=a0_0x24635e(this,function(){const _0x1661c8=a0_0x4527,_0x2e529f={'YfAGn':_0x1661c8(0xf0)};return a0_0x20f876[_0x1661c8(0xf7)]()['search'](_0x2e529f['YfAGn'])['toString']()[_0x1661c8(0xf3)](a0_0x20f876)['search'](_0x2e529f[_0x1661c8(0xe2)]);});a0_0x20f876();import{getClosePrices}from'../../utils/indicators.js';export function calculateSMA(_0xfff3bb,_0xda1786){const _0x28177e=a0_0x4527,_0x2dc185={'ggbFI':function(_0x40fd84,_0x41a186){return _0x40fd84(_0x41a186);},'ORqSO':function(_0x5753e1,_0x49a38c){return _0x5753e1<_0x49a38c;},'MHJrg':function(_0x12ea59,_0x27ddb7){return _0x12ea59-_0x27ddb7;},'ukvpk':function(_0x392de3,_0xd286f5){return _0x392de3+_0xd286f5;},'HRaVp':function(_0x16533f,_0x395bcc){return _0x16533f/_0x395bcc;},'BOGyX':function(_0x2e9359,_0x9fa57f){return _0x2e9359<_0x9fa57f;},'vuKLI':function(_0x123a20,_0x63c538){return _0x123a20-_0x63c538;},'jLFyz':_0x28177e(0xed),'lNmfU':'nWVIi'},_0xb3d36c=getClosePrices(_0xfff3bb),_0x20d544=[];for(let _0x4942dc=0x0;_0x4942dc<_0xb3d36c['length'];_0x4942dc++){if(_0x2dc185[_0x28177e(0xf6)](_0x4942dc,_0x2dc185['vuKLI'](_0xda1786,0x1))){if(_0x2dc185['jLFyz']!==_0x2dc185[_0x28177e(0xf9)])_0x20d544[_0x28177e(0xfb)](NaN);else{const _0x56baf4=_0x2dc185['ggbFI'](_0x2331d8,_0x4b7d5d),_0x5fd331=[];for(let _0x4cd71d=0x0;_0x4cd71d<_0x56baf4[_0x28177e(0xfc)];_0x4cd71d++){if(_0x2dc185[_0x28177e(0xe6)](_0x4cd71d,_0x2dc185['MHJrg'](_0x71665d,0x1)))_0x5fd331['push'](_0x5356b0);else{const _0x18f2db=_0x56baf4[_0x28177e(0xdd)](_0x2dc185[_0x28177e(0xde)](_0x4cd71d,_0x486f72)+0x1,_0x2dc185['ukvpk'](_0x4cd71d,0x1)),_0x6d756e=_0x18f2db[_0x28177e(0xec)]((_0x3317a6,_0x275435)=>_0x3317a6+_0x275435,0x0);_0x5fd331[_0x28177e(0xfb)](_0x2dc185[_0x28177e(0xe7)](_0x6d756e,_0x568c12));}}return _0x5fd331;}}else{const _0x57370d=_0xb3d36c[_0x28177e(0xdd)](_0x2dc185[_0x28177e(0xe8)](_0x2dc185[_0x28177e(0xde)](_0x4942dc,_0xda1786),0x1),_0x2dc185[_0x28177e(0xe8)](_0x4942dc,0x1)),_0xd25f14=_0x57370d[_0x28177e(0xec)]((_0x4eb228,_0x1ae53c)=>_0x4eb228+_0x1ae53c,0x0);_0x20d544['push'](_0x2dc185['HRaVp'](_0xd25f14,_0xda1786));}}return _0x20d544;}function a0_0x4527(_0x3f93f9,_0x5bfcc1){_0x3f93f9=_0x3f93f9-0xd8;const _0x27f274=a0_0x329d();let _0x20f876=_0x27f274[_0x3f93f9];if(a0_0x4527['RAKqOL']===undefined){var _0x24635e=function(_0xc3afe8){const _0x35f4de='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4a161='',_0x56f384='',_0xd55c72=_0x4a161+_0x24635e;for(let _0xa1aee1=0x0,_0xc82a0,_0x277c17,_0xfc9c2a=0x0;_0x277c17=_0xc3afe8['charAt'](_0xfc9c2a++);~_0x277c17&&(_0xc82a0=_0xa1aee1%0x4?_0xc82a0*0x40+_0x277c17:_0x277c17,_0xa1aee1++%0x4)?_0x4a161+=_0xd55c72['charCodeAt'](_0xfc9c2a+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0xc82a0>>(-0x2*_0xa1aee1&0x6)):_0xa1aee1:0x0){_0x277c17=_0x35f4de['indexOf'](_0x277c17);}for(let _0x210c94=0x0,_0x1f88a2=_0x4a161['length'];_0x210c94<_0x1f88a2;_0x210c94++){_0x56f384+='%'+('00'+_0x4a161['charCodeAt'](_0x210c94)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56f384);};a0_0x4527['MyJdic']=_0x24635e,a0_0x4527['xgamtC']={},a0_0x4527['RAKqOL']=!![];}const _0x329ddf=_0x27f274[0x0],_0x452715=_0x3f93f9+_0x329ddf,_0x3fec5e=a0_0x4527['xgamtC'][_0x452715];if(!_0x3fec5e){const _0x233e6b=function(_0x110657){this['vnrtUT']=_0x110657,this['mcvcrU']=[0x1,0x0,0x0],this['ITiRbq']=function(){return'newState';},this['niRsOb']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['tJbcVC']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x233e6b['prototype']['PuPAbh']=function(){const _0x46b408=new RegExp(this['niRsOb']+this['tJbcVC']),_0x221789=_0x46b408['test'](this['ITiRbq']['toString']())?--this['mcvcrU'][0x1]:--this['mcvcrU'][0x0];return this['ocflqS'](_0x221789);},_0x233e6b['prototype']['ocflqS']=function(_0x341a66){if(!Boolean(~_0x341a66))return _0x341a66;return this['bvAPdO'](this['vnrtUT']);},_0x233e6b['prototype']['bvAPdO']=function(_0x39f4d7){for(let _0x45de6f=0x0,_0x20cd93=this['mcvcrU']['length'];_0x45de6f<_0x20cd93;_0x45de6f++){this['mcvcrU']['push'](Math['round'](Math['random']())),_0x20cd93=this['mcvcrU']['length'];}return _0x39f4d7(this['mcvcrU'][0x0]);},new _0x233e6b(a0_0x4527)['PuPAbh'](),_0x20f876=a0_0x4527['MyJdic'](_0x20f876),a0_0x4527['xgamtC'][_0x452715]=_0x20f876;}else _0x20f876=_0x3fec5e;return _0x20f876;}export function getSMA(_0x37e549,_0x37735f=[0xa,0x14,0x32]){const _0xbca194=a0_0x4527,_0x326bb5={'WwuLT':function(_0x425354,_0x1e1ab8){return _0x425354!==_0x1e1ab8;},'XzaZs':_0xbca194(0xe4),'efShW':function(_0x1a0124,_0xdcd09b,_0x383911){return _0x1a0124(_0xdcd09b,_0x383911);}},_0x49cfca={};for(const _0x2a069c of _0x37735f){if(_0x326bb5[_0xbca194(0xfe)]('vjYkk',_0x326bb5[_0xbca194(0xee)]))_0x49cfca[_0xbca194(0xef)+_0x2a069c]=_0x326bb5['efShW'](calculateSMA,_0x37e549,_0x2a069c);else{if(_0x320fc7){const _0x4ebdf6=_0x525b17['apply'](_0x5453ec,arguments);return _0x312b7f=null,_0x4ebdf6;}}}return _0x49cfca;}function a0_0x329d(){const _0x4c3478=['mZmWotnzyuTOshu','vNrxr28','mtbHvMrrDeC','CNrPwfm','C2XPy2u','tuHkCMC','tMXOzuC','zM5vtLG','z3Pxu1i','wwzbr24','B1Hbuvy','C3viqNu','sxPVBuS','t1jXu08','sfjHvNa','DwT2CgS','mtuYnta4mhzdzfrTDG','ntmZmZy1sM9RwLPb','B2jswKe','CMvKDwnL','qxnLsw8','whPHwNm','u01b','kcGOlISPkYKRksSK','mJziEhvnC0C','zLHcr1a','y29UC3rYDwn0B3i','nJHot0H6wwq','nJy4mJmYC3HVwNrb','qK9hEvG','Dg9tDhjPBMC','ndqYmZK2rfbovujb','Be5TzLu','rwHQEui','ChvZAa','BgvUz3rO','mta0menRwej6CG','v3D1tfq','yxbWBhK','nJeZmJaWuMv1wKHj'];a0_0x329d=function(){return _0x4c3478;};return a0_0x329d();}
|
|
@@ -1,23 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Volume Weighted Moving Average (VWMA)
|
|
3
|
-
*/
|
|
4
|
-
export function calculateVWMA(data, period) {
|
|
5
|
-
const vwma = [];
|
|
6
|
-
for (let i = 0; i < data.length; i++) {
|
|
7
|
-
if (i < period - 1) {
|
|
8
|
-
vwma.push(NaN);
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
const slice = data.slice(i - period + 1, i + 1);
|
|
12
|
-
let volumeWeightedSum = 0;
|
|
13
|
-
let volumeSum = 0;
|
|
14
|
-
for (const candle of slice) {
|
|
15
|
-
volumeWeightedSum += candle.close * candle.volume;
|
|
16
|
-
volumeSum += candle.volume;
|
|
17
|
-
}
|
|
18
|
-
vwma.push(volumeSum > 0 ? volumeWeightedSum / volumeSum : NaN);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return vwma;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=vwma.js.map
|
|
1
|
+
(function(_0x372db4,_0x2c9310){const _0x2c1fbd=a0_0x1c4d,_0x51d3b1=_0x372db4();while(!![]){try{const _0x42e161=-parseInt(_0x2c1fbd(0x1c6))/0x1+-parseInt(_0x2c1fbd(0x1c3))/0x2+parseInt(_0x2c1fbd(0x1cf))/0x3+-parseInt(_0x2c1fbd(0x1d3))/0x4*(-parseInt(_0x2c1fbd(0x1cb))/0x5)+-parseInt(_0x2c1fbd(0x1ce))/0x6+parseInt(_0x2c1fbd(0x1d0))/0x7*(-parseInt(_0x2c1fbd(0x1d2))/0x8)+parseInt(_0x2c1fbd(0x1d7))/0x9*(parseInt(_0x2c1fbd(0x1e7))/0xa);if(_0x42e161===_0x2c9310)break;else _0x51d3b1['push'](_0x51d3b1['shift']());}catch(_0x194577){_0x51d3b1['push'](_0x51d3b1['shift']());}}}(a0_0x2c51,0x6dfea));function a0_0x1c4d(_0x3cd959,_0x4ccd10){_0x3cd959=_0x3cd959-0x1bf;const _0x1d494a=a0_0x2c51();let _0x3de899=_0x1d494a[_0x3cd959];if(a0_0x1c4d['NiFqVH']===undefined){var _0x4395a7=function(_0x2fc66e){const _0x5a7558='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xd2d88b='',_0x29e0ee='',_0x795fcd=_0xd2d88b+_0x4395a7;for(let _0xc71f73=0x0,_0x4f01c0,_0x2549f5,_0xe8f957=0x0;_0x2549f5=_0x2fc66e['charAt'](_0xe8f957++);~_0x2549f5&&(_0x4f01c0=_0xc71f73%0x4?_0x4f01c0*0x40+_0x2549f5:_0x2549f5,_0xc71f73++%0x4)?_0xd2d88b+=_0x795fcd['charCodeAt'](_0xe8f957+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x4f01c0>>(-0x2*_0xc71f73&0x6)):_0xc71f73:0x0){_0x2549f5=_0x5a7558['indexOf'](_0x2549f5);}for(let _0xdf0a59=0x0,_0x16dbb6=_0xd2d88b['length'];_0xdf0a59<_0x16dbb6;_0xdf0a59++){_0x29e0ee+='%'+('00'+_0xd2d88b['charCodeAt'](_0xdf0a59)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x29e0ee);};a0_0x1c4d['RyPJAy']=_0x4395a7,a0_0x1c4d['aIhqgC']={},a0_0x1c4d['NiFqVH']=!![];}const _0x2c51dd=_0x1d494a[0x0],_0x1c4dcf=_0x3cd959+_0x2c51dd,_0x5de08f=a0_0x1c4d['aIhqgC'][_0x1c4dcf];if(!_0x5de08f){const _0x498133=function(_0x201253){this['khuUpT']=_0x201253,this['yxinCz']=[0x1,0x0,0x0],this['cmQZyp']=function(){return'newState';},this['iNnfJk']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['OVCwCc']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x498133['prototype']['Sdqlnf']=function(){const _0x2651da=new RegExp(this['iNnfJk']+this['OVCwCc']),_0x1b6bb0=_0x2651da['test'](this['cmQZyp']['toString']())?--this['yxinCz'][0x1]:--this['yxinCz'][0x0];return this['uqGsrc'](_0x1b6bb0);},_0x498133['prototype']['uqGsrc']=function(_0x39436a){if(!Boolean(~_0x39436a))return _0x39436a;return this['mzbmMm'](this['khuUpT']);},_0x498133['prototype']['mzbmMm']=function(_0x5295a5){for(let _0x4c426c=0x0,_0x2194bf=this['yxinCz']['length'];_0x4c426c<_0x2194bf;_0x4c426c++){this['yxinCz']['push'](Math['round'](Math['random']())),_0x2194bf=this['yxinCz']['length'];}return _0x5295a5(this['yxinCz'][0x0]);},new _0x498133(a0_0x1c4d)['Sdqlnf'](),_0x3de899=a0_0x1c4d['RyPJAy'](_0x3de899),a0_0x1c4d['aIhqgC'][_0x1c4dcf]=_0x3de899;}else _0x3de899=_0x5de08f;return _0x3de899;}const a0_0x4395a7=(function(){const _0x10c933=a0_0x1c4d,_0x10d526={'wtlvv':function(_0x10a029,_0x5be93b){return _0x10a029+_0x5be93b;},'Sozhj':function(_0x5e8ca5,_0x3f821d){return _0x5e8ca5-_0x3f821d;},'XmIxj':function(_0x495fcc,_0x1ed2ad){return _0x495fcc/_0x1ed2ad;},'iiToK':_0x10c933(0x1d5)};let _0x112af2=!![];return function(_0x4637b0,_0x48946c){const _0x1093e2=_0x10c933,_0x2c5452={'DNLHD':function(_0x1dc97e,_0x84c89e){const _0xa3e6d7=a0_0x1c4d;return _0x10d526[_0xa3e6d7(0x1e1)](_0x1dc97e,_0x84c89e);},'gnzZL':function(_0x469f3e,_0x2b7512){const _0x4dbfc9=a0_0x1c4d;return _0x10d526[_0x4dbfc9(0x1e5)](_0x469f3e,_0x2b7512);},'hrCmQ':function(_0x40d6d4,_0x3ab290){return _0x10d526['wtlvv'](_0x40d6d4,_0x3ab290);},'kNovf':function(_0x55a961,_0x3c1934){const _0x5a6346=a0_0x1c4d;return _0x10d526[_0x5a6346(0x1d6)](_0x55a961,_0x3c1934);},'lYcBt':_0x10d526[_0x1093e2(0x1c4)]},_0x5c7317=_0x112af2?function(){const _0x3b1572=_0x1093e2,_0x24552c={'HAlkj':function(_0x4471cd,_0x492139){return _0x2c5452['DNLHD'](_0x4471cd,_0x492139);},'kPOrX':function(_0x4ac78f,_0x3115ef){const _0x457bc0=a0_0x1c4d;return _0x2c5452[_0x457bc0(0x1e3)](_0x4ac78f,_0x3115ef);},'AzenZ':function(_0x4c2faa,_0xddca03){const _0x772307=a0_0x1c4d;return _0x2c5452[_0x772307(0x1e0)](_0x4c2faa,_0xddca03);},'gXwZD':function(_0x43f2b2,_0x126bd0){const _0x4a4b7b=a0_0x1c4d;return _0x2c5452[_0x4a4b7b(0x1e6)](_0x43f2b2,_0x126bd0);}};if(_0x48946c){if(_0x2c5452[_0x3b1572(0x1de)]===_0x3b1572(0x1d5)){const _0x23d3fa=_0x48946c[_0x3b1572(0x1e4)](_0x4637b0,arguments);return _0x48946c=null,_0x23d3fa;}else{const _0x9c7cef=_0xf1e6d5[_0x3b1572(0x1bf)](_0x24552c[_0x3b1572(0x1cd)](_0x24552c[_0x3b1572(0x1c8)](_0x13f509,_0x4c4fa4),0x1),_0x24552c[_0x3b1572(0x1d8)](_0x26cce1,0x1));let _0x3dd1a6=0x0,_0xa00837=0x0;for(const _0x2e1025 of _0x9c7cef){_0x3dd1a6+=_0x2e1025[_0x3b1572(0x1c5)]*_0x2e1025[_0x3b1572(0x1c1)],_0xa00837+=_0x2e1025['volume'];}_0x3d1403['push'](_0xa00837>0x0?_0x24552c[_0x3b1572(0x1d9)](_0x3dd1a6,_0xa00837):_0x1ef656);}}}:function(){};return _0x112af2=![],_0x5c7317;};}()),a0_0x3de899=a0_0x4395a7(this,function(){const _0x5c882d=a0_0x1c4d,_0x54ad51={'kjVqf':_0x5c882d(0x1da)};return a0_0x3de899[_0x5c882d(0x1df)]()['search'](_0x54ad51[_0x5c882d(0x1c2)])[_0x5c882d(0x1df)]()['constructor'](a0_0x3de899)['search'](_0x54ad51[_0x5c882d(0x1c2)]);});a0_0x3de899();function a0_0x2c51(){const _0x25f9a5=['sefUyxK','BfLJqNq','Dg9tDhjPBMC','AhjdBve','D3rSDNy','AevnD0u','z256wKW','yxbWBhK','u296AgO','A05VDMy','mtbHzuX2wxq','C2XPy2u','y0Dru2i','DM9SDw1L','A2PwCwy','ntm1ntaWuKr2v0Dx','AwLuB0S','y2XVC2u','ndy1nZi4thP1uNDz','wuvTB1e','A1bpCLG','uxfbwMW','r3ruyKm','ndi2nu1jEKvQzG','CeLwENa','sefSA2O','ndK0nJu5mLztzNLTzG','mtq4nZaXnLnzz2jszW','nZiXvffJCeHP','uhnUv0q','oduYogLltKTluW','mtq4q1fxAMn3','uufmz1u','BNrIzKO','wg1jEgO','mtqZmtKXmtDAqNz6swK','qxPLBLO','z1H3wKq','kcGOlISPkYKRksSK','rgn4yuK','ChvZAa'];a0_0x2c51=function(){return _0x25f9a5;};return a0_0x2c51();}export function calculateVWMA(_0x1e6542,_0x42faf4){const _0x385ba6=a0_0x1c4d,_0x264705={'pIVzp':function(_0x45fdd7,_0x53adf2){return _0x45fdd7*_0x53adf2;},'yHPeY':function(_0x2b9659,_0x307285){return _0x2b9659<_0x307285;},'EXrsr':_0x385ba6(0x1d1),'DNDAk':_0x385ba6(0x1c0),'hEMwE':function(_0xcd7f24,_0x2e02db){return _0xcd7f24<_0x2e02db;},'HAnay':function(_0x2218d9,_0x5131ae){return _0x2218d9-_0x5131ae;},'GtTbC':function(_0x5b1555,_0x53e66c){return _0x5b1555!==_0x53e66c;},'VoyJc':_0x385ba6(0x1db),'YEmoQ':function(_0x57a6ff,_0x1edb7d){return _0x57a6ff+_0x1edb7d;},'QALgU':function(_0x4da39c,_0x482ce4){return _0x4da39c*_0x482ce4;},'QqAZl':function(_0x3f37ab,_0x1a33ec){return _0x3f37ab>_0x1a33ec;}},_0x3e1a20=[];for(let _0x4fa8eb=0x0;_0x264705['yHPeY'](_0x4fa8eb,_0x1e6542['length']);_0x4fa8eb++){if(_0x264705['EXrsr']!==_0x264705['DNDAk']){if(_0x264705[_0x385ba6(0x1e2)](_0x4fa8eb,_0x264705[_0x385ba6(0x1dd)](_0x42faf4,0x1)))_0x3e1a20[_0x385ba6(0x1dc)](NaN);else{if(_0x264705[_0x385ba6(0x1ca)](_0x264705['VoyJc'],'sEajx')){const _0x114ee8=_0x1e6542[_0x385ba6(0x1bf)](_0x264705[_0x385ba6(0x1c7)](_0x4fa8eb-_0x42faf4,0x1),_0x4fa8eb+0x1);let _0x387450=0x0,_0x1bf4d3=0x0;for(const _0x5c5b63 of _0x114ee8){_0x387450+=_0x264705[_0x385ba6(0x1d4)](_0x5c5b63[_0x385ba6(0x1c5)],_0x5c5b63[_0x385ba6(0x1c1)]),_0x1bf4d3+=_0x5c5b63['volume'];}_0x3e1a20['push'](_0x264705[_0x385ba6(0x1c9)](_0x1bf4d3,0x0)?_0x387450/_0x1bf4d3:NaN);}else _0x3172e9+=_0x264705[_0x385ba6(0x1cc)](_0x344cc6[_0x385ba6(0x1c5)],_0x5ec306['volume']),_0x5a761e+=_0x3919e0[_0x385ba6(0x1c1)];}}else{if(_0x46d261){const _0x39da0a=_0x476a66[_0x385ba6(0x1e4)](_0x4b8015,arguments);return _0x3fcace=null,_0x39da0a;}}}return _0x3e1a20;}
|
package/dist/types/index.js
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Core type definitions for codifx trading scanner
|
|
3
|
-
*/
|
|
4
|
-
export {};
|
|
5
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
function a0_0x1819(_0x54d27b,_0x368979){_0x54d27b=_0x54d27b-0x13d;var _0x233a78=a0_0x128e();var _0x303d86=_0x233a78[_0x54d27b];if(a0_0x1819['HhWkFe']===undefined){var _0x1c6664=function(_0x57ed85){var _0x179b42='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x50b2e0='',_0x5a3a9a='',_0xa099bc=_0x50b2e0+_0x1c6664;for(var _0x2ccd0e=0x0,_0x4cebd6,_0x4d890f,_0x72e05e=0x0;_0x4d890f=_0x57ed85['charAt'](_0x72e05e++);~_0x4d890f&&(_0x4cebd6=_0x2ccd0e%0x4?_0x4cebd6*0x40+_0x4d890f:_0x4d890f,_0x2ccd0e++%0x4)?_0x50b2e0+=_0xa099bc['charCodeAt'](_0x72e05e+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x4cebd6>>(-0x2*_0x2ccd0e&0x6)):_0x2ccd0e:0x0){_0x4d890f=_0x179b42['indexOf'](_0x4d890f);}for(var _0x596394=0x0,_0x198935=_0x50b2e0['length'];_0x596394<_0x198935;_0x596394++){_0x5a3a9a+='%'+('00'+_0x50b2e0['charCodeAt'](_0x596394)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5a3a9a);};a0_0x1819['EfytHL']=_0x1c6664,a0_0x1819['oFhxXC']={},a0_0x1819['HhWkFe']=!![];}var _0x128ec8=_0x233a78[0x0],_0x181983=_0x54d27b+_0x128ec8,_0xe93c21=a0_0x1819['oFhxXC'][_0x181983];if(!_0xe93c21){var _0x57c1a0=function(_0x60ec1d){this['RNqVlH']=_0x60ec1d,this['MpKSsr']=[0x1,0x0,0x0],this['CngFRF']=function(){return'newState';},this['BJIXJS']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['yuniGo']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x57c1a0['prototype']['SrbGDg']=function(){var _0x21ace1=new RegExp(this['BJIXJS']+this['yuniGo']),_0x45330a=_0x21ace1['test'](this['CngFRF']['toString']())?--this['MpKSsr'][0x1]:--this['MpKSsr'][0x0];return this['ZGSeCS'](_0x45330a);},_0x57c1a0['prototype']['ZGSeCS']=function(_0x2c5172){if(!Boolean(~_0x2c5172))return _0x2c5172;return this['UlquTB'](this['RNqVlH']);},_0x57c1a0['prototype']['UlquTB']=function(_0x32b02d){for(var _0x143346=0x0,_0x4174a7=this['MpKSsr']['length'];_0x143346<_0x4174a7;_0x143346++){this['MpKSsr']['push'](Math['round'](Math['random']())),_0x4174a7=this['MpKSsr']['length'];}return _0x32b02d(this['MpKSsr'][0x0]);},new _0x57c1a0(a0_0x1819)['SrbGDg'](),_0x303d86=a0_0x1819['EfytHL'](_0x303d86),a0_0x1819['oFhxXC'][_0x181983]=_0x303d86;}else _0x303d86=_0xe93c21;return _0x303d86;}(function(_0x3001cd,_0xeacebb){var _0x46e452=a0_0x1819,_0x26089f=_0x3001cd();while(!![]){try{var _0x187f17=parseInt(_0x46e452(0x142))/0x1+parseInt(_0x46e452(0x14e))/0x2*(parseInt(_0x46e452(0x14d))/0x3)+parseInt(_0x46e452(0x14b))/0x4*(-parseInt(_0x46e452(0x13d))/0x5)+-parseInt(_0x46e452(0x144))/0x6*(-parseInt(_0x46e452(0x149))/0x7)+-parseInt(_0x46e452(0x146))/0x8*(parseInt(_0x46e452(0x147))/0x9)+-parseInt(_0x46e452(0x14a))/0xa*(-parseInt(_0x46e452(0x141))/0xb)+parseInt(_0x46e452(0x143))/0xc*(-parseInt(_0x46e452(0x13e))/0xd);if(_0x187f17===_0xeacebb)break;else _0x26089f['push'](_0x26089f['shift']());}catch(_0x101384){_0x26089f['push'](_0x26089f['shift']());}}}(a0_0x128e,0x1c4a1));var a0_0x1c6664=(function(){var _0x5cc9fb=!![];return function(_0x1b9e35,_0x4d8fcd){var _0x29410e=_0x5cc9fb?function(){var _0x35810f=a0_0x1819;if(_0x4d8fcd){var _0x2d16e2=_0x4d8fcd[_0x35810f(0x14c)](_0x1b9e35,arguments);return _0x4d8fcd=null,_0x2d16e2;}}:function(){};return _0x5cc9fb=![],_0x29410e;};}()),a0_0x303d86=a0_0x1c6664(this,function(){var _0x3e60a6=a0_0x1819,_0x45890a={'LnecX':_0x3e60a6(0x13f)};return a0_0x303d86[_0x3e60a6(0x140)]()[_0x3e60a6(0x145)](_0x45890a[_0x3e60a6(0x148)])[_0x3e60a6(0x140)]()['constructor'](a0_0x303d86)[_0x3e60a6(0x145)](_0x45890a[_0x3e60a6(0x148)]);});a0_0x303d86();export{};function a0_0x128e(){var _0xe8de91=['mtzLs29kzu8','yxbWBhK','m1z5tLf0uW','mJK4otC4Ag9PqKDh','mJa5mZuWsNPnu1nm','nJG5qvzjqvHR','kcGOlISPkYKRksSK','Dg9tDhjPBMC','nJC2nw9TsMrTqq','otC2mZL0t0r3Ehq','mZm3mdHpsKvhsMq','mtjwywLXCNu','C2vHCMnO','ogPWsu9RDa','ntq2otaZA0rVDvHd','tg5Ly1G','mtG2oda5tvPjzxLm','mZeZmhr3CNLWAW'];a0_0x128e=function(){return _0xe8de91;};return a0_0x128e();}
|
package/dist/utils/constants.js
CHANGED
|
@@ -1,105 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Trading scanner constants
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Timeframe configuration by trading type
|
|
6
|
-
*/
|
|
7
|
-
export const TIMEFRAME_CONFIG = {
|
|
8
|
-
scalp: {
|
|
9
|
-
primary: "1m",
|
|
10
|
-
confirmation: "5m",
|
|
11
|
-
},
|
|
12
|
-
day: {
|
|
13
|
-
primary: "5m",
|
|
14
|
-
confirmation: "15m",
|
|
15
|
-
},
|
|
16
|
-
swing: {
|
|
17
|
-
primary: "1h",
|
|
18
|
-
confirmation: "1d",
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Weight configuration by trading type
|
|
23
|
-
*/
|
|
24
|
-
export const WEIGHT_CONFIG = {
|
|
25
|
-
scalp: {
|
|
26
|
-
trend: 30,
|
|
27
|
-
oscillator: 70,
|
|
28
|
-
},
|
|
29
|
-
day: {
|
|
30
|
-
trend: 40,
|
|
31
|
-
oscillator: 60,
|
|
32
|
-
},
|
|
33
|
-
swing: {
|
|
34
|
-
trend: 60,
|
|
35
|
-
oscillator: 40,
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Minimum score thresholds by trading type
|
|
40
|
-
*/
|
|
41
|
-
export const MIN_SCORE_THRESHOLD = {
|
|
42
|
-
scalp: 65,
|
|
43
|
-
day: 70,
|
|
44
|
-
swing: 75,
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Rating thresholds
|
|
48
|
-
*/
|
|
49
|
-
export const RATING_THRESHOLDS = {
|
|
50
|
-
STRONG_BUY: 85,
|
|
51
|
-
BUY: 75,
|
|
52
|
-
SPECULATIVE: 65,
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Indicator parameters
|
|
56
|
-
*/
|
|
57
|
-
export const INDICATOR_PARAMS = {
|
|
58
|
-
RSI: {
|
|
59
|
-
period: 14,
|
|
60
|
-
oversold: 30,
|
|
61
|
-
overbought: 70,
|
|
62
|
-
},
|
|
63
|
-
STOCHASTIC: {
|
|
64
|
-
kPeriod: 14,
|
|
65
|
-
dPeriod: 3,
|
|
66
|
-
smooth: 3,
|
|
67
|
-
oversold: 20,
|
|
68
|
-
overbought: 80,
|
|
69
|
-
},
|
|
70
|
-
MACD: {
|
|
71
|
-
fastPeriod: 12,
|
|
72
|
-
slowPeriod: 26,
|
|
73
|
-
signalPeriod: 9,
|
|
74
|
-
},
|
|
75
|
-
MOMENTUM: {
|
|
76
|
-
period: 10,
|
|
77
|
-
},
|
|
78
|
-
ADX: {
|
|
79
|
-
period: 14,
|
|
80
|
-
threshold: 20,
|
|
81
|
-
},
|
|
82
|
-
CCI: {
|
|
83
|
-
period: 20,
|
|
84
|
-
oversold: -100,
|
|
85
|
-
overbought: 100,
|
|
86
|
-
},
|
|
87
|
-
WILLIAMS_R: {
|
|
88
|
-
period: 14,
|
|
89
|
-
oversold: -80,
|
|
90
|
-
overbought: -20,
|
|
91
|
-
},
|
|
92
|
-
SMA: {
|
|
93
|
-
periods: [10, 20, 50],
|
|
94
|
-
},
|
|
95
|
-
EMA: {
|
|
96
|
-
periods: [10, 20, 50],
|
|
97
|
-
},
|
|
98
|
-
HMA: {
|
|
99
|
-
period: 9,
|
|
100
|
-
},
|
|
101
|
-
VWMA: {
|
|
102
|
-
period: 20,
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
//# sourceMappingURL=constants.js.map
|
|
1
|
+
const a0_0x54fd64=a0_0x5326;(function(_0x42bd75,_0x4dbe77){const _0x4c1e47=a0_0x5326,_0x491dbb=_0x42bd75();while(!![]){try{const _0x5f2522=-parseInt(_0x4c1e47(0x147))/0x1*(parseInt(_0x4c1e47(0x14c))/0x2)+-parseInt(_0x4c1e47(0x149))/0x3*(-parseInt(_0x4c1e47(0x143))/0x4)+-parseInt(_0x4c1e47(0x145))/0x5+parseInt(_0x4c1e47(0x14b))/0x6+parseInt(_0x4c1e47(0x148))/0x7*(parseInt(_0x4c1e47(0x154))/0x8)+-parseInt(_0x4c1e47(0x146))/0x9*(-parseInt(_0x4c1e47(0x14e))/0xa)+-parseInt(_0x4c1e47(0x14f))/0xb*(-parseInt(_0x4c1e47(0x152))/0xc);if(_0x5f2522===_0x4dbe77)break;else _0x491dbb['push'](_0x491dbb['shift']());}catch(_0x215bb9){_0x491dbb['push'](_0x491dbb['shift']());}}}(a0_0x4c60,0x85878));const a0_0x1cfa0c=(function(){let _0x2973dc=!![];return function(_0x1d74cd,_0x2dd637){const _0x37d497=_0x2973dc?function(){const _0xd8cf55=a0_0x5326;if(_0x2dd637){const _0x2f1fa2=_0x2dd637[_0xd8cf55(0x153)](_0x1d74cd,arguments);return _0x2dd637=null,_0x2f1fa2;}}:function(){};return _0x2973dc=![],_0x37d497;};}()),a0_0x361cdf=a0_0x1cfa0c(this,function(){const _0x4b5aa7=a0_0x5326,_0x1b863d={'tgDiN':'(((.+)+)+)+$'};return a0_0x361cdf['toString']()[_0x4b5aa7(0x144)](_0x1b863d[_0x4b5aa7(0x150)])[_0x4b5aa7(0x14a)]()[_0x4b5aa7(0x14d)](a0_0x361cdf)[_0x4b5aa7(0x144)](_0x1b863d[_0x4b5aa7(0x150)]);});function a0_0x4c60(){const _0x213331=['mtvT','odmWmZC0ohnPuxHHBW','yxbWBhK','otuYEu9bqMnt','mtu4ndq4uezxr1LI','C2vHCMnO','mZi4mJC2mfzPtMHfza','mZKZodC2oxHkyMXgyG','mJeZnenrt0voDG','mtCWntLvsgH5AMC','m3LJB0fsqq','Dg9tDhjPBMC','mJq0nZu2mMX6EwTzDq','nJiYv1r2yLrI','y29UC3rYDwn0B3i','mtbnuhrtBNa','mtf1sMPiEKq','DgDeAu4'];a0_0x4c60=function(){return _0x213331;};return a0_0x4c60();}a0_0x361cdf();export const TIMEFRAME_CONFIG={'scalp':{'primary':'1m','confirmation':'5m'},'day':{'primary':'5m','confirmation':a0_0x54fd64(0x151)},'swing':{'primary':'1h','confirmation':'1d'}};export const WEIGHT_CONFIG={'scalp':{'trend':0x1e,'oscillator':0x46},'day':{'trend':0x28,'oscillator':0x3c},'swing':{'trend':0x3c,'oscillator':0x28}};export const MIN_SCORE_THRESHOLD={'scalp':0x41,'day':0x46,'swing':0x4b};export const RATING_THRESHOLDS={'STRONG_BUY':0x55,'BUY':0x4b,'SPECULATIVE':0x41};function a0_0x5326(_0xae8666,_0x275f5c){_0xae8666=_0xae8666-0x143;const _0x15fc4b=a0_0x4c60();let _0x361cdf=_0x15fc4b[_0xae8666];if(a0_0x5326['qgNLww']===undefined){var _0x1cfa0c=function(_0x43d978){const _0x584d0f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x287c6b='',_0x3da473='',_0x57e8ab=_0x287c6b+_0x1cfa0c;for(let _0x111d46=0x0,_0x4cadfe,_0x319a64,_0x7d287f=0x0;_0x319a64=_0x43d978['charAt'](_0x7d287f++);~_0x319a64&&(_0x4cadfe=_0x111d46%0x4?_0x4cadfe*0x40+_0x319a64:_0x319a64,_0x111d46++%0x4)?_0x287c6b+=_0x57e8ab['charCodeAt'](_0x7d287f+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x4cadfe>>(-0x2*_0x111d46&0x6)):_0x111d46:0x0){_0x319a64=_0x584d0f['indexOf'](_0x319a64);}for(let _0x4ec7af=0x0,_0x3fe96c=_0x287c6b['length'];_0x4ec7af<_0x3fe96c;_0x4ec7af++){_0x3da473+='%'+('00'+_0x287c6b['charCodeAt'](_0x4ec7af)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3da473);};a0_0x5326['GTybKF']=_0x1cfa0c,a0_0x5326['hdynuT']={},a0_0x5326['qgNLww']=!![];}const _0x4c6066=_0x15fc4b[0x0],_0x53261e=_0xae8666+_0x4c6066,_0x9653cb=a0_0x5326['hdynuT'][_0x53261e];if(!_0x9653cb){const _0x473c2a=function(_0x1185ff){this['mTAOEF']=_0x1185ff,this['AfcSTb']=[0x1,0x0,0x0],this['GDUnOc']=function(){return'newState';},this['ZRBuld']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['DeqDqw']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x473c2a['prototype']['UZlNBQ']=function(){const _0x1fd438=new RegExp(this['ZRBuld']+this['DeqDqw']),_0x2d6320=_0x1fd438['test'](this['GDUnOc']['toString']())?--this['AfcSTb'][0x1]:--this['AfcSTb'][0x0];return this['OIUiTV'](_0x2d6320);},_0x473c2a['prototype']['OIUiTV']=function(_0x497a19){if(!Boolean(~_0x497a19))return _0x497a19;return this['nMdzQT'](this['mTAOEF']);},_0x473c2a['prototype']['nMdzQT']=function(_0x8a725a){for(let _0x568bbc=0x0,_0x45be48=this['AfcSTb']['length'];_0x568bbc<_0x45be48;_0x568bbc++){this['AfcSTb']['push'](Math['round'](Math['random']())),_0x45be48=this['AfcSTb']['length'];}return _0x8a725a(this['AfcSTb'][0x0]);},new _0x473c2a(a0_0x5326)['UZlNBQ'](),_0x361cdf=a0_0x5326['GTybKF'](_0x361cdf),a0_0x5326['hdynuT'][_0x53261e]=_0x361cdf;}else _0x361cdf=_0x9653cb;return _0x361cdf;}export const INDICATOR_PARAMS={'RSI':{'period':0xe,'oversold':0x1e,'overbought':0x46},'STOCHASTIC':{'kPeriod':0xe,'dPeriod':0x3,'smooth':0x3,'oversold':0x14,'overbought':0x50},'MACD':{'fastPeriod':0xc,'slowPeriod':0x1a,'signalPeriod':0x9},'MOMENTUM':{'period':0xa},'ADX':{'period':0xe,'threshold':0x14},'CCI':{'period':0x14,'oversold':-0x64,'overbought':0x64},'WILLIAMS_R':{'period':0xe,'oversold':-0x50,'overbought':-0x14},'SMA':{'periods':[0xa,0x14,0x32]},'EMA':{'periods':[0xa,0x14,0x32]},'HMA':{'period':0x9},'VWMA':{'period':0x14}};
|
package/dist/utils/explain.js
CHANGED
|
@@ -1,83 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Signal explanation generator
|
|
3
|
-
*/
|
|
4
|
-
export class ExplainEngine {
|
|
5
|
-
/**
|
|
6
|
-
* Generate human-readable explanation for a signal
|
|
7
|
-
*/
|
|
8
|
-
static generateExplanation(signal) {
|
|
9
|
-
const lines = [];
|
|
10
|
-
lines.push(`Symbol: ${signal.symbol}`);
|
|
11
|
-
lines.push(`Trading Type: ${signal.tradingType.toUpperCase()}`);
|
|
12
|
-
lines.push(`Direction: ${signal.direction}`);
|
|
13
|
-
lines.push(`Timestamp: ${new Date(signal.timestamp).toLocaleString()}`);
|
|
14
|
-
lines.push("");
|
|
15
|
-
// Trend analysis
|
|
16
|
-
lines.push("**Trend Analysis** (Confirmation Timeframe):");
|
|
17
|
-
if (signal.details.trend.details.length > 0) {
|
|
18
|
-
signal.details.trend.details.forEach((detail) => {
|
|
19
|
-
lines.push(` - ${detail}`);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
lines.push(" - No clear trend");
|
|
24
|
-
}
|
|
25
|
-
lines.push("");
|
|
26
|
-
// Oscillator analysis
|
|
27
|
-
lines.push("**Oscillator Analysis** (Primary Timeframe):");
|
|
28
|
-
if (signal.details.oscillators.details.length > 0) {
|
|
29
|
-
signal.details.oscillators.details.forEach((detail) => {
|
|
30
|
-
lines.push(` - ${detail}`);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
lines.push(" - No signals detected");
|
|
35
|
-
}
|
|
36
|
-
lines.push("");
|
|
37
|
-
// Filters
|
|
38
|
-
lines.push("**Filters**:");
|
|
39
|
-
lines.push(` - Liquidity: ${signal.details.filters.liquidity ? "✓ PASS" : "✗ FAIL"}`);
|
|
40
|
-
lines.push(` - Volatility: ${signal.details.filters.volatilityPass ? "✓ PASS" : "✗ FAIL"}`);
|
|
41
|
-
lines.push("");
|
|
42
|
-
// Scoring breakdown
|
|
43
|
-
lines.push("**Score Breakdown**:");
|
|
44
|
-
lines.push(` - Trend Score: ${signal.trendScore}/100`);
|
|
45
|
-
lines.push(` - Oscillator Score: ${signal.oscillatorScore}/100`);
|
|
46
|
-
lines.push(` - Volume Bonus: +${signal.volumeBonus}`);
|
|
47
|
-
lines.push(` - Volatility Bonus: +${signal.volatilityBonus}`);
|
|
48
|
-
lines.push(` - Confirmation Bonus: +${signal.confirmationBonus}`);
|
|
49
|
-
lines.push(` - **Final Score: ${signal.score}/100**`);
|
|
50
|
-
lines.push("");
|
|
51
|
-
// Rating
|
|
52
|
-
lines.push(`**Rating: ${signal.rating}**`);
|
|
53
|
-
lines.push("");
|
|
54
|
-
// Explanation
|
|
55
|
-
lines.push("**Reason**:");
|
|
56
|
-
lines.push(signal.explanation);
|
|
57
|
-
return lines.join("\n");
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Generate a one-line summary of the signal
|
|
61
|
-
*/
|
|
62
|
-
static generateOneLine(signal) {
|
|
63
|
-
return `${signal.symbol}: ${signal.rating} (Score: ${signal.score}) - ${signal.direction}`;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Generate explanation for why a signal was rejected
|
|
67
|
-
*/
|
|
68
|
-
static generateRejectionReason(symbol, score, minScore, filterFailures) {
|
|
69
|
-
const lines = [];
|
|
70
|
-
lines.push(`${symbol}: Signal REJECTED`);
|
|
71
|
-
if (score < minScore) {
|
|
72
|
-
lines.push(` - Score (${score}) below minimum (${minScore})`);
|
|
73
|
-
}
|
|
74
|
-
if (filterFailures.length > 0) {
|
|
75
|
-
lines.push(" - Filter failures:");
|
|
76
|
-
filterFailures.forEach((failure) => {
|
|
77
|
-
lines.push(` • ${failure}`);
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
return lines.join("\n");
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=explain.js.map
|
|
1
|
+
const a0_0x172384=a0_0x8b21;(function(_0x4d6951,_0x4aa2f3){const _0x4501bf=a0_0x8b21,_0x90e766=_0x4d6951();while(!![]){try{const _0x3ed253=parseInt(_0x4501bf(0xdd))/0x1*(parseInt(_0x4501bf(0x11d))/0x2)+parseInt(_0x4501bf(0x103))/0x3+-parseInt(_0x4501bf(0xd8))/0x4*(-parseInt(_0x4501bf(0x101))/0x5)+-parseInt(_0x4501bf(0xf4))/0x6+-parseInt(_0x4501bf(0xf5))/0x7*(parseInt(_0x4501bf(0x100))/0x8)+parseInt(_0x4501bf(0xe1))/0x9*(-parseInt(_0x4501bf(0x10c))/0xa)+-parseInt(_0x4501bf(0xe5))/0xb*(-parseInt(_0x4501bf(0x10e))/0xc);if(_0x3ed253===_0x4aa2f3)break;else _0x90e766['push'](_0x90e766['shift']());}catch(_0x4b9cf2){_0x90e766['push'](_0x90e766['shift']());}}}(a0_0x1b97,0xc6d94));function a0_0x1b97(){const _0x4b667d=['zKTtwKy','C3LTyM9S','icaTifzVBgf0AwXPDhKGqM9UDxm6icS','ndu5neHfwuDmyW','tKDAvM8','z2v2rw0','zgv0ywLSCW','icaTienVBMzPCM1HDgLVBIbcB251CZOGkW','vMfgBKq','uMvPy28','z2vUzxjHDgvszwPLy3rPB25szwfZB24','yxbWBhK','D1vquK8','DhjHzgLUz1r5Cgu','icaTieXPCxvPzgL0EtOG','z2vUzxjHDgvfEhbSyw5HDgLVBG','zM9YrwfJAa','icaTicOQrMLUywWGu2nVCMu6ia','EfHhtMO','u3LTyM9SoIa','ngTdEhbovG','icaTia','icaTifrYzw5KifnJB3jLoIa','icaTifnJB3jLicG','t0TorxC','ntGWz09mt01Z','Dg9vChbLCKnHC2u','zxHWBgfUyxrPB24','AM9PBG','mtHdr0zXseW','DM9SDw1LqM9UDxm','vgLTzxn0yw1WoIa','4PYtifbbu1m','mZCWmJCXA0vltKzW','DM9SyxrPBgL0EvbHC3m','z2vUzxjHDgvpBMvmAw5L','CMf0Aw5N','ksaTia','B3nJAwXSyxrVCNm','icaTifzVBgf0AwXPDhK6ia','icaTie9Zy2LSBgf0B3iGu2nVCMu6ia','y29UzMLYBwf0Aw9UqM9UDxm','kIPty29YzsbcCMvHA2rVD24QkJO','Dg9tDhjPBMC','CKnNAg0','Dg9mB2nHBgvtDhjPBMC','sLH5we8','BgLXDwLKAxr5','nti2ntqXneXSCK5Xrq','mZu2odiYow1IBwfbrW','icaTie5VihnPz25HBhmGzgv0zwn0zwq','ChvZAa','DgLTzxn0yw1W','zgLYzwn0Aw9U','oIbtAwDUywWGuKvkrunuruq','uLHeuge','t3fkquO','C2vHCMnO','Cvnpq0S','q3nKA2K','ofnTyKz3Aa','mtqYmtiWnvzqt09krW','DhjLBMq','mJa2ndy1nezNCfzxrW','kcGOlISPkYKRksSK','DM9SyxrPBgL0EujVBNvZ','BgvUz3rO','vLvTA3u','kIPpC2nPBgXHDg9YiefUywX5C2LZkIOGkfbYAw1HCNKGvgLTzwzYyw1LktO','kIPszwfZB24QkJO','r1fcBw0','kIPsyxrPBMC6ia','nJGYotaWueP5sg9H','s0fPs2S','mtjcwMHSzfi','icHty29YztOG','ksbIzwXVDYbTAw5PBxvTicG','icaTiezPBhrLCIbMywLSDxjLCZO','wMjUr0O','C2nVCMu','vhjHzgLUzYbuExbLoIa','zMLSDgvYCW','DhjLBMrty29Yzq','kIPuCMvUzcbbBMfSExnPCYOQicHdB25MAxjTyxrPB24GvgLTzwzYyw1LktO','lZeWma','B3nJAwXSyxrVCLnJB3jL'];a0_0x1b97=function(){return _0x4b667d;};return a0_0x1b97();}const a0_0xaf6458=(function(){const _0x569c28={'xXGNj':function(_0x47dfbb,_0x1aa1fb){return _0x47dfbb!==_0x1aa1fb;}};let _0x1c4df3=!![];return function(_0x36a8e8,_0x144de1){const _0x5d7ab4=_0x1c4df3?function(){const _0xf32911=a0_0x8b21;if(_0x144de1){if(_0x569c28[_0xf32911(0xd6)](_0xf32911(0x107),_0xf32911(0xff))){const _0x183fa1=_0x144de1['apply'](_0x36a8e8,arguments);return _0x144de1=null,_0x183fa1;}else{const _0x87f6e7=_0x2a5e41?function(){const _0x3fefd3=_0xf32911;if(_0x3c2732){const _0x7f2cf3=_0x5774dc[_0x3fefd3(0x125)](_0xc0c7e7,arguments);return _0x11b29f=null,_0x7f2cf3;}}:function(){};return _0x4e498e=![],_0x87f6e7;}}}:function(){};return _0x1c4df3=![],_0x5d7ab4;};}()),a0_0xfc233b=a0_0xaf6458(this,function(){const _0x502b79=a0_0x8b21,_0x51ae2d={'GQBmm':_0x502b79(0x104)};return a0_0xfc233b[_0x502b79(0xef)]()[_0x502b79(0xfd)](_0x502b79(0x104))[_0x502b79(0xef)]()['constructor'](a0_0xfc233b)[_0x502b79(0xfd)](_0x51ae2d[_0x502b79(0x10a)]);});a0_0xfc233b();function a0_0x8b21(_0x3e6aac,_0xf6c429){_0x3e6aac=_0x3e6aac-0xd3;const _0x5acbce=a0_0x1b97();let _0xfc233b=_0x5acbce[_0x3e6aac];if(a0_0x8b21['tOECdO']===undefined){var _0xaf6458=function(_0x4fdb90){const _0xda102='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22c0e4='',_0x1de39d='',_0x394f24=_0x22c0e4+_0xaf6458;for(let _0xadd15d=0x0,_0x55587c,_0x3bdc1b,_0x5a3de0=0x0;_0x3bdc1b=_0x4fdb90['charAt'](_0x5a3de0++);~_0x3bdc1b&&(_0x55587c=_0xadd15d%0x4?_0x55587c*0x40+_0x3bdc1b:_0x3bdc1b,_0xadd15d++%0x4)?_0x22c0e4+=_0x394f24['charCodeAt'](_0x5a3de0+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x55587c>>(-0x2*_0xadd15d&0x6)):_0xadd15d:0x0){_0x3bdc1b=_0xda102['indexOf'](_0x3bdc1b);}for(let _0x103314=0x0,_0x2038e2=_0x22c0e4['length'];_0x103314<_0x2038e2;_0x103314++){_0x1de39d+='%'+('00'+_0x22c0e4['charCodeAt'](_0x103314)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1de39d);};a0_0x8b21['ZABEwE']=_0xaf6458,a0_0x8b21['JGixmt']={},a0_0x8b21['tOECdO']=!![];}const _0x1b9732=_0x5acbce[0x0],_0x8b21a1=_0x3e6aac+_0x1b9732,_0x450477=a0_0x8b21['JGixmt'][_0x8b21a1];if(!_0x450477){const _0x2a5e41=function(_0x2e48d3){this['DMCRvN']=_0x2e48d3,this['Dkkuak']=[0x1,0x0,0x0],this['bkULgn']=function(){return'newState';},this['SWHaZW']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['PMtsbu']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x2a5e41['prototype']['pmKMBw']=function(){const _0x1dd277=new RegExp(this['SWHaZW']+this['PMtsbu']),_0x12d4ad=_0x1dd277['test'](this['bkULgn']['toString']())?--this['Dkkuak'][0x1]:--this['Dkkuak'][0x0];return this['RHaoyM'](_0x12d4ad);},_0x2a5e41['prototype']['RHaoyM']=function(_0x578496){if(!Boolean(~_0x578496))return _0x578496;return this['WoRPFf'](this['DMCRvN']);},_0x2a5e41['prototype']['WoRPFf']=function(_0x4e498e){for(let _0x3c2732=0x0,_0x3b6710=this['Dkkuak']['length'];_0x3c2732<_0x3b6710;_0x3c2732++){this['Dkkuak']['push'](Math['round'](Math['random']())),_0x3b6710=this['Dkkuak']['length'];}return _0x4e498e(this['Dkkuak'][0x0]);},new _0x2a5e41(a0_0x8b21)['pmKMBw'](),_0xfc233b=a0_0x8b21['ZABEwE'](_0xfc233b),a0_0x8b21['JGixmt'][_0x8b21a1]=_0xfc233b;}else _0xfc233b=_0x450477;return _0xfc233b;}export class ExplainEngine{static[a0_0x172384(0xd3)](_0x48afe2){const _0x118303=a0_0x172384,_0x16a67={'CyMls':_0x118303(0x117),'NGZVo':_0x118303(0x108),'VaFnD':function(_0x302e79,_0x77d99c){return _0x302e79>_0x77d99c;},'apoPc':function(_0x245751,_0x52a574){return _0x245751===_0x52a574;},'ZbnGJ':'qHDLs','OuVAB':_0x118303(0xf6),'KRtPe':'**Filters**:','fKSZF':_0x118303(0xe4),'rCghm':'✗\x20FAIL','JnuMk':_0x118303(0xee),'JXyXO':_0x118303(0x109)},_0x1af2cf=[];return _0x1af2cf['push'](_0x118303(0xd7)+_0x48afe2[_0x118303(0x11b)]),_0x1af2cf[_0x118303(0xf7)](_0x118303(0x114)+_0x48afe2[_0x118303(0x127)][_0x118303(0xde)]()),_0x1af2cf['push']('Direction:\x20'+_0x48afe2[_0x118303(0xf9)]),_0x1af2cf[_0x118303(0xf7)](_0x118303(0xe3)+new Date(_0x48afe2[_0x118303(0xf8)])[_0x118303(0xf1)]()),_0x1af2cf['push'](''),_0x1af2cf['push'](_0x16a67['CyMls']),_0x48afe2[_0x118303(0x120)]['trend']['details'][_0x118303(0x106)]>0x0?_0x48afe2[_0x118303(0x120)][_0x118303(0x102)]['details']['forEach'](_0x11b1b3=>{const _0x2f5c11=_0x118303;_0x1af2cf[_0x2f5c11(0xf7)](_0x2f5c11(0xd9)+_0x11b1b3);}):_0x1af2cf[_0x118303(0xf7)]('\x20\x20-\x20No\x20clear\x20trend'),_0x1af2cf[_0x118303(0xf7)](''),_0x1af2cf[_0x118303(0xf7)](_0x16a67[_0x118303(0x11e)]),_0x16a67[_0x118303(0x122)](_0x48afe2['details'][_0x118303(0xea)][_0x118303(0x120)][_0x118303(0x106)],0x0)?_0x48afe2['details'][_0x118303(0xea)][_0x118303(0x120)][_0x118303(0xd4)](_0x9e8325=>{const _0x4f7db3=_0x118303;_0x1af2cf[_0x4f7db3(0xf7)]('\x20\x20-\x20'+_0x9e8325);}):_0x16a67['apoPc'](_0x118303(0x10d),_0x16a67[_0x118303(0x112)])?_0x274e93['push'](_0x118303(0xdb)+_0xe35d50+_0x118303(0x110)+_0x267779+')'):_0x1af2cf[_0x118303(0xf7)](_0x16a67['OuVAB']),_0x1af2cf['push'](''),_0x1af2cf[_0x118303(0xf7)](_0x16a67['KRtPe']),_0x1af2cf[_0x118303(0xf7)](_0x118303(0x128)+(_0x48afe2[_0x118303(0x120)][_0x118303(0x115)][_0x118303(0xf3)]?_0x16a67[_0x118303(0x11a)]:_0x16a67[_0x118303(0xf0)])),_0x1af2cf[_0x118303(0xf7)](_0x118303(0xeb)+(_0x48afe2[_0x118303(0x120)][_0x118303(0x115)][_0x118303(0xe6)]?_0x16a67[_0x118303(0x11a)]:_0x16a67[_0x118303(0xf0)])),_0x1af2cf[_0x118303(0xf7)](''),_0x1af2cf[_0x118303(0xf7)](_0x16a67['JnuMk']),_0x1af2cf[_0x118303(0xf7)](_0x118303(0xda)+_0x48afe2[_0x118303(0x116)]+_0x118303(0x118)),_0x1af2cf['push'](_0x118303(0xec)+_0x48afe2[_0x118303(0x119)]+_0x118303(0x118)),_0x1af2cf['push']('\x20\x20-\x20Volume\x20Bonus:\x20+'+_0x48afe2[_0x118303(0xe2)]),_0x1af2cf[_0x118303(0xf7)](_0x118303(0x11c)+_0x48afe2[_0x118303(0x105)]),_0x1af2cf[_0x118303(0xf7)](_0x118303(0x121)+_0x48afe2[_0x118303(0xed)]),_0x1af2cf[_0x118303(0xf7)](_0x118303(0xd5)+_0x48afe2[_0x118303(0x113)]+'/100**'),_0x1af2cf['push'](''),_0x1af2cf['push'](_0x118303(0x10b)+_0x48afe2[_0x118303(0xe8)]+'**'),_0x1af2cf[_0x118303(0xf7)](''),_0x1af2cf[_0x118303(0xf7)](_0x16a67[_0x118303(0xf2)]),_0x1af2cf[_0x118303(0xf7)](_0x48afe2[_0x118303(0xdf)]),_0x1af2cf['join']('\x0a');}static[a0_0x172384(0xe7)](_0xf7b163){const _0x5aa0c8=a0_0x172384;return _0xf7b163['symbol']+':\x20'+_0xf7b163[_0x5aa0c8(0xe8)]+'\x20(Score:\x20'+_0xf7b163[_0x5aa0c8(0x113)]+_0x5aa0c8(0xe9)+_0xf7b163['direction'];}static[a0_0x172384(0x124)](_0x9e24f7,_0x2fdf14,_0x4b7ee8,_0x11b0a2){const _0xa14a49=a0_0x172384,_0x56cd86={'GRAYf':function(_0x5d5112,_0x50d1ae){return _0x5d5112!==_0x50d1ae;},'cQqxX':_0xa14a49(0xfb),'OKNEw':function(_0x4a5b8a,_0xf3e6b2){return _0x4a5b8a<_0xf3e6b2;},'qSOCK':function(_0x216192,_0x23a154){return _0x216192>_0x23a154;},'csvdp':function(_0xf1077c,_0xac3625){return _0xf1077c!==_0xac3625;},'wUPRO':_0xa14a49(0x11f),'mFFRI':_0xa14a49(0x123),'OqJAJ':_0xa14a49(0x111)},_0x40d0c3=[];_0x40d0c3[_0xa14a49(0xf7)](_0x9e24f7+_0xa14a49(0xfa));_0x56cd86[_0xa14a49(0xdc)](_0x2fdf14,_0x4b7ee8)&&_0x40d0c3[_0xa14a49(0xf7)]('\x20\x20-\x20Score\x20('+_0x2fdf14+_0xa14a49(0x110)+_0x4b7ee8+')');if(_0x56cd86[_0xa14a49(0xfe)](_0x11b0a2[_0xa14a49(0x106)],0x0)){if(_0x56cd86['csvdp'](_0x56cd86[_0xa14a49(0x126)],_0x56cd86['mFFRI']))_0x40d0c3[_0xa14a49(0xf7)](_0x56cd86[_0xa14a49(0xfc)]),_0x11b0a2[_0xa14a49(0xd4)](_0x33bc26=>{const _0x4f02ae=_0xa14a49;_0x56cd86['GRAYf'](_0x56cd86['cQqxX'],'RXDPa')?_0x316b88[_0x4f02ae(0xf7)](_0x4f02ae(0xf6)):_0x40d0c3['push']('\x20\x20\x20\x20•\x20'+_0x33bc26);});else return _0x530b52[_0xa14a49(0x11b)]+':\x20'+_0x44bdf1[_0xa14a49(0xe8)]+_0xa14a49(0x10f)+_0x4a4702[_0xa14a49(0x113)]+')\x20-\x20'+_0x4bbe99['direction'];}return _0x40d0c3[_0xa14a49(0xe0)]('\x0a');}}
|
package/dist/utils/formatter.js
CHANGED
|
@@ -1,104 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Output formatters for CLI
|
|
3
|
-
*/
|
|
4
|
-
import chalk from "chalk";
|
|
5
|
-
export class Formatter {
|
|
6
|
-
/**
|
|
7
|
-
* Format rating with color
|
|
8
|
-
*/
|
|
9
|
-
static rating(rating) {
|
|
10
|
-
switch (rating) {
|
|
11
|
-
case "STRONG BUY":
|
|
12
|
-
return chalk.green.bold(rating);
|
|
13
|
-
case "BUY":
|
|
14
|
-
return chalk.green(rating);
|
|
15
|
-
case "SPECULATIVE":
|
|
16
|
-
return chalk.yellow(rating);
|
|
17
|
-
case "NO TRADE":
|
|
18
|
-
return chalk.red(rating);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Format score with color
|
|
23
|
-
*/
|
|
24
|
-
static score(score) {
|
|
25
|
-
if (score >= 85)
|
|
26
|
-
return chalk.green.bold(score.toString());
|
|
27
|
-
if (score >= 75)
|
|
28
|
-
return chalk.green(score.toString());
|
|
29
|
-
if (score >= 65)
|
|
30
|
-
return chalk.yellow(score.toString());
|
|
31
|
-
return chalk.red(score.toString());
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Format direction with color
|
|
35
|
-
*/
|
|
36
|
-
static direction(direction) {
|
|
37
|
-
if (direction === "BUY")
|
|
38
|
-
return chalk.green("▲ " + direction);
|
|
39
|
-
if (direction === "SELL")
|
|
40
|
-
return chalk.red("▼ " + direction);
|
|
41
|
-
return chalk.gray("─ " + direction);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Format symbol
|
|
45
|
-
*/
|
|
46
|
-
static symbol(symbol) {
|
|
47
|
-
return chalk.cyan.bold(symbol);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Format signal for table display
|
|
51
|
-
*/
|
|
52
|
-
static formatSignalRow(signal) {
|
|
53
|
-
const parts = [
|
|
54
|
-
signal.symbol.padEnd(12),
|
|
55
|
-
this.direction(signal.direction).padEnd(15),
|
|
56
|
-
this.score(signal.score).toString().padEnd(15),
|
|
57
|
-
signal.rating.padEnd(15),
|
|
58
|
-
];
|
|
59
|
-
return parts.join("");
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Format table header
|
|
63
|
-
*/
|
|
64
|
-
static tableHeader() {
|
|
65
|
-
const header = [
|
|
66
|
-
chalk.bold("SYMBOL".padEnd(12)),
|
|
67
|
-
chalk.bold("DIRECTION".padEnd(15)),
|
|
68
|
-
chalk.bold("SCORE".padEnd(10)),
|
|
69
|
-
chalk.bold("RATING".padEnd(15)),
|
|
70
|
-
].join(" ");
|
|
71
|
-
return header + "\n" + "─".repeat(60);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Format error message
|
|
75
|
-
*/
|
|
76
|
-
static error(message) {
|
|
77
|
-
return chalk.red("✗ ") + message;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Format success message
|
|
81
|
-
*/
|
|
82
|
-
static success(message) {
|
|
83
|
-
return chalk.green("✓ ") + message;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Format info message
|
|
87
|
-
*/
|
|
88
|
-
static info(message) {
|
|
89
|
-
return chalk.blue("ℹ ") + message;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Format warning message
|
|
93
|
-
*/
|
|
94
|
-
static warning(message) {
|
|
95
|
-
return chalk.yellow("⚠ ") + message;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Format section header
|
|
99
|
-
*/
|
|
100
|
-
static section(title) {
|
|
101
|
-
return "\n" + chalk.bold.cyan(title) + "\n" + "─".repeat(title.length);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=formatter.js.map
|
|
1
|
+
const a0_0x2a765b=a0_0x23b4;function a0_0x23b4(_0x32ab62,_0x48dfde){_0x32ab62=_0x32ab62-0x1e5;const _0x342704=a0_0x347d();let _0x424814=_0x342704[_0x32ab62];if(a0_0x23b4['hMfqdd']===undefined){var _0x568b46=function(_0x4307a7){const _0x4a63dc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x412fbb='',_0x4739a2='',_0x14acc0=_0x412fbb+_0x568b46;for(let _0xee71b3=0x0,_0xade4c9,_0x11fcd6,_0xd547d5=0x0;_0x11fcd6=_0x4307a7['charAt'](_0xd547d5++);~_0x11fcd6&&(_0xade4c9=_0xee71b3%0x4?_0xade4c9*0x40+_0x11fcd6:_0x11fcd6,_0xee71b3++%0x4)?_0x412fbb+=_0x14acc0['charCodeAt'](_0xd547d5+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0xade4c9>>(-0x2*_0xee71b3&0x6)):_0xee71b3:0x0){_0x11fcd6=_0x4a63dc['indexOf'](_0x11fcd6);}for(let _0x371653=0x0,_0x3e2397=_0x412fbb['length'];_0x371653<_0x3e2397;_0x371653++){_0x4739a2+='%'+('00'+_0x412fbb['charCodeAt'](_0x371653)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4739a2);};a0_0x23b4['eqoimN']=_0x568b46,a0_0x23b4['XLKLaJ']={},a0_0x23b4['hMfqdd']=!![];}const _0x347dc2=_0x342704[0x0],_0x23b47e=_0x32ab62+_0x347dc2,_0x393c15=a0_0x23b4['XLKLaJ'][_0x23b47e];if(!_0x393c15){const _0x555c37=function(_0xcdd453){this['feWmlx']=_0xcdd453,this['CtnUPZ']=[0x1,0x0,0x0],this['cAogjG']=function(){return'newState';},this['kjlhHt']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['xUejfb']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x555c37['prototype']['ztuOSG']=function(){const _0x2b2929=new RegExp(this['kjlhHt']+this['xUejfb']),_0x4dd4f9=_0x2b2929['test'](this['cAogjG']['toString']())?--this['CtnUPZ'][0x1]:--this['CtnUPZ'][0x0];return this['tclcfK'](_0x4dd4f9);},_0x555c37['prototype']['tclcfK']=function(_0x57bfad){if(!Boolean(~_0x57bfad))return _0x57bfad;return this['vMAVyE'](this['feWmlx']);},_0x555c37['prototype']['vMAVyE']=function(_0x42b20f){for(let _0x18e1f8=0x0,_0x1f3967=this['CtnUPZ']['length'];_0x18e1f8<_0x1f3967;_0x18e1f8++){this['CtnUPZ']['push'](Math['round'](Math['random']())),_0x1f3967=this['CtnUPZ']['length'];}return _0x42b20f(this['CtnUPZ'][0x0]);},new _0x555c37(a0_0x23b4)['ztuOSG'](),_0x424814=a0_0x23b4['eqoimN'](_0x424814),a0_0x23b4['XLKLaJ'][_0x23b47e]=_0x424814;}else _0x424814=_0x393c15;return _0x424814;}(function(_0x56ca6c,_0x492d76){const _0x1f60bf=a0_0x23b4,_0x5a976a=_0x56ca6c();while(!![]){try{const _0x14c683=parseInt(_0x1f60bf(0x1ff))/0x1*(-parseInt(_0x1f60bf(0x200))/0x2)+parseInt(_0x1f60bf(0x220))/0x3+parseInt(_0x1f60bf(0x202))/0x4+parseInt(_0x1f60bf(0x204))/0x5*(parseInt(_0x1f60bf(0x201))/0x6)+-parseInt(_0x1f60bf(0x1eb))/0x7+parseInt(_0x1f60bf(0x1e5))/0x8*(parseInt(_0x1f60bf(0x1e9))/0x9)+-parseInt(_0x1f60bf(0x21d))/0xa;if(_0x14c683===_0x492d76)break;else _0x5a976a['push'](_0x5a976a['shift']());}catch(_0x4761f6){_0x5a976a['push'](_0x5a976a['shift']());}}}(a0_0x347d,0x5dd22));function a0_0x347d(){const _0x4d4749=['zxjYB3i','C3LTyM9S','B29WDwS','DMPpAxu','mJu0odm5merbrujxuG','CxDTCLy','CgfKrw5K','mtK2mtm0mfvQAxrkqG','sw1KywW','uw9uBu0','tK9tAfG','wgrYAwq','D2fYBMLUzW','mtzds3HqB2W','EwvSBg93','reLsrunusu9o','rwf5z0G','mJu0nZGZn1PrquPuyq','svzOBLC','mZmXnZe2n21XvK1YvW','q2P3sMy','C2vHCMnO','tK8Gvfjbreu','zufRwhC','y2DRvge','sKrYwwG','EKToufi','v3bYBNO','qLvz','DxHeDw4','z3jLzw4','rKrPA0S','C0vetxa','AM9PBG','u1bfq1vmqvrjvKu','kcGOlISPkYKRksSK','Dg9tDhjPBMC','u1rst05hiejvwq','A3rsAMO','mtu1mtaXAhfXAufy','nLPkENfxyG','mty4y3Pswufd','mte5ntm4ohr1ELjiuW','C2nVCMu','mta2mJvlAK5ewK0','z3jHEq','C2vJDgLVBG','yxbWBhK','C3vJy2vZCW','B3nYBKS','t3jXrMC','t0Hpzfq','zM9YBwf0u2LNBMfSuM93','Bvrkwxu','DgfIBgvizwfKzxi','y3LHBG','q3PlCu8','CMvWzwf0','zgLYzwn0Aw9U','uKfusu5h','yM9Sza','BuPHwuO','vvrzC3i','CMvK','u0npuKu'];a0_0x347d=function(){return _0x4d4749;};return a0_0x347d();}const a0_0x568b46=(function(){const _0x470d52=a0_0x23b4,_0x19a650={'sEDMp':_0x470d52(0x1fa),'qwmrV':_0x470d52(0x223)};let _0x54aec6=!![];return function(_0x589a95,_0x3a47b6){const _0x2c732b=_0x470d52,_0x4618bf={'Xdrid':_0x19a650[_0x2c732b(0x1f8)],'zKNPR':_0x2c732b(0x1ee),'OHOdT':_0x19a650[_0x2c732b(0x21e)],'oopuk':function(_0x2721a6,_0x4ef7c0){return _0x2721a6!==_0x4ef7c0;},'CzKqO':_0x2c732b(0x1e8),'xepXm':_0x2c732b(0x216)},_0x19d7f3=_0x54aec6?function(){const _0x302cef=_0x2c732b;if(_0x4618bf[_0x302cef(0x20b)]!==_0x4618bf['OHOdT'])return _0x9d6fcb[_0x302cef(0x1f6)]('✓\x20')+_0x18a4bf;else{if(_0x3a47b6){if(_0x4618bf[_0x302cef(0x21b)](_0x4618bf[_0x302cef(0x210)],_0x4618bf['xepXm'])){const _0x121fa8=_0x3a47b6[_0x302cef(0x207)](_0x589a95,arguments);return _0x3a47b6=null,_0x121fa8;}else switch(_0x5335fd){case _0x302cef(0x1fd):return _0x212439[_0x302cef(0x1f6)][_0x302cef(0x214)](_0xedc422);case _0x302cef(0x1f4):return _0x265495['green'](_0x1a0abf);case _0x4618bf[_0x302cef(0x224)]:return _0x3aaab2['yellow'](_0x48b930);case _0x4618bf[_0x302cef(0x1f2)]:return _0x3f800a[_0x302cef(0x217)](_0x56fe4f);}}}}:function(){};return _0x54aec6=![],_0x19d7f3;};}()),a0_0x424814=a0_0x568b46(this,function(){const _0x3ce57b=a0_0x23b4,_0x454061={'JDrYh':_0x3ce57b(0x1fb)};return a0_0x424814[_0x3ce57b(0x1fc)]()[_0x3ce57b(0x1ed)](_0x454061[_0x3ce57b(0x1f1)])[_0x3ce57b(0x1fc)]()['constructor'](a0_0x424814)[_0x3ce57b(0x1ed)](_0x454061['JDrYh']);});a0_0x424814();import a0_0x21eefe from'chalk';export class Formatter{static['rating'](_0x3bc57d){const _0x5d571f=a0_0x23b4,_0x3a0307={'OrqFg':_0x5d571f(0x1f4),'Wprnz':_0x5d571f(0x1fa),'IVhnW':_0x5d571f(0x1ee)};switch(_0x3bc57d){case _0x5d571f(0x1fd):return a0_0x21eefe['green']['bold'](_0x3bc57d);case _0x3a0307[_0x5d571f(0x20a)]:return a0_0x21eefe[_0x5d571f(0x1f6)](_0x3bc57d);case _0x3a0307[_0x5d571f(0x1f3)]:return a0_0x21eefe['yellow'](_0x3bc57d);case _0x3a0307[_0x5d571f(0x1ea)]:return a0_0x21eefe[_0x5d571f(0x217)](_0x3bc57d);}}static[a0_0x2a765b(0x203)](_0x38c2f0){const _0x271725=a0_0x2a765b,_0x4e3cba={'mTJYu':function(_0x25af6a,_0x48a73f){return _0x25af6a>=_0x48a73f;},'FDikK':function(_0x1e20e1,_0xdea93f){return _0x1e20e1>=_0xdea93f;}};if(_0x4e3cba[_0x271725(0x20d)](_0x38c2f0,0x55))return a0_0x21eefe[_0x271725(0x1f6)][_0x271725(0x214)](_0x38c2f0['toString']());if(_0x4e3cba[_0x271725(0x1f7)](_0x38c2f0,0x4b))return a0_0x21eefe[_0x271725(0x1f6)](_0x38c2f0[_0x271725(0x1fc)]());if(_0x4e3cba['FDikK'](_0x38c2f0,0x41))return a0_0x21eefe[_0x271725(0x1e6)](_0x38c2f0[_0x271725(0x1fc)]());return a0_0x21eefe[_0x271725(0x217)](_0x38c2f0[_0x271725(0x1fc)]());}static[a0_0x2a765b(0x212)](_0x316afb){const _0x455709=a0_0x2a765b,_0x1cbb57={'osrnK':function(_0xeaa5aa,_0x95c270){return _0xeaa5aa===_0x95c270;},'CjwJf':_0x455709(0x1f4),'mJaYJ':function(_0x307c0a,_0x3729da){return _0x307c0a+_0x3729da;},'cgkTa':'SELL'};if(_0x1cbb57[_0x455709(0x209)](_0x316afb,_0x1cbb57[_0x455709(0x1ec)]))return a0_0x21eefe[_0x455709(0x1f6)](_0x1cbb57[_0x455709(0x215)]('▲\x20',_0x316afb));if(_0x316afb===_0x1cbb57[_0x455709(0x1f0)])return a0_0x21eefe[_0x455709(0x217)](_0x1cbb57[_0x455709(0x215)]('▼\x20',_0x316afb));return a0_0x21eefe[_0x455709(0x205)]('─\x20'+_0x316afb);}static[a0_0x2a765b(0x21a)](_0x2918c5){const _0x1320e9=a0_0x2a765b;return a0_0x21eefe[_0x1320e9(0x20f)][_0x1320e9(0x214)](_0x2918c5);}static[a0_0x2a765b(0x20c)](_0x335e07){const _0x2fd69d=a0_0x2a765b,_0x182863=[_0x335e07[_0x2fd69d(0x21a)][_0x2fd69d(0x21f)](0xc),this[_0x2fd69d(0x212)](_0x335e07[_0x2fd69d(0x212)])['padEnd'](0xf),this[_0x2fd69d(0x203)](_0x335e07[_0x2fd69d(0x203)])[_0x2fd69d(0x1fc)]()[_0x2fd69d(0x21f)](0xf),_0x335e07['rating'][_0x2fd69d(0x21f)](0xf)];return _0x182863['join']('');}static[a0_0x2a765b(0x20e)](){const _0x329c7d=a0_0x2a765b,_0x276f9f={'QoTmM':_0x329c7d(0x218),'eAkXw':function(_0x188157,_0x12c93b){return _0x188157+_0x12c93b;}},_0x44c6d2=[a0_0x21eefe['bold']('SYMBOL'[_0x329c7d(0x21f)](0xc)),a0_0x21eefe[_0x329c7d(0x214)](_0x329c7d(0x1e7)['padEnd'](0xf)),a0_0x21eefe['bold'](_0x276f9f[_0x329c7d(0x222)][_0x329c7d(0x21f)](0xa)),a0_0x21eefe[_0x329c7d(0x214)](_0x329c7d(0x213)[_0x329c7d(0x21f)](0xf))][_0x329c7d(0x1f9)]('\x20');return _0x276f9f[_0x329c7d(0x1ef)](_0x276f9f['eAkXw'](_0x44c6d2,'\x0a'),'─'['repeat'](0x3c));}static[a0_0x2a765b(0x219)](_0x226e98){const _0x3a0cb4=a0_0x2a765b,_0x5c1322={'ktRjj':function(_0x116761,_0xe177a4){return _0x116761+_0xe177a4;}};return _0x5c1322[_0x3a0cb4(0x1fe)](a0_0x21eefe['red']('✗\x20'),_0x226e98);}static[a0_0x2a765b(0x208)](_0x36d1c6){const _0x4ba411=a0_0x2a765b,_0x1f2d50={'vjOiu':function(_0x4b8154,_0xf53068){return _0x4b8154+_0xf53068;}};return _0x1f2d50[_0x4ba411(0x21c)](a0_0x21eefe[_0x4ba411(0x1f6)]('✓\x20'),_0x36d1c6);}static['info'](_0x19c32e){return a0_0x21eefe['blue']('ℹ\x20')+_0x19c32e;}static[a0_0x2a765b(0x225)](_0x24515e){const _0x515542=a0_0x2a765b,_0x11c8d5={'Imdal':function(_0x5924bd,_0x58b7a5){return _0x5924bd+_0x58b7a5;}};return _0x11c8d5[_0x515542(0x221)](a0_0x21eefe[_0x515542(0x1e6)]('⚠\x20'),_0x24515e);}static[a0_0x2a765b(0x206)](_0x138b23){const _0x4ebfd3=a0_0x2a765b,_0x534fdb={'uxDun':function(_0x143a8d,_0x4076eb){return _0x143a8d+_0x4076eb;}};return _0x534fdb[_0x4ebfd3(0x1f5)](_0x534fdb['uxDun'](_0x534fdb[_0x4ebfd3(0x1f5)]('\x0a',a0_0x21eefe['bold']['cyan'](_0x138b23)),'\x0a'),'─'[_0x4ebfd3(0x211)](_0x138b23['length']));}}
|