i just settings Spread Manually at Symbol Settings , but EAS always using Average Spread to generated , how can i change Average Spread at EAS ?... thank u
My answer is no! But maybe some geniuses here can work something out?
All,
Is there a way to have EAS or FSB flit through various combinations of indicators to find the best set that would reproduce my trading history? I not only want to EAS/FSB to optimize on my tick data, but I also target my trading history. Is there a workflow to make this happen?
Hi,
Thanks for this insight, in that case why not have it suggested for EA studio to built in this feature?
For example, a user toggle between “True Unseen OOS”
a) if toggle on, and determined by its percentage input, EAS will only run IS from specific percentage and leave the OOS percentage “unseen”
b) if toggle off, then EAS has the ability to “see the full story” of those OOS sample.
Wouldn’t this be a better idea to incorporate in then taking multiple steps to validate the collections?
Hello Mr. Popov,
I would like to request a dynamic lot sizing feature (percentage of equity) be added to the auto-generated EA code.
I was able to add this to my Porfolio EA with the following MQL5 code. Feel free to adjust /change:
enum ENUM_MM_TYPE {
MM_FIXED, // Fixed Lots
MM_PERCENT // Risk Percent
};
input ENUM_MM_TYPE MM_Type = MM_FIXED; // Money Management Type
input double Risk_Percent = 1.0; // Risk Percentage (%)
static input double Entry_Amount = 0.01; // Entry lots (or fallback if SL is 0)//+------------------------------------------------------------------+
//| Calculate Dynamic Lot Size based on Risk % |
//+------------------------------------------------------------------+
double GetDynamicLots(int slPips)
{
// If Fixed mode is selected, or if the strategy has no Stop Loss (0), use fixed lots
if(MM_Type == MM_FIXED || slPips <= 0)
return Entry_Amount;
double equity = AccountInfoDouble(ACCOUNT_EQUITY);
double riskAmount = equity * (Risk_Percent / 100.0);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
// Safety check to prevent division by zero
if(tickSize == 0 || tickValue == 0) return Entry_Amount;
// Calculate the monetary loss per 1.00 lot if Stop Loss is hit
// We use the global 'pip' variable already defined in your EA
double slPriceDistance = slPips * pip;
double lossPerLot = (slPriceDistance / tickSize) * tickValue;
if(lossPerLot <= 0) return Entry_Amount;
double calculatedLots = riskAmount / lossPerLot;
// Normalize lots to the broker's step (e.g., 0.01)
calculatedLots = MathFloor(calculatedLots / lotStep) * lotStep;
// Check Broker Limits
double minVol = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);
double maxVol = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
if(calculatedLots < minVol) calculatedLots = minVol;
if(calculatedLots > maxVol) calculatedLots = maxVol;
return calculatedLots;
}Update the `OpenPosition` Function: change
const double posLots = Entry_Amount;...to this:
const double posLots = GetDynamicLots(signal.StopLossPips);Thank you
Hi,
I have two questions:
1. What exactly do you do when you say, “now suppose we run this portfolio live from 1 June 2025 to 5 Dec 2025”? Do you test the walk-forward in EA Studio, or do you test it in MT4/MT5? Or is there another process involved?
2. There is certainly some influence, but in my experience the IS–OOS split is not the primary driver of overfitting. Have you considered changing the way you generate strategies in EA Studio?
BR
Vincenzo
If that is your approach, why on Ea studio there is no way to see a chart where:
x-axis : indicator parameter
y-axis : balance
the idea is that a good parameter should be located on a zone where changing it a bit would not change drastically the outcome of the strategy. If the strategy performs good only on a certain parameter, then most likely overfit.
> Thanks, care to explain what you mean with that?
A) Let's run the generator with 30% OOS and generate 100 strategies. Then enable all data and validate the strategies again. Let's have 20 strategies show good performance.
B) Run the Generator on the complete data set and stop it when it finds 20 strategies.
Result: In both cases, we have 20 strategies that perform well on the complete data set.
Question: Are the A-strategies better than the B-strategies?
Let's assume A-strategies are better and think of the reasons for that:
- they are battle-scarred
- they are the best 25% and received after eliminating the failed
- we used more complex software to find them
- we worked more and used more knowledge to find them
What if it happens that we have the same strategies in both collections?
I'm pretty sure all the B-startegies will pass the OOS criteria (except if we have some "U" shaped curves
)
...
What I do (not advice!)
- run the generator
- look at the strategies one by one to see if the indicator rules are in sync
- play with the numeric parameters with the mouse wheel to see how the balance changes
- test on data from a different broker
- put on MetaTrader to see what will happen without any expectations. If it works, well.
I wrote my opinion about OOS several years ago. Basically, it only heats the universe.
Thanks, care to explain what you mean with that? Or maybe if you can point me to the post where you talked about it?
Thanks
> If that's the case, wouldn't it make sense to have SetPosStats inside OnInit?
It makes sense.
I'll check it and will update the code.
Thank you!