Minggu, 28 Oktober 2012

SCRIPT EA HEDGING


SCRIPT EA HEDGING

Posted: May 15, 2011 in Expert Advisor
 
 
 
 
 
 
Rate This

Ini salah satu contoh coding EA Hedging silahkan dipelajari dan dioprex sesuai dengan sistem teman-teman…
#property copyright “Andi Goen”
#property link “http://facebook.com/andi.goen”
extern string email = “”;
extern string Pair = “USDJPY”;
extern double Lots = 0.1;
extern int TakeProfit = 30;
extern int StopLoss = 300;
extern bool ConstantStop = TRUE;
extern int Step1 = 30;
extern int TP1 = 30;
extern int Step2 = 30;
extern int TP2 = 30;
extern int Step3 = 30;
extern int TP3 = 30;
extern int Step4 = 30;
extern int TP4 = 30;
extern int Step5 = 30;
extern int TP5 = 30;
extern int Step6 = 30;
extern int TP6 = 30;
extern int Step7 = 30;
extern int TP7 = 30;
extern int Step8 = 30;
extern int TP8 = 30;
extern int Step9 = 30;
extern int TP9 = 30;
extern int Step10 = 30;
extern int TP10 = 30;
int g_slippage_192 = 3;
int gi_196 = 2;
extern int StartHour = 0;
extern int EndHour = 24;
int g_magic_208 = 111;
int gi_212 = D’01.01.2012 14:00′;
int gi_216 = 1533279600;
string gs_220 = “Silahkan Trading Live”;

int start() {
double l_price_0;
double l_price_8;
double l_price_16;
double l_lots_24;
double l_pips_32;
double l_pips_40;
if (Year() > 2012) {
Alert(“EA_Hedging Expaired”);
return (0);
}
int l_ticket_48 = 0;
int l_ticket_52 = 0;
int l_ticket_56 = 0;
int l_ticket_60 = 0;
int l_ticket_64 = 0;
int l_ticket_68 = 0;
double l_ord_lots_72 = 0;
double l_ord_lots_80 = 0;
double l_ord_open_price_88 = 0;
double l_ord_open_price_96 = 0;
double l_ord_takeprofit_104 = 0;
double l_ord_takeprofit_112 = 0;
double l_ord_lots_120 = 0;
double l_ord_lots_128 = 0;
double l_ord_lots_136 = 0;
double l_ord_lots_144 = 0;
double ld_152 = 0;
double ld_160 = 0;
for (int l_pos_168 = 0; l_pos_168 < OrdersTotal(); l_pos_168++) {
OrderSelect(l_pos_168, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_208) {
if (OrderType() == OP_BUY && l_ticket_48 < OrderTicket()) {
l_ord_lots_72 = OrderLots();
l_ord_open_price_88 = OrderOpenPrice();
l_ticket_48 = OrderTicket();
l_ord_takeprofit_112 = OrderTakeProfit();
if (OrderLots() == Lots) ld_152 = OrderOpenPrice() – StopLoss * Point;
}
if (OrderType() == OP_SELL && l_ticket_52 < OrderTicket()) {
l_ord_lots_80 = OrderLots();
l_ord_open_price_96 = OrderOpenPrice();
l_ticket_52 = OrderTicket();
l_ord_takeprofit_104 = OrderTakeProfit();
if (OrderLots() == Lots) ld_160 = OrderOpenPrice() + StopLoss * Point;
}
if (OrderType() == OP_BUYLIMIT) {
l_ticket_56 = OrderTicket();
l_ord_lots_136 = OrderLots();
}
if (OrderType() == OP_SELLLIMIT) {
l_ticket_60 = OrderTicket();
l_ord_lots_144 = OrderLots();
}
if (OrderType() == OP_BUYSTOP) {
l_ticket_64 = OrderTicket();
l_ord_lots_120 = OrderLots();
}
if (OrderType() == OP_SELLSTOP) {
l_ticket_68 = OrderTicket();
l_ord_lots_128 = OrderLots();
}
}
}
if (l_ticket_48 == 0) {
if (l_ticket_56 != 0) OrderDelete(l_ticket_56);
if (l_ticket_64 != 0) OrderDelete(l_ticket_64);
l_price_8 = Ask – StopLoss * Point;
if (StopLoss = StartHour && TimeHour(TimeCurrent()) = gi_212 && TimeCurrent() <= gi_216) OrderSend(Symbol(), OP_BUY, Lots, Ask, g_slippage_192, l_price_8, l_price_16, "EA_Hedging", g_magic_208, 0, Blue);
else Alert(gs_220);
}
}
if (l_ticket_52 == 0) {
if (l_ticket_60 != 0) OrderDelete(l_ticket_60);
if (l_ticket_68 != 0) OrderDelete(l_ticket_68);
l_price_8 = Bid + StopLoss * Point;
if (StopLoss = StartHour && TimeHour(TimeCurrent()) = gi_212 && TimeCurrent() <= gi_216) OrderSend(Symbol(), OP_SELL, Lots, Bid, g_slippage_192, l_price_8, l_price_16, "EA_Hedging", g_magic_208, 0, Red);
else Alert(gs_220);
}
}
if (l_ticket_48 != 0 && l_ticket_56 == 0) {
l_pips_40 = FinalStep(l_ord_lots_72);
l_pips_32 = FinalTP(l_ord_lots_72);
l_price_0 = l_ord_open_price_88 – l_pips_40 * Point;
if (ConstantStop == FALSE) l_price_8 = l_price_0 – StopLoss * Point;
else l_price_8 = ld_152;
if (StopLoss <= 0) l_price_8 = 0;
l_price_16 = l_price_0 + l_pips_32 * Point;
l_lots_24 = NormalizeDouble(2.0 * l_ord_lots_72, gi_196);
OrderSend(Symbol(), OP_BUYLIMIT, l_lots_24, l_price_0, g_slippage_192, l_price_8, l_price_16, "EA_Hedging", g_magic_208, 0, Blue);
}
if (l_ticket_52 != 0 && l_ticket_60 == 0) {
l_pips_40 = FinalStep(l_ord_lots_80);
l_pips_32 = FinalTP(l_ord_lots_80);
l_price_0 = l_ord_open_price_96 + l_pips_40 * Point;
if (ConstantStop == FALSE) l_price_8 = l_price_0 + StopLoss * Point;
else l_price_8 = ld_160;
if (StopLoss <= 0) l_price_8 = 0;
l_price_16 = l_price_0 – l_pips_32 * Point;
l_lots_24 = NormalizeDouble(2.0 * l_ord_lots_80, gi_196);
OrderSend(Symbol(), OP_SELLLIMIT, l_lots_24, l_price_0, g_slippage_192, l_price_8, l_price_16, "APS_Hedging", g_magic_208, 0, Red);
}
for (l_pos_168 = 0; l_pos_168 < OrdersTotal(); l_pos_168++) {
OrderSelect(l_pos_168, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderType() == OP_BUY && l_ticket_48 != 0 && OrderMagicNumber() == g_magic_208) {
if (ConstantStop == FALSE) l_price_8 = l_ord_open_price_88 – StopLoss * Point;
else l_price_8 = ld_152;
if (StopLoss <= 0) l_price_8 = 0;
if (l_ticket_48 != OrderTicket()) l_price_16 = l_ord_takeprofit_112;
else l_price_16 = OrderTakeProfit();
if (l_price_16 != OrderTakeProfit() || l_price_8 != OrderStopLoss()) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_8, l_price_16, 0, CLR_NONE);
}
if (OrderSymbol() == Symbol() && OrderType() == OP_SELL && l_ticket_52 != 0 && OrderMagicNumber() == g_magic_208) {
if (ConstantStop == FALSE) l_price_8 = l_ord_open_price_96 + StopLoss * Point;
else l_price_8 = ld_160;
if (StopLoss <= 0) l_price_8 = 0;
if (l_ticket_52 != OrderTicket()) l_price_16 = l_ord_takeprofit_104;
else l_price_16 = OrderTakeProfit();
if (l_price_16 != OrderTakeProfit() || l_price_8 != OrderStopLoss()) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_8, l_price_16, 0, CLR_NONE);
}
}
return (0);
}
int FinalStep(double ad_0) {
ad_0 = NormalizeDouble(ad_0 / Lots, 0);
switch (ad_0) {
case 1.0:
return (Step1);
case 2.0:
return (Step2);
case 4.0:
return (Step3);
case 8.0:
return (Step4);
case 16.0:
return (Step5);
case 32.0:
return (Step6);
case 64.0:
return (Step7);
case 128.0:
return (Step8);
case 256.0:
return (Step9);
case 512.0:
return (Step10);
}
return (Step10);
}
int FinalTP(double ad_0) {
ad_0 = NormalizeDouble(ad_0 / Lots, 0);
switch (ad_0) {
case 1.0:
return (TP1);
case 2.0:
return (TP2);
case 4.0:
return (TP3);
case 8.0:
return (TP4);
case 16.0:
return (TP5);
case 32.0:
return (TP6);
case 64.0:
return (TP7);
case 128.0:
return (TP8);
case 256.0:
return (TP9);
case 512.0:
return (TP10);
}
return (TP10);
}

Moving Average

Moving Average 
Author: MetaQuotes
Download: 
Moving Average.mq4 (4.6 Kb)

EA Moving Average menghasilkan signal perdagangan dengan menggunakan moving average. Membuka dan menutup posisi dilakukan ketika moving average memenuhi harga di bar yang baru terbentuk (indeks bar setara dengan 1). Ukuran lot akan dioptimalkan sesuai dengan algoritma khusus.

Money Management yang digunakan sangat sederhana, tetapi efektif, kontrol atas setiap volume posisi dilakukan tergantung pada hasil transaksi sebelumnya. Algoritma ini diimplementasikan oleh fungsi (LotsOptimized). Ukuran lot dasar dihitung berdasarkan risiko maksimum yang diijinkan:

Lot = NormalizeDouble (AccountFreeMargin () * MaximumRisk/1000.0, 1);

Parameter MaximumRisk menampilkan persentase risiko dasar untuk setiap transaksi. Biasanya memiliki nilai antara 0,01 (1%) dan 1 (100%). Sebagai contoh, jika free margin(AccountFreeMargin) setara dengan $ 20.500 dan aturan pengelolaan modal menggunakan resiko 2%, ukuran lot dasar adalah 20500 * 0,02 / 1000 = 0,41.

DecreaseFactor adalah sejauh mana ukuran lot akan berkurang setelah perdagangan yang tidak menguntungkan. nilai normal adalah 2,3,4,5. Jika transaksi sebelumnya yang tidak menguntungkan, volume berikutnya akan berkurang dengan faktor DecreaseFactor untuk menunggu periode tidak menguntungkan tersebut. Ini adalah faktor utama dalam algoritma pengelolaan modal. Idenya sangat sederhana: jika berhasil meningkatkan perdagangan, EA bekerja dengan banyak dasar untuk menghasilkan keuntungan maksimal. Setelah transaksi tidak menguntungkan pertama, EA akan “mengurangi kecepatan” sampai transaksi positif. Algoritma ini memungkinkan untuk menonaktifkan “mengurangi kecepatan”, untuk melakukannya, kita harus menentukan DecreaseFactor = 0. Jumlah transaksi terakhir tidak menguntungkan berurutan, akan dihitung ulang berdasarkan ini:

if (loss> 1) lot = NormalizeDouble (lots loss * / DecreaseFactor, 1);

if (lot <0,1) lot = 0,1;

EA ini baik digunakan untuk chart harian.

agan2 bisa belajar di http://instaforex.co.id/mt4/moving-average/

Step marty 0.01 namun lot tak terjadi martiyem

ini khusus untuk lot awal = 0.01, walau ada exp = 2, lot selanjutnya tetap sama
klu lot awal dimulai 0.02, maka lot marti selanjutnya berjalan semsetinya sesuai dengan perkalian exp nya

masalah :
http://indo.mt5.com/showthread.php?1793-GRATIS-Profitable-EA-BHCM-!/page38

maaf nih agan semua , sy mau tanya
ane pasang multyply nya =1 
kok OP selanjutnya malah naik sendiri lotnya , kira2 salahnya apa y



terlihat walau multiply = 1, namun lot naik 0.01

jawab :
Coba dilihat pada bagian yang ini....

LotBuy = MathMax(Multiply*OrderLots(),OrderLots()+lotstep);
LotSell = MathMax(Multiply*OrderLots(),OrderLots()+lotstep);


MathMax = Menampilkan nilai tertinggi.
lotstep = MarketInfo(Symbol(), MODE_LOTSTEP); ==>> asumsi jika memakai account demo instaforex MODE_LOTSTEP = 0.01


Jadi kesimpulannya seperti ini

LotBuy/LotSell = MathMax(Multiply*OrderLots(),OrderLots()+lotstep)
LotBuy/LotSell = MathMax(1*0.1,0.1+0.01) 
LotBuy/LotSell = MathMax(0.1,0.11)
LotBuy/LotSell = 0.11


Kalau mau tidak bertambah lotnya bisa dicoba dihilangkan "+lotstep" nya..... 

ganti semua ini :
Code:
LotBuy      = MathMax(Multiply*OrderLots(),OrderLots()+lotstep);
LotBuy = MathMax(LotBuy, minlot);
dengan ini :
Code:
LotBuy      = MathMax(Multiply*OrderLots(),minlot);
--------------
@iniangga & hermit88
Betul bagian itu yang diubah, maaf kemarin mo reply blom sempet masih sibuk.
Dan itu tidak menyalahi konsep Martingale, karena emang sebenarnya itu kode aslinya dulu ya saya bikin seperti itu 
Lalu kenapa saya tambahkan lotstep?
Kalo menyimak di post2 depan, pasti tahu sejarahnya. Dulu ada yang coba penambahan lot-nya ngga jalan karena menggunakan multiply 1.5
1.5 x0.1 = 0.15
Nah jika lotstep dari broker yang bersangkutan adalah 0.1, maka perhitungan tadi akan menghasilkan tetap 0.1 karena penambahan lot (lotstep) yang diijinkan minimal 0.1
Kalo di Insta lotstep=0.01 jadi no problemo 
Ok, kiranya masalah ini cukup jelas. Jika ada yang kurang sreg, sampaikan saja...
Saya sangat berterima kasih kepada iniangga & hermit88 karena bersedia membantu menjelaskan coding-nya. Karena kebanyakan orang males belajar, maunya langsung dapet instan hehe..  
Belajar MQL ngga ada ruginya, terutama jika setiap hari MT4 jadi "santapan" sehari-hari, minimal bisa edit2 indi/EA dikit2 khan lumayan.

--------------------------
Masalah saya sdh ada exp namun lot tidak exponential..

tambahkan perintah :

di input :

double gd_1=1;


void SetDigits() {
   if (Digits == 5 || Digits == 3) gd_160 = 10;
   if(MarketInfo(Symbol(),MODE_MINLOT) == 0.01) gd_1 = 2;
}



di perintah order :

if (OrderSend(Symbol(), OP_SELLSTOP, NormalizeDouble(LotsExponential * Lots, gd_1), NormalizeDouble(ld_8 - KillZone * Point * gd_160, Digits), Slippage, l_price_24, l_price_32, gs_007_148, Magic_Number, 0, Red) == -1) {
               l_error_0 = GetLastError();

Jumat, 26 Oktober 2012

logic tradetime


jumat tidak trading
//taro dibagian atas
extern bool OPFriday = false; //artinya false = tidak buka posisi baru di hari jumat

//replace tradetime dgn yg ini
bool TradeTime()
{
bool TradingTime = false;
if(StartTime < StopTime)
{
if (Hour() >= StartTime && Hour() <= StopTime) TradingTime = true;
if(OPFriday == false)
{
if(TradingTime == true)
{
if(DayOfWeek() == 5) TradingTime = false;
}
}
}
else if(StartTime > StopTime)
{
if (Hour() >= StartTime || Hour() <= StopTime) TradingTime = true;
if(OPFriday == false)
{
if(TradingTime == true)
{
if(DayOfWeek() == 5 && Hour() < StartTime) TradingTime = false;
}
}
if(DayOfWeek() == 5 && Hour() >= StartTime) TradingTime = false;
}
return(TradingTime);
}

Kamis, 18 Oktober 2012

Eatree


If you allow me to respond:

EATree Software www.eatree.com
Take advantage of EATree Software time-limited sale started yesterday. This is the best time to buy EATree as we have time-limited 100% bonus with 4XP. This is a wonderful deal.

We have wonderful deals for you with our partner, 4XP. Here are the 3 different buying opportunities:

1. Buy the EATree software only as a standalone product.

2. Buy the EATree software plus deposit a minimum of $1000 at 4XP and receive 100% bonus, up to $3000 deposit. In this buying opportunity, your cost of buying EATree software is deposited into your 4XP account. In addition, you get extra cash deposited into your 4XP account.

Buy the EATree software plus deposit a minimum of $10,000 at 4XP and receive VIP Trading account including spread reduction, 50% bonus, and VIP EATree Webinar sessions. In this buying opportunity, your cost of buying EATree software is deposited into your 4XP account. In addition, you get the VIP pack and extra cash deposited into your 4XP account.



We would like to give you updates about EA Tree software www.eatree.com

- We have released EATree MT4 for the MetaTrader 4 platform, the most popular financial markets and forex trading platform
- We have released version 2, which has many useful features. 
- We have created a free demo version (limited edition – save disabled) that you can download for fat http://www.eatree.com/demo
- We are using a new color system that make it easier to use EATree
- We have published a new article about EA Tree software at MetaTrader 5 site at:
http://www.mql5.com/en/articles/337


What is EATree?
EATree is a MetaTrader drag and drop Expert Advisor (EA) builder. Itis a windows application that runs locally on your computer. You can create complex MT4 and MT5 EAs using a very easy to use graphical user interface. There are two different products: EATree MT4 standard Edition V2.0 that supports the MQL4 language and EATree MT5 standard Edition V2.0 that supports the MQL5 language.
In EATree, expert advisors and forex signals are created by connecting trading blocks called boxes together. Boxes may contain MQL functions, technical indicators, custom indicators, or values. Outputs of one box may be connected to inputs of another box to form a “tree of boxes”. EATree has a visual color system to guide you through this process. EATree then converts this visual representation of forex trading strategies to a ready to use MetaTrader expert advisor or forex signal.


Why EATree

Ease of use
Easy to use and understand drag and drop graphical user interface. You simply connect trading blocks or boxes together to create a layout or a tree of boxes. EATree has a visual color system to guide you through this process.

No Programming
You do not need to have any programming background or even knowledge of the MQL trading language to use EATree. EATree converts the visual representation of forex trading strategies that you create in EATree to a ready to use MetaTrader expert advisor or forex signal.

Power
Access to powerful trading tools such as money management, trading controls, trailing stops, time zones, hedging, martingale, news, and much more. Tools vary between EATree MT4 and MT5. 

MQL Learning
If you have some programming background, you can quickly learn MQL trading languages. Every time you create a new box and connect it, you can instantly view the MetaTrader expert advisor code and learn from analyzing code changes.

Privacy
Privacy of your trading secrets. No need to share your ideas with anybody. You can create your MetaTrader expert advisors or forex signals privately.

Development Speed
You decrease expert advisor or forex signal development time to minutes instead of days or months. You can create a library of layouts or trees of boxes while you are working to reduce development time drastically.

Complex EAs
You can develop complex MQL expert advisors and forex signals with multiple currencies and multiple timeframes.

Efficiency
You can reuse code by saving and loading layouts or trees of boxes. You can create a database of layouts or trees of boxes while you are working, this will speed up your next project development time.

Error Free
You create correct MetaTrader expert advisors and forex signals code every time, assuming that you follow software installation and update instructions.

You can get all of this for free!
We have wonderful deals for you with our partner, 4XP. Here are the 3 different buying opportunities:

1. Buy the EATree software only as a standalone product.
2. Buy the EATree software plus deposit a minimum of $1000 at 4XP and receive 100% bonus, up to $3000 deposit. In this buying opportunity, your cost of buying EATree software is deposited into your 4XP account. In addition, you get extra cash deposited into your 4XP account.
3. Buy the EATree software plus deposit a minimum of $10,000 at 4XP and receive VIP Trading account including spread reduction, 50% bonus, and VIP EATree Webinar sessions. In this buying opportunity, your cost of buying EATree software is deposited into your 4XP account. In addition, you get the VIP pack and extra

http://www.youtube.com/watch?v=1htmNZxHsRc