1 مرفق
مطلوب اكسبرت لاستراتيجية جااااااااااامدة جدا ونجاحها فوق 90%
السلام عليكم ورحمة الله وبركاتة
انا كنت طالب اكسبرت بس من الاخوة الاعضاء الاكسبرت هو للاستراتيجية دي والاستراتيجية دى مكونة من موفنجين
Moving Average 5 Shift 0 Linear Weighted
Moving Average 14 Shift 3 exponential
الاكسبرت هيبقى على فريم الساعة لما الموفينج 5 اول ما يقطع الموفينج 14 لفوق يدخل شراء ولما يقطع الموفينج 5 الموفينج 14 الي اسفل يدخل بيع مع التنبية اثناء حدوث التقاطع
لو فية حد يقدر يساعدني الاستراتيجية دي مضمونة جدا المشكلة ان الواحد مش هيفضل طول النهار عينة فى الشاشة بتاعت الكمبيوتر لو فية حد يساعدني يا ريت وحاجة تانية يعلمني ازاى اشتغل على الاكسبرت او اشغله وشكرا للجميع ودا رابط الاستراتيجية ولو حد عاوز يراجع الفرص اللى فاتت فهيا جاااااااامدة جدا الاستراتيجية دي وعلى فريم الساعة افضل فريم فى حالتي البيع والشراء
1 مرفق
رد:مطلوب اكسبرت لاستراتيجية جااااااااااامدة جدا ونجاحها فوق 90%
تم عمل إكسبيرت لها .. وانظر إلى الأرباح وبنسبة 99.90%
http://im41.gulfup.com/qWIia.gif
كود الإكسبيرت
كود:
extern double SellLots16 = 0.1;extern int SellStoploss16 = 0;
extern int SellTakeprofit16 = 0;
extern double BuyLots13 = 0.1;
extern int BuyStoploss13 = 0;
extern int BuyTakeprofit13 = 0;
// local variables
double PipValue=1; // this variable is here to support 5-digit brokers
bool Terminated = false;
string LF = "\n"; // use this in custom or utility blocks where you need line feeds
int NDigits = 4; // used mostly for NormalizeDouble in Flex type blocks
int ObjCount = 0; // count of all objects created on the chart, allows creation of objects with unique names
int current = 0;
int init()
{
NDigits = Digits;
if (false) ObjectsDeleteAll(); // clear the chart
Comment(""); // clear the chart
}
// Expert start
int start()
{
if (Bars < 10)
{
Comment("Not enough bars");
return (0);
}
if (Terminated == true)
{
Comment("EA Terminated.");
return (0);
}
OnEveryTick9();
}
void OnEveryTick9()
{
PipValue = 1;
if (NDigits == 3 || NDigits == 5) PipValue = 10;
TechnicalAnalysis1();
TechnicalAnalysis2();
TechnicalAnalysis8();
}
void TechnicalAnalysis1()
{
if (iMA(NULL, PERIOD_H1,4,1,MODE_EMA,PRICE_CLOSE,0) < iMA(NULL, PERIOD_H1,14,3,MODE_EMA,PRICE_CLOSE,0))
{
IfOrderDoesNotExist12();
}
}
void IfOrderDoesNotExist12()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == 1)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
if (exists == false)
{
SellOrder16();
}
}
void SellOrder16()
{
double SL = Bid + SellStoploss16*PipValue*Point;
if (SellStoploss16 == 0) SL = 0;
double TP = Bid - SellTakeprofit16*PipValue*Point;
if (SellTakeprofit16 == 0) TP = 0;
int ticket = -1;
if (true)
ticket = OrderSend(Symbol(), OP_SELL, SellLots16, Bid, 4, 0, 0, "My Expert", 1, 0, Red);
else
ticket = OrderSend(Symbol(), OP_SELL, SellLots16, Bid, 4, SL, TP, "My Expert", 1, 0, Red);
if (ticket > -1)
{
if (true)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Red);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}
void TechnicalAnalysis2()
{
if (iMA(NULL, PERIOD_H1,4,1,MODE_EMA,PRICE_CLOSE,0) > iMA(NULL, PERIOD_H1,14,3,MODE_EMA,PRICE_CLOSE,0))
{
IfOrderDoesNotExist14();
CloseOrder18();
}
}
void IfOrderDoesNotExist14()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 1)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
if (exists == false)
{
BuyOrder13();
}
}
void BuyOrder13()
{
double SL = Ask - BuyStoploss13*PipValue*Point;
if (BuyStoploss13 == 0) SL = 0;
double TP = Ask + BuyTakeprofit13*PipValue*Point;
if (BuyTakeprofit13 == 0) TP = 0;
int ticket = -1;
if (true)
ticket = OrderSend(Symbol(), OP_BUY, BuyLots13, Ask, 4, 0, 0, "My Expert", 1, 0, Blue);
else
ticket = OrderSend(Symbol(), OP_BUY, BuyLots13, Ask, 4, SL, TP, "My Expert", 1, 0, Blue);
if (ticket > -1)
{
if (true)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}
void CloseOrder18()
{
int orderstotal = OrdersTotal();
int orders = 0;
int ordticket[90][2];
for (int i = 0; i < orderstotal; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType() != OP_SELL || OrderSymbol() != Symbol() || OrderMagicNumber() != 1)
{
continue;
}
ordticket[orders][0] = OrderOpenTime();
ordticket[orders][1] = OrderTicket();
orders++;
}
if (orders > 1)
{
ArrayResize(ordticket,orders);
ArraySort(ordticket);
}
for (i = 0; i < orders; i++)
{
if (OrderSelect(ordticket[i][1], SELECT_BY_TICKET) == true)
{
bool ret = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 4, Red);
if (ret == false)
Print("OrderClose() error - ", ErrorDescription(GetLastError()));
}
}
}
void TechnicalAnalysis8()
{
if (iMA(NULL, PERIOD_H1,4,1,MODE_EMA,PRICE_CLOSE,0) < iMA(NULL, PERIOD_H1,14,3,MODE_EMA,PRICE_CLOSE,0))
{
IfOrderDoesNotExist12();
CloseOrder7();
}
}
void CloseOrder7()
{
int orderstotal = OrdersTotal();
int orders = 0;
int ordticket[90][2];
for (int i = 0; i < orderstotal; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderType() != OP_BUY || OrderSymbol() != Symbol() || OrderMagicNumber() != 1)
{
continue;
}
ordticket[orders][0] = OrderOpenTime();
ordticket[orders][1] = OrderTicket();
orders++;
}
if (orders > 1)
{
ArrayResize(ordticket,orders);
ArraySort(ordticket);
}
for (i = 0; i < orders; i++)
{
if (OrderSelect(ordticket[i][1], SELECT_BY_TICKET) == true)
{
bool ret = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 4, Red);
if (ret == false)
Print("OrderClose() error - ", ErrorDescription(GetLastError()));
}
}
}
int deinit()
{
if (false) ObjectsDeleteAll();
}