TTrades Fractal Model – Daily Trade Plan
https://cdn.tailwindcss.com
@import url(‘
https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap’);
body { font-family: ‘Inter’, sans-serif; }
.gradient-bg { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
.card-shadow { box-shadow: 0 10px 25px rgba(0,0,0,0.1); }
.phase-complete { background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%); }
.phase-incomplete { background: linear-gradient(135deg, #374151 0%, #1f2937 100%); }
TTrades Fractal Model
Daily Trade Plan & Checklist
Trading Sessions: NY AM (9-11 AM EST) | NY PM (1-3 PM EST)
Overall Progress
0% Complete
Objective: Establish clear directional bias (bullish or bearish)
Step 1: Identify Candle 2 (C2) Swing Point
Located swing high or swing low on daily chart
Identified C2 candle that forms this swing point
Step 2: Analyze Daily Closure of C2
For Bullish Bias (C3/C4 Higher):
C2 closed above previous day’s high, OR failed to close below previous day’s low, OR closed back inside range after sweeping low
Closure aligns with swing low formation (higher low on each side)
For Bearish Bias (C3/C4 Lower):
C2 closed below previous day’s low, OR failed to close above previous day’s high, OR closed back inside range after sweeping high
Closure aligns with swing high formation (lower high on each side)
Decision Point:
Clear daily bias determined (if not, do not proceed to lower timeframes)
Selected Daily Bias:
📈 Bullish
📉 Bearish
❌ No Clear Bias
Objective: Confirm C2 reversal and identify Point of Interest (POI)
Step 1: C2 Reversal Confirmation (CISD)
Confirmed Change in State of Delivery (CISD) at daily C2 swing point on hourly chart
• Bullish C2: Look for bullish CISD (price closing over series of down-closed candles)
• Bearish C2: Look for bearish CISD (price closing below series of up-closed candles)
Step 2: Identify Point of Interest (POI) / T-Spot
Identified T-Spot area where HTF wick is anticipated to form
Equilibrium (EQ) Alignment:
Bullish: T-Spot in upper half of previous day’s range
Bearish: T-Spot in lower half of previous day’s range
Located PD Array within identified T-Spot for POI
Objective: Execute entry during NY AM (9-11 AM) or PM (1-3 PM) sessions
Session Timing Check:
Currently in NY AM session (9-11 AM EST)
Currently in NY PM session (1-3 PM EST)
5-Minute Chart Confirmation:
Price reached identified POI/T-Spot area
Confirmed entry signal aligned with daily bias
Risk management parameters set (stop loss, take profit)
📊 Position Size Calculator
Contract Type:
MNQ (Micro NASDAQ)
MES (Micro S&P 500)
MYM (Micro Dow)
Risk Amount ($):
Entry Price:
Stop Loss:
Take Profit:
Trade Analysis
Potential Loss:
$0.00
Potential Profit:
$0.00
Risk Points:
0
Reward Points:
0
Risk/Reward Quality
Enter values to calculate
Poor
Good
Excellent
1:1
1:2
1:3+
Contract Specs:
MNQ: $0.50/point | MES: $1.25/point | MYM: $0.50/point
Trade Execution:
Trade executed with proper position sizing
🔄 Reset Checklist
// Initialize progress tracking
let totalCheckboxes = 0;
let checkedBoxes = 0;
function updateProgress() {
totalCheckboxes = document.querySelectorAll(‘input[type=”checkbox”]’).length;
checkedBoxes = document.querySelectorAll(‘input[type=”checkbox”]:checked’).length;
const progressPercent = totalCheckboxes > 0 ? Math.round((checkedBoxes / totalCheckboxes) * 100) : 0;
document.getElementById(‘progressBar’).style.width = progressPercent + ‘%’;
document.getElementById(‘progressText’).textContent = progressPercent + ‘% Complete’;
// Update phase completion status
updatePhaseStatus(‘phase1’, document.querySelectorAll(‘.phase1-checkbox:checked’).length, document.querySelectorAll(‘.phase1-checkbox’).length);
updatePhaseStatus(‘phase2’, document.querySelectorAll(‘.phase2-checkbox:checked’).length, document.querySelectorAll(‘.phase2-checkbox’).length);
updatePhaseStatus(‘phase3’, document.querySelectorAll(‘.phase3-checkbox:checked’).length, document.querySelectorAll(‘.phase3-checkbox’).length);
}
function updatePhaseStatus(phaseId, completed, total) {
const header = document.getElementById(phaseId + ‘Header’);
const icon = document.getElementById(phaseId + ‘Icon’);
if (completed === total && total > 0) {
header.className = ‘phase-complete p-6 cursor-pointer’;
icon.innerHTML = ‘
✓‘;
} else {
header.className = ‘phase-incomplete p-6 cursor-pointer’;
icon.innerHTML = ‘
‘ + phaseId.slice(-1) + ‘‘;
}
}
function togglePhase(phaseId) {
const content = document.getElementById(phaseId + ‘Content’);
const arrow = document.getElementById(phaseId + ‘Arrow’);
if (content.classList.contains(‘hidden’)) {
content.classList.remove(‘hidden’);
arrow.style.transform = ‘rotate(180deg)’;
} else {
content.classList.add(‘hidden’);
arrow.style.transform = ‘rotate(0deg)’;
}
}
function resetChecklist() {
if (confirm(‘Are you sure you want to reset the entire checklist? This action cannot be undone.’)) {
// Uncheck all checkboxes
document.querySelectorAll(‘input[type=”checkbox”]’).forEach(checkbox => {
checkbox.checked = false;
});
// Uncheck all radio buttons
document.querySelectorAll(‘input[type=”radio”]’).forEach(radio => {
radio.checked = false;
});
// Update progress
updateProgress();
// Collapse all phases
[‘phase1’, ‘phase2’, ‘phase3’].forEach(phaseId => {
document.getElementById(phaseId + ‘Content’).classList.add(‘hidden’);
document.getElementById(phaseId + ‘Arrow’).style.transform = ‘rotate(0deg)’;
});
}
}
// Position Size Calculator Functions
function calculatePosition() {
const contractType = document.getElementById(‘contractType’).value;
const riskAmount = parseFloat(document.getElementById(‘riskAmount’).value) || 0;
const entryPrice = parseFloat(document.getElementById(‘entryPrice’).value) || 0;
const stopLoss = parseFloat(document.getElementById(‘stopLoss’).value) || 0;
const takeProfit = parseFloat(document.getElementById(‘takeProfit’).value) || 0;
// Contract specifications (dollars per point)
const contractSpecs = {
‘MNQ’: 0.50, // Micro NASDAQ
‘MES’: 1.25, // Micro S&P 500
‘MYM’: 0.50 // Micro Dow
};
const pointValue = contractSpecs[contractType];
if (entryPrice > 0 && stopLoss > 0 && takeProfit > 0 && riskAmount > 0) {
// Calculate risk and reward points
const riskPoints = Math.abs(entryPrice – stopLoss);
const rewardPoints = Math.abs(takeProfit – entryPrice);
// Calculate recommended contracts based on risk amount
const riskPerContract = riskPoints * pointValue;
const recommendedContracts = Math.floor(riskAmount / riskPerContract);
// Calculate potential loss and profit with recommended contracts
const potentialLoss = riskPoints * pointValue * recommendedContracts;
const potentialProfit = rewardPoints * pointValue * recommendedContracts;
// Calculate risk/reward ratio
const rrRatio = rewardPoints / riskPoints;
// Update display
document.getElementById(‘recommendedContracts’).textContent = recommendedContracts;
document.getElementById(‘riskPoints’).textContent = riskPoints.toFixed(2);
document.getElementById(‘rewardPoints’).textContent = rewardPoints.toFixed(2);
document.getElementById(‘potentialLoss’).textContent = ‘$’ + potentialLoss.toFixed(2);
document.getElementById(‘potentialProfit’).textContent = ‘$’ + potentialProfit.toFixed(2);
// Update risk/reward quality indicator
updateRRIndicator(rrRatio);
} else {
// Reset display if inputs are incomplete
document.getElementById(‘recommendedContracts’).textContent = ‘0’;
document.getElementById(‘riskPoints’).textContent = ‘0’;
document.getElementById(‘rewardPoints’).textContent = ‘0’;
document.getElementById(‘potentialLoss’).textContent = ‘$0.00’;
document.getElementById(‘potentialProfit’).textContent = ‘$0.00’;
document.getElementById(‘rrQuality’).textContent = ‘Enter values to calculate’;
document.getElementById(‘rrIndicator’).style.width = ‘0%’;
}
}
function updateRRIndicator(ratio) {
const indicator = document.getElementById(‘rrIndicator’);
const quality = document.getElementById(‘rrQuality’);
let width = 0;
let qualityText = ”;
let color = ”;
if (ratio >= 3) {
width = 100;
qualityText = ‘🟢 Excellent Risk/Reward’;
color = ‘#22c55e’;
} else if (ratio >= 2) {
width = 66;
qualityText = ‘🟡 Good Risk/Reward’;
color = ‘#f59e0b’;
} else if (ratio >= 1) {
width = 33;
qualityText = ‘🔴 Poor Risk/Reward’;
color = ‘#ef4444’;
} else {
width = 0;
qualityText = ‘Invalid Risk/Reward’;
color = ‘#6b7280’;
}
indicator.style.width = width + ‘%’;
indicator.style.background = color;
quality.textContent = qualityText;
}
// Initialize on page load
window.addEventListener(‘load’, function() {
updateProgress();
});
(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement(‘script’);d.innerHTML=”window.__CF$cv$params={r:’9708eafb72b95cb8′,t:’MTc1NTQzMTA1MC4wMDAwMDA=’};var a=document.createElement(‘script’);a.nonce=”;a.src=’/cdn-cgi/challenge-platform/scripts/jsd/main.js’;document.getElementsByTagName(‘head’)[0].appendChild(a);”;b.getElementsByTagName(‘head’)[0].appendChild(d)}}if(document.body){var a=document.createElement(‘iframe’);a.height=1;a.width=1;a.style.position=’absolute’;a.style.top=0;a.style.left=0;a.style.border=’none’;a.style.visibility=’hidden’;document.body.appendChild(a);if(‘loading’!==document.readyState)c();else if(window.addEventListener)document.addEventListener(‘DOMContentLoaded’,c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);’loading’!==document.readyState&&(document.onreadystatechange=e,c())}}}})();