michalbrauner / forex-calculator
这是一个用于进行外汇相关计算的库。它提供基本计算器,可用于提高您的资金管理能力。
v1.0.4
2017-01-07 09:01 UTC
Requires
- php: >= 7.0.0
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- phpunit/phpunit: 5.3.*
This package is not auto-updated.
Last update: 2024-09-28 20:56:03 UTC
README
关于
forex-calculator 是一个用于进行外汇相关计算的库。它提供基本计算器,可用于提高您的资金管理能力。库需要 PHP 7。
安装
composer install michalbrauner/forex-calculator:^v1.0
使用方法
货币转换器
$currencyConverter = new \ForexCalculator\Services\CurrencyConverter( new \ForexCalculator\DataProviders\YahooDataProvider(new \GuzzleHttp\Client()) ); # Convert 100 eur to usd $convertedValue = $currencyConverter->convertToCurrency('eur', 'usd', 100);
盈亏和 RRR 计算器
# Create calculator factory $tradeAttributesCalculatorFactory = new \ForexCalculator\Services\TradeAttributesByTradeSizeCalculatorFactory( new \ForexCalculator\DataProviders\YahooDataProvider(new \GuzzleHttp\Client()), new \ForexCalculator\PrecisionProviders\MoneyPrecisionProvider(), new \ForexCalculator\PrecisionProviders\RiskRewardRatioPrecisionProvider() ); # Calculator settings $symbol = 'eurusd'; $outputCurrency = 'usd'; $extendedPoint = true; $tradeAttributesCalculator = $tradeAttributesCalculatorFactory->create('eurusd', 'usd', $extendedPoint); # Factory to create prices to trade $priceNumberFactory = new \ForexCalculator\DataObjects\FloatNumberFactory( new \ForexCalculator\PrecisionProviders\PricePrecisionProvider($symbol, $extendedPoint) ); $trade = new \ForexCalculator\DataObjects\Trade( $priceNumberFactory->create('1.03953'), $priceNumberFactory->create('1.03936'), $priceNumberFactory->create('1.04016') ); # Loss and profit for trade and size 20000 units $loss = $tradeAttributesCalculator->getLoss($trade, 20000); $profit = $tradeAttributesCalculator->getProfit($trade, 20000); $riskRewardRatio = $tradeAttributesCalculator->getRiskRewardRatio($trade);
最大风险计算器
... $numberOfUnitsCalculator = new \ForexCalculator\Services\NumberOfUnitsByMaximalLossCalculator( $symbol, $outputCurrency, $extendedPoint, $tradeAttributesCalculatorFactory ); $moneyNumberFactory = new \ForexCalculator\DataObjects\FloatNumberFactory( new \ForexCalculator\PrecisionProviders\MoneyPrecisionProvider() ); # Number of units to trade to risk 180 usd per trade $numberOfUnits = $numberOfUnitsCalculator->getNumberOfUnits($trade, $moneyNumberFactory->create('180'));