Code hàm vào lệnh 1 lần trên 1 bar

Code hàm vào lệnh 1 lần trên 1 bar

Code hàm vào lệnh 1 lần trên 1 bar

tranphu

Active Member
106
23
Mình đang tìm hiểu code để có thể tự code mấy cái EA đơn giản phục vụ cho backtest. Có bác nào có hàm chỉ vào lệnh 1 lần trên 1 bar có thể chia sẻ được chia sẻ mình xin với và hướng dẫn cách dùng luôn thì tốt :).
Thanks các bác!
 

Giới thiệu sách Trading hay
Giao Dịch Theo Xu Hướng Để Kiếm Sống

Sách chia sẻ chiến lược giao dịch, tâm lý, phương pháp quản lý vốn thực chiến của Trader 18 năm kinh nghiệm giao dịch theo xu hướng
Sau khi mở lệnh: thoigianmolenh = Time[0]
Sau do dieu kien mo lenh: Time[0] != thoigianmolenh
 
Mình đang tìm hiểu code để có thể tự code mấy cái EA đơn giản phục vụ cho backtest. Có bác nào có hàm chỉ vào lệnh 1 lần trên 1 bar có thể chia sẻ được chia sẻ mình xin với và hướng dẫn cách dùng luôn thì tốt :).
Thanks các bác!
bool NewBar()
{
static datetime OldTime = 0;
if(OldTime < Time[0])
{
OldTime = Time[0];
return(true);
}
else
{
return(false);
}
}
 
bool NewBar()
{
static datetime OldTime = 0;
if(OldTime < Time[0])
{
OldTime = Time[0];
return(true);
}
else
{
return(false);
}
}
Thanks bác!
Theo gợi ý của bác betfx mình cũng đã viết thành hàm như này rồi nhưng vẫn còn 1 thắc mắc như sau:
- Theo trình tự lệnh thì câu lệnh gán Odltime =0 trong hàm này sẽ chỉ được thực hiện 1 lần duy nhất trong suốt quá trình EA nó chạy hay nó đều được gán lại mỗi lần hàm này được gọi (nếu đặt trong hàm OnTick thì sau mỗi Tick nó được gọi một lần)? Nếu sau mỗi lần gọi hàm nó đều gán lại giá trị Oldtime =0 thì điều kiện If lúc nào cũng đúng?
- Với thắc mắc đó nên mình đã đặt biến Oldtime ra ngoài hàm như biến extennal không biết có cần thiết không?
 
Thanks bác!
Theo gợi ý của bác betfx mình cũng đã viết thành hàm như này rồi nhưng vẫn còn 1 thắc mắc như sau:
- Theo trình tự lệnh thì câu lệnh gán Odltime =0 trong hàm này sẽ chỉ được thực hiện 1 lần duy nhất trong suốt quá trình EA nó chạy hay nó đều được gán lại mỗi lần hàm này được gọi (nếu đặt trong hàm OnTick thì sau mỗi Tick nó được gọi một lần)? Nếu sau mỗi lần gọi hàm nó đều gán lại giá trị Oldtime =0 thì điều kiện If lúc nào cũng đúng?
- Với thắc mắc đó nên mình đã đặt biến Oldtime ra ngoài hàm như biến extennal không biết có cần thiết không?
đặt hàm bên ngoài rồi mỗi lần cần thì quăng nó vào , với lại code này t nhặt đc trên forexfactory , nói chung là dùng tốt cho EA đọc nến hoặc MA1 vượt lên or xuống MA2 chẳng hạn
VD :
if (NewBar() && a>b && b>c....)
OrderSend......
 
bool NewBar()
{
static datetime OldTime = 0;
if(OldTime < Time[0])
{
OldTime = Time[0];
return(true);
}
else
{
return(false);
}
}
Bác nào giải thích giùm cái hoạt động gán giá trị cho biến này với
static datetime OldTime = 0;
Mỗi lần gọi hàm này nó lại gán giá trị về 0 à, hay với câu lệnh này nếu biến OldTime đã có giá trị thì nó không chạy câu lệnh này nữa (tức là không gán giá trị về 0 nữa)?
Vì nếu lần nào gọi hàm nó cũng gán giá trị về không thì câu lệnh if sau lúc nào cũng trả về True?
if(OldTime < Time[0])
{
OldTime = Time[0];
return(true);
}
else
{
return(false);
}

Thanks các bác!
 

BÌNH LUẬN MỚI NHẤT

AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

Back
Bên trên