Edit Your Comment
MT4 EA drawdown per day
Tham gia từ Jan 25, 2017
12bài viết
Feb 02, 2017 at 09:09
Tham gia từ Jan 25, 2017
12bài viết
Lets say I have an EA applied to an H1 chart.
How would I calculate the drawdown for that day?
Eg.
On Tick:
If (Today is a New Day) then
dailyDrawdown is 100.0
thisMorningsWorth = netAssetValue()
Else
dailyDrawdown = netAssetValue() / thisMorningsWorth
End
If (dailyDrawdown < 0.95) then
chillForToday()
Else
MakeThoseTrades()
End
What's the best way to set this sort of thing up?
How would I calculate the drawdown for that day?
Eg.
On Tick:
If (Today is a New Day) then
dailyDrawdown is 100.0
thisMorningsWorth = netAssetValue()
Else
dailyDrawdown = netAssetValue() / thisMorningsWorth
End
If (dailyDrawdown < 0.95) then
chillForToday()
Else
MakeThoseTrades()
End
What's the best way to set this sort of thing up?
Tham gia từ Nov 21, 2011
1601bài viết
Feb 02, 2017 at 17:01
Tham gia từ Nov 21, 2011
1601bài viết
Hi,
I calculate Daily_Profit.
Then
Make it %:
Daily_Profit / (Daily_Profit-AccountBalance() * 100
if Daily_Profit_Pourcentage > - x%... then trade.
I calculate Daily_Profit.
Then
Make it %:
Daily_Profit / (Daily_Profit-AccountBalance() * 100
if Daily_Profit_Pourcentage > - x%... then trade.
Tham gia từ Jan 25, 2017
12bài viết
Feb 03, 2017 at 07:51
Tham gia từ Jan 25, 2017
12bài viết
Sketching this out, maybe something like:
--------------------
extern int defaultMaxOrders = 1;
extern double dailyLossLimit = 0.95;
extern double dailyProfitLimit = 1.05;
int today;
double dailyEquity;
double dailyProfit;
bool chillMode = false;
void newDay() {
today = TimeDayOfWeek(TimeCurrent());
dailyEquity = AccountEquity();
chillMode = false;
}
void OnInit() {
today = TimeDayOfWeek(TimeCurrent());
dailyProfit = 1.0;
dailyEquity = AccountEquity();
}
void OnTick() {
if (today != TimeDayOfWeek(TimeCurrent())) {
newDay();
} else {
if (AccountEquity() / dailyEquity > dailyProfitLimit || AccountEquity() / dailyEquity < dailyLossLimit) {
chillMode = true;
closeAll();
}
}
if (openOrders(Symbol()) < defaultMaxOrders && chillMode == false) {
if (isNewCandle()) { makeSomeGoodTrades(); }
}
}
--------------------
?
--------------------
extern int defaultMaxOrders = 1;
extern double dailyLossLimit = 0.95;
extern double dailyProfitLimit = 1.05;
int today;
double dailyEquity;
double dailyProfit;
bool chillMode = false;
void newDay() {
today = TimeDayOfWeek(TimeCurrent());
dailyEquity = AccountEquity();
chillMode = false;
}
void OnInit() {
today = TimeDayOfWeek(TimeCurrent());
dailyProfit = 1.0;
dailyEquity = AccountEquity();
}
void OnTick() {
if (today != TimeDayOfWeek(TimeCurrent())) {
newDay();
} else {
if (AccountEquity() / dailyEquity > dailyProfitLimit || AccountEquity() / dailyEquity < dailyLossLimit) {
chillMode = true;
closeAll();
}
}
if (openOrders(Symbol()) < defaultMaxOrders && chillMode == false) {
if (isNewCandle()) { makeSomeGoodTrades(); }
}
}
--------------------
?
Tham gia từ Nov 21, 2011
1601bài viết
Feb 03, 2017 at 09:45
Tham gia từ Nov 21, 2011
1601bài viết
You can handle it.
Make backtest to check the behaviour is correct.
You can also print when Chillmode is true."No more trading... Loss <-5 or Profit >5"
Make backtest to check the behaviour is correct.
You can also print when Chillmode is true."No more trading... Loss <-5 or Profit >5"

*Nghiêm cấm sử dụng cho mục đích thương mại và spam, nếu vi phạm có thể dẫn đến việc chấm dứt tài khoản.
Mẹo: Đăng ảnh/url youtube sẽ tự động được nhúng vào bài viết của bạn!
Mẹo: Dùng @ để tự động điền tên người dùng tham gia vào cuộc thảo luận này.