Skip to content

Instantly share code, notes, and snippets.

@vtanathip
vtanathip / OI-cheat-sheet.md
Last active November 27, 2025 03:06
How to Interpret Open Interest (OI) and Price: A Trader's Cheat Sheet
Price Action OI Change Interpretation/Bias Correlation Color Histogram is Smaller (Weaker Flow Momentum) Histogram is Bigger (Stronger Flow Momentum)
Rises Green Bars 🟢 Strong Bullish / Long Confirmation (New money is entering on the long side, confirming the uptrend) 🟢 (Bullish) Momentum is weakening. New capital inflow is slowing down; the rally is losing intensity. Momentum is strengthening. New capital inflow is accelerating; the rally is gaining intensity.
Rises Red Bars 🔴 Weakening Bullish/Short Signal (Current rally based on short covering; uptrend unsustainable) 🟠 (Bearish) Liquidation pressure is easing. The rate of money leaving (selling) is slowing do
@vtanathip
vtanathip / RSIvsStochastic
Created September 16, 2025 03:58
Pinescript RSI + Stochasthic
//@version=5
indicator("Crypto-Tuned Stochastic RSI Lagged For Confirmation", overlay=false)
// Input parameters
rsiLength = input.int(9, title="RSI Length", group="RSI Settings") // RSI lookback period
rsiSourceInput = input.source(close, "Source", group="RSI Settings") // RSI Source
rsiUpperBandValue = input.float(80, title="Oversold Level", group="RSI Settings") // Oversold threshold
rsiLowerBandValue = input.float(20, title="Overbought Level", group="RSI Settings") // Oversold threshold
stochLength = input.int(9, title="Stochastic Length", group="Stochastic Settings") // StochRSI lookback period
kSmoothing = input.int(3, title="%K Smoothing", group="Stochastic Settings") // %K smoothing period
{
"success": true,
"credits_left": 100,
"rate_limit_left": 100,
"daily_rate_limit_left": 100,
"minute_rate_limit_left": 499,
"next_minute_rate_limit_reset": "2025-07-08T14:47:29.000Z",
"person": {
"publicIdentifier": "vtanathip",
"linkedInIdentifier": "ACoAAAZ1ls4B2BMA3u-CJR3OJ0wmDAtrSZhtqbE",
{
"name": "Github MCP Server",
"nodes": [
{
"parameters": {
"path": "0056a959-12e5-4c0b-80b9-9fa2a07b7c84"
},
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"typeVersion": 2,
"position": [
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: always
ports:
- 5678:5678
environment:
- DB_TYPE=sqlite
- DB_SQLITE_VACUUM_ON_STARTUP=true
const myComponent = document.querySelector('my-custom-component');
const shadowRoot = myComponent.shadowRoot;
const myParagraph = shadowRoot.querySelector('#my-paragraph');
console.log(myParagraph.textContent); // Output: Hello from Shadow DOM!
@vtanathip
vtanathip / N8N Startup Script
Last active May 23, 2025 14:32
N8N + Line messaging setup
docker volume create n8n_data
docker run -it --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
---
ngrok http --url=teal-awaited-gorilla.ngrok-free.app 80
@vtanathip
vtanathip / custom-indicator-sma
Last active November 21, 2024 14:14
Example Basic Pine Script
//@version=5
indicator("Dynamic Table Example with Colors", overlay=true)
// Inputs
smaLength = input.int(20, title="SMA Length", minval=1)
upColor = input.color(color.new(color.green, 0), title="Bullish Color")
downColor = input.color(color.new(color.red, 0), title="Bearish Color")
neutralColor = input.color(color.new(color.gray, 0), title="Neutral Color")
// Function to calculate the trend for a specific timeframe
@vtanathip
vtanathip / How to download google drive VDO without permission
Last active August 7, 2024 08:20
Download vdo from google drive steps
# Steps to download file
- Open the link that contains VDO that you want to download
- Open chrome dev tools
- Go to Network tab
- Play a VDO
- Fitler on Network tab with "videoplayback"
- Copy one of them and open in another tab (this step you need to pay attention on url, it need to remove "&range" parameter till the end of url out
- Now you will able to download the VDO but no audio in it
- Back to Network tab again and looking for smallest file of "videoplayback" result
- Do the same steps above to download audio file
@vtanathip
vtanathip / gist:3e14a6afe34b10337c7712e0bea9509e
Created April 26, 2024 06:53
Sample question for test fundamental knowledge of JS
export {};
function findClosestNumber(arr: number[], target: number): number {
// Sort the array in ascending order
arr.sort((a, b) => a - b);
let closest: number = arr[0];
let minDifference: number = Math.abs(target - closest);
arr.forEach((num) => {