High FOMO & greed detected. Consider reducing position size.
EMOTIONAL STATE
GREED
78%
FOMO
65%
OVERCONF
54%
DISCIPLINE
41%
FEAR
22%
QUICK TRADE
🌙
OPEN ORDER
PAIR
BTC / USDT
AMOUNT (USD)
$5,000
25%
50%
75%
MAX
TRADER'SISLAND
SIGN IN TO YOUR ACCOUNT
🌐Google
🍎Apple
OR EMAIL
EMAIL
📧
PASSWORD
🔒👁️
✓
Remember me
Forgot password?
👆FINGERPRINT
🆔FACE ID
No account? Create one →
TRADER'SISLAND
CREATE YOUR FREE ACCOUNT
1
2
3
FULL NAME
👤
EMAIL
📧
PASSWORD
🔒
BASICFREE
Paper trading · 10 alerts · Community
POPULAR
PRO$29/mo
Live trading · Bots · AI scanner · Copy
ELITE$99/mo
Everything · API · White-label · No limits
Already have account? Sign In →
MY PROFILE
🌙
?
—
—
TOTAL PORTFOLIO
$0
—
INVESTED
$0
PROFIT / LOSS
$0
WIN RATE
0%
0
TRADES
$0
TOTAL P&L
0%
WIN RATE
📈 TRADE HISTORY
🛒 SHOP HISTORY
No trades yet. Tap ▲ BUY or ▼ SELL on the Chart screen.
MARKETS
LIVE
🔍✕
🌐 ALL
🔶 CRYPTO
💱 FOREX
📈 STOCKS
🇺🇸 US STOCKS
🚀 TOP GAINERS
📉 TOP LOSERS
Loading...
↕SORT BY CHANGE
🎮 GAMES
BEST: 0
TRADING GAMES
Learn trading while playing! Beat your high score on all 4 games 🏆
TOTAL SCORE
0
GAMES PLAYED
0
RANK
#—
SELECT A GAME
🕯️
NEW
CANDLES CATCH
Catch green candles, dodge red ones. Learn patterns while playing!
BEST SCORE
0
▶ PLAY
🌊
HOT
LIQUID- ATION SEA
Drag up to pump price. Survive the rising liquidation wave!
BEST SCORE
0
▶ PLAY
🌊
HOT
LIQUID- ATION SEA
Drag up to pump price. Survive the rising liquidation wave!
BEST SCORE
0
▶ PLAY
🏃
FUN
CRYPTO JUMP
Jump over bearish red candles. How far can you run?
BEST SCORE
0
▶ PLAY
🎯
QUIZ
GUESS THE CANDLE
Identify candle & chart patterns. Test your trading knowledge!
BEST SCORE
0
▶ PLAY
🌊
NEW
THE DEEP END — LIQUIDATION SIM
Trade with leverage in a shark-infested ocean! Move your diver, set leverage & amount, survive liquidation waves. How long can you profit before the sharks get you? 🦈
▶ DIVE IN
📊
PRO
CANDLESTICK HERO PRO — MASTER EDITION
Random chart generated — identify the candlestick pattern! Streak bonuses, 10 patterns to master. Doji, Hammer, Engulfing, Morning Star & more. Score points before you miss! 🎯
▶ PLAY
🎯
ARCADE
CHART SNIPER — NEON ARCADE
Tap the GOLDEN candles to profit. Avoid LIQUIDATION spikes. Every miss costs $50. Streak = more speed + bigger gains! 🔫
▶ INITIALIZE TRADE
♟
VS AI
CHESS
Play chess vs AI. Classic strategy — build focus & discipline like a pro trader!
▶ PLAY
🎲
4P
LUDO
4-player Ludo with dice! Race your tokens home. Play solo vs 3 AI bots!
▶ PLAY
RECENT ACTIVITY
✕
♟ CHESS
YOUR TURN (WHITE)
AI (BLACK)
YOU (WHITE)
CAPTURED
Tap a piece to select, tap highlighted square to move.
✕
🎲 LUDO
ROLL DICE TO START
🎲
YOUR TURN
-
Home: 0/4
Safe squares: 0
✕
Profit$0
LEVERAGE10x
AMOUNT$1.0k
RiskLOW
LIQUIDATED
Market whales ate your position. Total Profit: $0
UP: SHORT PROFIT • DOWN: LONG PROFIT • $1M WHALE MODE ACTIVE
✕
CANDLESTICK HERO PRO
Streak: 0
Score
0
MASTER MARKET SENTIMENT
✕
Account Balance
$1,000
Streak: 0x
Volatility
HIGH
CHART SNIPER
Tap the GOLDEN CANDLES to profit. Avoid LIQUIDATION SPIKES. Every miss costs $50.
⚡ VOLT OPTION
Order Executed!
Mastering Options
Tutorial & Concepts
English
हिंदी
ਪੰਜਾਬੀ
VOLT TRADE
Demo Balance
$10,000.00
Options
Crypto
Forex
0.00
Strategy Visualizer
Projected Price---
Est. P&L
+$0.00
Live Analysis
Volatility (IV)14.2%
Put-Call Ratio1.08
Sentiment: Neutral-Bullish
Calls
Strike
Puts
Order Summary
Selection---
Lot Size---
Price / Unit---
Total Buy Cost$0.00
Breakeven---
Live Positions
0 Open
No active positions
Total P&L
$0.00
Win Rate
0%
Total Order Cost:$0.00
LEARN
🔍
Trading Academy
Master trading from basics to advanced strategies with interactive lessons
LVL 3
620 / 1000 XP
MODULES
📈
Trading Basics
8 lessons · ~30 min
✅
🕯️
Candlestick Patterns
12 lessons · ~45 min
📖
📊
Technical Indicators
15 lessons · ~60 min
🔓
🧠
Trading Psychology
10 lessons · ~40 min
🔒
⚡
Risk Management
10 lessons · ~35 min
🔒
🤖
Algo & Bot Trading
8 lessons · ~50 min
🔒
←
Loading...
MARKET NEWS
🔄
MARKET SENTIMENT
72
GREED
Fear vs Greed Index
EXTREME FEARNEUTRALEXTREME GREED
ALL
CRYPTO
STOCKS
MACRO
DeFi
CryptoNews · CRYPTO
Bitcoin breaks $68K resistance — analysts target $72K next
';
};
window.awExportCSV = function() {
var csv = 'User,Videos Watched,Watch Time,Completion Rate,XP Earned,Tokens Earned,Streak\n';
csv += '@alpha_99,48,7h 24m,91%,3840,1240,12d\n';
csv += '@zephyr_t,35,5h 10m,80%,2800,920,7d\n';
csv += '@trader_mx,22,3h 05m,68%,1760,580,3d\n';
var blob = new Blob([csv], {type:'text/csv'});
var a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = 'watch-earn-users.csv';
a.click();
};
// ═══ ASSIGN VIDEOS — ADMIN JS ═══
window.awAssignVideo = function() {
var user = document.getElementById('assignUserSel').value;
var video = document.getElementById('assignVideoSel').options[document.getElementById('assignVideoSel').selectedIndex].text;
var tokens = document.getElementById('assignTokens').value;
var xp = document.getElementById('assignXP').value;
var cash = document.getElementById('assignCash').value;
var deadline = document.getElementById('assignDeadline').value || 'No deadline';
if (!user || !video || video === '— Choose Video —') {
showToast && showToast('ERROR', 'Please select a user and video.', 'error'); return;
}
var tbl = document.getElementById('awAssignLog');
if (tbl) {
var row = tbl.insertRow(1);
var now = new Date();
var t = now.toLocaleString('en-GB',{day:'2-digit',month:'short',hour:'2-digit',minute:'2-digit'});
row.innerHTML = '
' + t + '
'
+ '
' + user + '
'
+ '
' + video + '
'
+ '
₮' + tokens + '
'
+ '
$' + cash + '
'
+ '
' + deadline + '
'
+ '
ACTIVE
';
}
addAudit && addAudit('INFO', 'Video assigned', 'admin', video + ' → ' + user + ' (₮' + tokens + ')');
showToast && showToast('VIDEO ASSIGNED', video + ' assigned to ' + user + ' · ₮' + tokens + ' reward', 'success');
};
window.awBulkAssign = function() {
var group = document.getElementById('bulkGroupSel').value;
var playlist = document.getElementById('bulkPlaylistSel').value;
var tokens = document.getElementById('bulkTokens').value;
var cash = document.getElementById('bulkCash').value;
var campaign = document.getElementById('bulkCampaign').value || 'Unnamed Campaign';
if (!confirm('Bulk assign "' + playlist + '" to ' + group + '? \u20ae' + tokens + ' per video · $' + cash + ' cash value')) return;
var tbl = document.getElementById('awAssignLog');
if (tbl) {
var row = tbl.insertRow(1);
var now = new Date();
var t = now.toLocaleString('en-GB',{day:'2-digit',month:'short',hour:'2-digit',minute:'2-digit'});
row.innerHTML = '
' + t + '
'
+ '
' + group + '
'
+ '
' + playlist + '
'
+ '
₮' + tokens + '
'
+ '
$' + cash + '
'
+ '
Campaign: ' + campaign + '
'
+ '
ACTIVE
';
}
addAudit && addAudit('WARN', 'Bulk video assign', 'admin', playlist + ' → ' + group);
showToast && showToast('BULK ASSIGNED', playlist + ' assigned to ' + group, 'success');
};
window.awClearAssignLog = function() {
if (!confirm('Clear assignment log?')) return;
var tbl = document.getElementById('awAssignLog');
if (!tbl) return;
var rows = Array.from(tbl.querySelectorAll('tr:not(:first-child)'));
rows.forEach(function(r){ r.remove(); });
showToast && showToast('LOG CLEARED', 'Assignment log cleared.', 'warn');
};
// ═══ TIads — ADMIN JS ═══
window.tiadsSwitchTab = function(tab) {
document.querySelectorAll('.tiadsTab').forEach(function(t) {
var isActive = t.getAttribute('onclick') === "tiadsSwitchTab('" + tab + "')";
t.style.borderBottom = isActive ? '2px solid var(--no)' : '2px solid transparent';
t.style.color = isActive ? 'var(--no)' : 'var(--tm)';
});
document.querySelectorAll('.tiadsTabContent').forEach(function(c) { c.style.display = 'none'; });
var panel = document.getElementById('tiadsTab-' + tab);
if (panel) panel.style.display = 'block';
};
window.tiadsAddAffiliate = function() {
var detail = document.getElementById('tiadsAffDetail');
var title = document.getElementById('tiadsAffDetailTitle');
if (!detail) return;
if (title) title.textContent = 'New Affiliate';
['tiadsAffName','tiadsAffEmail','tiadsAffWebsite','tiadsAffApp','tiadsAffPixel'].forEach(function(id){
var el = document.getElementById(id); if(el) el.value = '';
});
detail.style.display = 'block';
detail.scrollIntoView({behavior:'smooth', block:'start'});
};
window.tiadsViewAffiliate = function(btn) {
var row = btn.closest('tr');
if (!row) return;
var name = row.cells[0].querySelector('div').textContent;
var email = row.cells[0].querySelectorAll('div')[1].textContent;
var site = row.cells[1].textContent.trim();
var share = row.cells[3].querySelector('input').value;
var detail = document.getElementById('tiadsAffDetail');
if (!detail) return;
document.getElementById('tiadsAffDetailTitle').textContent = name + ' — Details';
document.getElementById('tiadsAffName').value = name;
document.getElementById('tiadsAffEmail').value = email;
document.getElementById('tiadsAffWebsite').value = 'https://' + site;
document.getElementById('tiadsAffShare').value = share;
document.getElementById('tiadsAffPixel').value = 'ti_pixel_' + name.toLowerCase().replace(/\s/g,'_') + '_' + Math.random().toString(36).substr(2,8);
detail.style.display = 'block';
detail.scrollIntoView({behavior:'smooth', block:'start'});
};
window.tiadsApproveAffiliate = function(btn) {
var row = btn.closest('tr');
if (!row) return;
var td = row.cells[7];
if (td) { td.innerHTML = 'ACTIVE'; }
btn.textContent = 'VIEW';
btn.className = 'abtn';
btn.setAttribute('onclick', 'tiadsViewAffiliate(this)');
showToast && showToast('AFFILIATE APPROVED', row.cells[0].querySelector('div').textContent + ' is now active.', 'success');
addAudit && addAudit('INFO', 'Affiliate approved', 'admin', row.cells[0].querySelector('div').textContent);
};
window.tiadsSaveAffiliate = function() {
var name = document.getElementById('tiadsAffName').value;
if (!name) { showToast && showToast('ERROR','Name required.','error'); return; }
showToast && showToast('SAVED', name + ' affiliate saved.', 'success');
addAudit && addAudit('INFO', 'Affiliate saved', 'admin', name);
document.getElementById('tiadsAffDetail').style.display = 'none';
};
window.tiadsGenPixel = function() {
var name = document.getElementById('tiadsAffName').value || 'affiliate';
var key = 'ti_' + name.toLowerCase().replace(/[^a-z0-9]/g,'_') + '_' + Date.now().toString(36);
var pxEl = document.getElementById('tiadsAffPixel');
if (pxEl) { pxEl.value = key; pxEl.style.color = 'var(--ng)'; setTimeout(function(){ pxEl.style.color = ''; }, 1500); }
showToast && showToast('KEY GENERATED', key, 'success');
};
window.tiadsAddCampaign = function() {
var name = prompt('Campaign name:', '');
if (!name) return;
var aff = prompt('Affiliate:', 'CryptoLearn Pro');
var cpm = prompt('CPM Rate ($):', '4.50');
var budget = prompt('Budget ($):', '1000');
var type = prompt('Placement (PRE-ROLL/MID-ROLL/POST-ROLL):', 'PRE-ROLL');
var tbl = document.getElementById('tiadsCampaignTable');
if (!tbl) return;
var row = tbl.insertRow(-1);
var badgeColor = type==='PRE-ROLL' ? 'rgba(0,212,255,.12);color:var(--nc)' : type==='MID-ROLL' ? 'rgba(191,95,255,.12);color:var(--np)' : 'rgba(0,255,136,.1);color:var(--ng)';
row.innerHTML = '
' + name + '
'
+ '
' + (aff||'') + '
'
+ '
—
'
+ '
' + (type||'PRE-ROLL') + '
'
+ '
'
+ '
'
+ '
$0
0
'
+ '
RUNNING
'
+ '
';
showToast && showToast('CAMPAIGN CREATED', name, 'success');
};
window.tiadsToggleCampaign = function(btn) {
var isPause = btn.textContent.trim() === 'PAUSE';
btn.textContent = isPause ? 'RESUME' : 'PAUSE';
var row = btn.closest('tr');
var badge = row && row.cells[8] ? row.cells[8].querySelector('.badge') : null;
if (badge) { badge.textContent = isPause ? 'PAUSED' : 'RUNNING'; badge.className = isPause ? 'badge br2' : 'badge bo'; }
};
window.tiadsApproveAd = function(btn) {
var row = btn.closest('tr');
if (!row) return;
var title = row.cells[1].textContent;
row.style.background = 'rgba(0,255,136,.04)';
btn.textContent = '✓ APPROVED';
btn.disabled = true;
btn.style.opacity = '.5';
showToast && showToast('AD APPROVED', title + ' added to library.', 'success');
addAudit && addAudit('INFO','Ad approved','admin',title);
};
// ═══ DRAGGABLE SWITCH PILL ═══
(function(){
var pill = document.getElementById('switchPill');
var handle = document.getElementById('spDragHandle');
if(!pill || !handle) return;
var PILL_POS_KEY = 'ti_pill_pos';
// Restore saved position
var savedPos = null;
try{ savedPos = JSON.parse(localStorage.getItem(PILL_POS_KEY)||'null'); }catch(e){}
if(savedPos){
pill.style.left = savedPos.x + 'px';
pill.style.top = savedPos.y + 'px';
pill.style.right = 'auto';
pill.style.bottom = 'auto';
}
var dragging = false;
var startX, startY, origX, origY;
function clampToBounds(x, y){
var pw = pill.offsetWidth || 110;
var ph = pill.offsetHeight || 36;
var maxX = window.innerWidth - pw - 8;
var maxY = window.innerHeight - ph - 8;
return { x: Math.max(8, Math.min(x, maxX)), y: Math.max(8, Math.min(y, maxY)) };
}
function getPos(){
var r = pill.getBoundingClientRect();
return { x: r.left, y: r.top };
}
function startDrag(cx, cy){
dragging = true;
var pos = getPos();
origX = pos.x; origY = pos.y;
startX = cx; startY = cy;
pill.classList.add('dragging');
pill.style.left = origX + 'px';
pill.style.top = origY + 'px';
pill.style.right = 'auto';
pill.style.bottom = 'auto';
pill.style.transition = 'none';
}
function moveDrag(cx, cy){
if(!dragging) return;
var dx = cx - startX;
var dy = cy - startY;
var c = clampToBounds(origX + dx, origY + dy);
pill.style.left = c.x + 'px';
pill.style.top = c.y + 'px';
}
function endDrag(cx, cy){
if(!dragging) return;
dragging = false;
pill.classList.remove('dragging');
pill.style.transition = '';
// Snap to nearest edge
var pw = pill.offsetWidth;
var ph = pill.offsetHeight;
var winW = window.innerWidth;
var winH = window.innerHeight;
var pos = getPos();
var cx2 = pos.x + pw / 2;
var distLeft = cx2;
var distRight = winW - cx2;
var snapX = distLeft < distRight
? 8
: winW - pw - 8;
var c = clampToBounds(snapX, pos.y);
pill.style.left = c.x + 'px';
pill.style.top = c.y + 'px';
// Save position
try{ localStorage.setItem(PILL_POS_KEY, JSON.stringify({x: c.x, y: c.y})); }catch(e){}
}
// Mouse events — only drag from handle
handle.addEventListener('mousedown', function(e){
e.preventDefault();
startDrag(e.clientX, e.clientY);
});
document.addEventListener('mousemove', function(e){
if(dragging) moveDrag(e.clientX, e.clientY);
});
document.addEventListener('mouseup', function(e){
if(dragging) endDrag(e.clientX, e.clientY);
});
// Touch events — only drag from handle
handle.addEventListener('touchstart', function(e){
e.preventDefault();
var t = e.touches[0];
startDrag(t.clientX, t.clientY);
}, {passive:false});
document.addEventListener('touchmove', function(e){
if(!dragging) return;
e.preventDefault();
var t = e.touches[0];
moveDrag(t.clientX, t.clientY);
}, {passive:false});
document.addEventListener('touchend', function(e){
if(!dragging) return;
var t = e.changedTouches[0];
endDrag(t.clientX, t.clientY);
});
// Reposition on window resize
window.addEventListener('resize', function(){
var pos = getPos();
var c = clampToBounds(pos.x, pos.y);
pill.style.left = c.x + 'px';
pill.style.top = c.y + 'px';
});
})();
// ═══ SWITCH PILL LOGIC ═══
window.switchToUser = function(){
if(window._openView) window._openView('app');
document.getElementById('spUserBtn').classList.add('active-tab');
document.getElementById('spAdminBtn').classList.remove('active-tab');
};
window.switchToAdmin = function(){
// If not logged in as admin, show the modal
var adminApp = document.getElementById('adminApp');
var adminIsOpen = adminApp && adminApp.style.display === 'flex';
if(!adminIsOpen){
// Switch to app view first so modal shows on phone
if(window._openView) window._openView('app');
setTimeout(function(){ window.showAdminLoginModal && window.showAdminLoginModal(); }, 100);
} else {
if(window._openView) window._openView('admin');
document.getElementById('spAdminBtn').classList.add('active-tab');
document.getElementById('spUserBtn').classList.remove('active-tab');
}
};
// Update pill state when view changes — patch openView
var _origOpenView = window._openView;
window._openView = function(v){
if(_origOpenView) _origOpenView(v);
var pill = document.getElementById('switchPill');
var spU = document.getElementById('spUserBtn');
var spA = document.getElementById('spAdminBtn');
if(!pill) return;
if(v === 'app'){
pill.classList.add('show');
if(spU){ spU.classList.add('active-tab'); spU.classList.remove('inactive-tab'); }
if(spA){ spA.classList.remove('active-tab'); }
} else if(v === 'admin'){
pill.classList.add('show');
if(spA){ spA.classList.add('active-tab'); spA.classList.remove('inactive-tab'); }
if(spU){ spU.classList.remove('active-tab'); }
}
};