TRADING TOOLS

Forex Position Sizing Calculator

Calculate your ideal lot size, pip value, and dollar risk for any forex pair.

← Back to ChartDistrict

Position Sizing

Lot Size
Risk %
Currency Pair EUR/USD GBP/USD USD/JPY AUD/USD USD/CAD USD/CHF NZD/USD EUR/GBP EUR/JPY GBP/JPY AUD/JPY
Select a pair to see specs
Account Balance ($)
Risk Per Trade (%)
Entry Price
Stop Loss Price
Profit Target (optional)

Results

Dollar Risk
Stop Distance (pips)
Pip Value (per lot)
Recommended Lot Size
Units
Position Value
Profit Target ($)
Risk/Reward Ratio
Disclaimer: For educational purposes only. Pip values vary with exchange rates. Trading forex involves substantial risk.
var PAIRS={EURUSD:{pipSize:0.0001,pipVal:10,jpy:false},GBPUSD:{pipSize:0.0001,pipVal:10,jpy:false},USDJPY:{pipSize:0.01,pipVal:9.09,jpy:true},AUDUSD:{pipSize:0.0001,pipVal:10,jpy:false},USDCAD:{pipSize:0.0001,pipVal:7.46,jpy:false},USDCHF:{pipSize:0.0001,pipVal:11.2,jpy:false},NZDUSD:{pipSize:0.0001,pipVal:10,jpy:false},EURGBP:{pipSize:0.0001,pipVal:12.7,jpy:false},EURJPY:{pipSize:0.01,pipVal:9.09,jpy:true},GBPJPY:{pipSize:0.01,pipVal:9.09,jpy:true},AUDJPY:{pipSize:0.01,pipVal:9.09,jpy:true}}; function fxMode(m){document.getElementById(‘tab-lot’).className=’fx-tab’+(m===’lot’?’ active’:”);document.getElementById(‘tab-risk’).className=’fx-tab’+(m===’risk’?’ active’:”);} function fxUpdatePair(){var p=PAIRS[document.getElementById(‘fx-pair’).value];if(!p)return;document.getElementById(‘fx-pinfo’).innerHTML=’Pip Size: ‘+p.pipSize+’ | Pip Value/lot: ~$’+p.pipVal.toFixed(2)+’‘;} function fxSet(id,val,cls){var el=document.getElementById(id);if(!el)return;el.textContent=val;el.className=’fx-val’+(cls?’ ‘+cls:”);} function fxCalc(){ var pair=document.getElementById(‘fx-pair’).value,p=PAIRS[pair]; var acct=parseFloat(document.getElementById(‘fx-account’).value)||0; var rp=parseFloat(document.getElementById(‘fx-riskpct’).value)||1; var entry=parseFloat(document.getElementById(‘fx-entry’).value)||0; var stop=parseFloat(document.getElementById(‘fx-stop’).value)||0; var tgt=parseFloat(document.getElementById(‘fx-target’).value)||0; if(!entry||!stop){alert(‘Enter Entry and Stop Loss prices.’);return;} var dolRisk=acct*(rp/100); var pips=Math.abs(entry-stop)/p.pipSize; var lots=dolRisk/(pips*p.pipVal); lots=Math.round(lots*100)/100; var units=Math.round(lots*100000); var posVal=units*entry; var tPips=tgt?Math.abs(tgt-entry)/p.pipSize:0; var tDol=tPips*p.pipVal*lots; var rr=pips>0&&tPips>0?(tPips/pips).toFixed(2)+’:1′:’—’; var lotStr=lots.toFixed(2)+’ std (‘+(lots*10).toFixed(1)+’ mini)’; fxSet(‘r-drisk’,’$’+dolRisk.toFixed(2),’gold’); fxSet(‘r-pips’,pips.toFixed(1)+’ pips’); fxSet(‘r-pipval’,’$’+p.pipVal.toFixed(2)); fxSet(‘r-lots’,lotStr,’gold’); fxSet(‘r-units’,units.toLocaleString()+’ units’); fxSet(‘r-posval’,’$’+posVal.toLocaleString(‘en-US’,{maximumFractionDigits:0})); fxSet(‘r-profit’,tgt&&lots>0?’$’+tDol.toFixed(2):’—’,’green’); fxSet(‘r-fxrr’,rr); } fxUpdatePair();