A Quick Start Guide for EA Beginners
Are you new to considering EA, or have you been contemplating its adoption for some time? Do you find
yourself overwhelmed by the barrage of technical jargon and the myriad parameters you need to understand and select? Frankly, I believe that comprehending intricate settings and adjusting them while operating can be quite daunting for beginners.
Even though you aim to profit from automated trading, entrusting intricate settings to users without proper risk management can lead to uncertainty about whether the settings are correct and progress with apprehension.
To address such concerns, TripleBullet provides a Quick Start Guide to ensure that anyone can easily implement it. Rest assured, it's designed for everyone, from beginners to advanced users, allowing for worry-free long-term usage.
Whether you've had failed attempts with other EAs or are considering one for the first time, TripleBullet is an EA that I confidently recommend as a developer. It has been meticulously crafted to pursue users' benefits.
Please consider TripleBullet, an EA built with user benefits in mind.
※explore its detailed specifications here
Beginner's Quick Start Guide
You can quickly start using the EA by following the setup below:
SetUp
-
Provide a hedging-enabled account.
-
Maximum Leverage: Set to 25x
-
Timeframe: Monthly
-
Currency Pair: Specify EURGBP
Parameter | Value | Roll | Usage |
---|---|---|---|
debugMode | false | Log Output | tWhen set to true, debug logs are displayed in the journal. |
magicNumber | 98352 | Magic Number | Set a unique value that does not overlap with other EAs. |
stopEquity | 0 | Safe Feature | No new orders will be placed when the equity falls below this value. Set to 0 to disable. |
stopMarginLevel | 500 | Safe Feature | No new orders will be placed when the margin level falls below this value. Set to 0 to disable. |
stopDrawDownPer | 20 | Safe Feature | No new orders will be placed when the drawdown exceeds this percentage. Set to 100 to disable. |
spreadLimit | 20 | Safe Feature | No new orders will be placed when the spread exceeds this value. Set to a large number to disable. |
risk | 2.5 | Safe Feature | Automatically calculates lot size based on risk. Cannot be set simultaneously with lot. Set to 0 to disable. |
lot | 0 | Safe Feature | Sets a fixed lot size for trades. Cannot be set simultaneously with risk. Set to 0 to disable. |
pricePeriod | 36 | Trading Strategy | Determines how many monthly periods to use for calculations. |
noTradeCoreRange | 0.16 | Trading Strategy | Determines the core range. |
positionHalf | 31 | Trading Strategy | Determines the position size outside the core range. |
minTP | 95 | Trading Strategy | Sets the minimum TakeProfit in pips. |
maxTP | 271 | Trading Strategy | Sets the maximum TakeProfit in pips. |
sl | 0 | Trading Strategy | Sets the StopLoss in pips. Set to 0 to disable. |
symbol2 | USDCHF | Logic | Specifies an additional currency pair for trading. Make sure to use the correct pair name from MarketWatch. |
symbol3 | AUDNZD | Logic | Specifies an additional currency pair for trading. Make sure to use the correct pair name from MarketWatch. |
Specifications / Logic and Parameters
Basic Specifications
TripleBullet is designed to identify demand, imposing restrictions where necessary while avoiding constraints where unnecessary.
The design places heavy emphasis on user experience, ensuring parameters can be adjusted without difficulty.
-
Account
-
Please use an account that allows hedging.
-
Currency Pairs:
-
No restrictions. All currency pairs are available for trading.
-
Minimum Required Deposit:
-
Adjustable. Users can set the required deposit amount according to their preferences.
-
Timeframe:
-
Please utilize the monthly timeframe for trading.
Parameter Summary
Parameter | Roll | Usage |
---|---|---|
debugMode | Log Output | tWhen set to true, debug logs are displayed in the journal. |
magicNumber | Magic Number | Set a unique value that does not overlap with other EAs. |
stopEquity | Safe Feature | No new orders will be placed when the equity falls below this value. Set to 0 to disable. |
stopMarginLevel | Safe Feature | No new orders will be placed when the margin level falls below this value. Set to 0 to disable. |
stopDrawDownPer | Safe Feature | No new orders will be placed when the drawdown exceeds this percentage. Set to 100 to disable. |
spreadLimit | Safe Feature | No new orders will be placed when the spread exceeds this value. Set to a large number to disable. |
risk | Safe Feature | Automatically calculates lot size based on risk. Cannot be set simultaneously with lot. Set to 0 to disable. |
lot | Safe Feature | Sets a fixed lot size for trades. Cannot be set simultaneously with risk. Set to 0 to disable. |
pricePeriod | Trading Strategy | Determines how many monthly periods to use for calculations. |
noTradeCoreRange | Trading Strategy | Determines the core range. |
positionHalf | Trading Strategy | Determines the position size outside the core range. |
minTP | Trading Strategy | Sets the minimum TakeProfit in pips. |
maxTP | Trading Strategy | Sets the maximum TakeProfit in pips. |
sl | Trading Strategy | Sets the StopLoss in pips. Set to 0 to disable. |
symbol2 | Logic | Specifies an additional currency pair for trading. Make sure to use the correct pair name from MarketWatch. |
symbol3 | Logic | Specifies an additional currency pair for trading. Make sure to use the correct pair name from MarketWatch. |
You can trade up to three pairs simultaneously.
-
The first pair is determined based on the currency pair of the chart where the EA is running.
-
The second pair is determined by [symbol2], and the third pair by [symbol3].
-
If [symbol2] and [symbol3] are left empty, the number of traded symbols will decrease.
Note:
Do not set symbols that are not in the Market Watch.
Some brokers may use original symbol names.
For example, if the symbol name is "EURGBP-" in the Market Watch, please set "EURGBP-" instead of "EURGBP".
Grid Range Determination
In this EA, the trading strategy is based on the highest (Highest) and lowest (Lowest) prices over the past [PricePeriod] months, derived from the current candlestick.
The calculation formulas for each item are as follows:
-
Highest = Highest price over the past [PricePeriod] months
-
Lowest = Lowest price over the past [PricePeriod] months
-
Distance = Difference between the Highest and Lowest prices
-
CenterLine = Midpoint between the Highest and Lowest prices, calculated as (Distance / 2) + Lowest
These values are used to calculate the interval for trading.
Trading
All trades are executed as market orders. No limit orders are placed.
This allows for the suppression of trades during periods of spread widening.
Trading strategy is determined based on the CenterLine:
→ Only short trades are executed when prices are above the CenterLine.
→ Only long trades are executed when prices are below the CenterLine.
Trade Prohibited Range
The parameter [noTradeCoreRange] determines whether trading is prohibited.
No trades are executed within a range of [noTradeCoreRange] pips above and below the CenterLine.
By prohibiting trades around the CenterLine, losses are minimized even if the exchange rate fluctuates significantly.
The range where trading is prohibited is calculated as follows:
-
No trade range:
-
(CenterLine - Distance * [noTradeCoreRange]) ~
(CenterLine + Distance * [noTradeCoreRange])
In other words, if [noTradeCoreRange] is set to 0.5 or higher, no trades will be executed.
Take Profit(TP) and Trade Interval for Each Position
There is one position for each interval.
The calculation formula for the interval is as follows:
-
interval = Distance / [positionHalf]
-
However, if interval < [minTP] pips, then interval = [minTP].
-
However, if interval > [maxTP] pips, then interval = [maxTP].
If there is already a position within the interval range above and below the current price, no trades will be executed. Additionally, the Take Profit (TP) for the position is set to the same value as the interval.
In general, the maximum number of positions will be close to [positionHalf], but this may not be the case if the interval is equal to or less than [minTP] pips, or if it exceeds [maxTP] pips.
There is no interference between intervals for each currency pair. Each currency pair has its own interval management.
Stoploss
By default, there is no stop loss set. This is because not having a stop loss is the basic strategy of this EA.
The specific values for stop loss are as follows:
-
Stoploss (for long trades) = Ask - [sl] pips
-
Stoploss (for short trades) = Bid + [sl] pips
※ When [sl] = 0, no stop loss is set (default setting).
Lot
We offer two methods for determining lot sizes: fixed lot method and variable lot method.
If the lot size falls below the minimum lot size set by the broker, no trades will be executed.
Fixed Lot
In this method, lot size is determined by the following formula:
-
Lot = [lot]
Variable Lot
In this method, lot size is determined by the following formula:
-
Lot = Surplus Margin * [risk] / Amount required to purchase 1 lot
-
When the drawdown increases, the lot size decreases, and when there is surplus, the lot size increases, allowing for risk-controlled compound trading.
-
This makes it easier to balance when trading multiple pairs.
-
With Fixed Lot, there may be an imbalance in the amount invested in each pair, as the required margin for EURUSD and USDJPY, for example, differs.
-
However, with Variable Lot, as the lot size is based on the surplus margin, this issue does not arise.
※ In the case of Variable Lot, as the lot size is calculated based on the surplus margin, increasing leverage will increase the surplus margin, leading to higher risk than anticipated. Please be cautious when changing leverage.
※ If you wish to use Variable Lot, please set [lot] to 0.
Safe Functionality
-
Trading will be temporarily paused if the current spread is equal to or greater than [spreadLimit].
-
To disable, set [spreadLimit] = 99999999...
-
Trading will be temporarily paused if the current equity falls below [stopEquity].
-
To disable, set [stopEquity] = 0.
-
Trading will be temporarily paused if the margin level falls below [stopMarginLevel].
-
To disable, set [stopMarginLevel] = 0.
-
Trading will be temporarily paused if the drawdown exceeds [stopDrawDownPer].
-
To disable, set [stopDrawDownPer] = 100.
magicNumber
To differentiate the positions managed by this EA from those managed by other EAs, please set [magicNumber] to a unique value.
This EA will only operate on positions associated with the specified [magicNumber].
Logs
For any issues or troubles that occur within the EA, they will be displayed at the top left corner of the chart.
When [debugMode] is turned on, you can also check the logs in the Journal section of MT5, in addition to the top left corner of the chart.
※Please note that if [debugMode] is turned on, an excessive accumulation of logs may cause storage issues on MT5 or the machine, leading to malfunctions. Please use it while monitoring the remaining storage space carefully.
Optimization
Optimizing for the pairs you want to use can lead to even higher performance.
-
When operating multiple pairs, selecting pairs with low correlation can help diversify risks.
-
Please specify the minimum lot ([lot] should be set to either 0.1 or 0.01).
-
Set [noTradeCoreRange] to less than 0.5.
-
Set [risk] = 0.
-
It is recommended to turn off the safety function.
-
For optimization evaluation, it is recommended to use "Complex Criterion Max".
-
For optimization, it is recommended to have a testing period of at least three years.
-
To avoid curve-fitting, it is recommended to allocate half of the testing period for forward testing.
Recommended optimization parameters for FX pairs are as follows.
Please adjust according to your preferences and machine specifications:
Parameter | Start | Step | Stop |
---|---|---|---|
pricePeriod | 1 | 1 | 96 |
noTradeCoreRange | 0 | 0.05 | 0.5 |
positionHalf | 1 | 1 | 50 |
minTP | 10 | 5 | 100 |
maxTP | 101 | 10 | 301 |
Sample Optimization Results
Below are the best settings obtained through optimization on the developer's machine (EURGBP):
Parameter | Value |
---|---|
pricePeriod | 36 |
noTradeCoreRange | 0.16 |
positionHalf | 31 |
minTP | 95 |
maxTP | 271 |
symbol1 | USDCHF |
symbol2 | AUDNZD |
Error Message During Optimization
If you encounter an error message like the following during optimization, it may indicate that the optimization is not proceeding as expected:
In such cases, it is recommended to check the details of the error using "Visualize Test".
Input the parameter set that may have caused the failure, and start the "Visualize Test".
You can confirm the details of the error (alert message) using this feature.