البيانات |
تاريخ التسجيل: |
Jun 2013 |
رقم العضوية: |
15355 |
العمر: |
35 |
المشاركات: |
22 |
بمعدل : |
0.01 يوميا |
الإتصالات |
الحالة: |
|
وسائل الإتصال: |
|
|
كاتب الموضوع :
اسلام العوامى
المنتدى :
منتدى المؤشرات و الاكسبيرتات
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
صباح الخير استاذ اسلام يا رب تكون ريحت دماغى منى من انبارح
عندى شويه استفسارات
دلوقتى لو عايز اصمم الاكسبيرت يدخل صفقه بعد كسر الترند او الدعوم والمقاومات او فيبوناتشى ....معتمد على الرسم اليدوى ومش مؤشرات
و من ناحيه البريك ايفن والرتلينج استوب ..كود ترلينج ستيب بيتكتب بنفس الفكره
وكود البريك ايفن و الترلينج استوب حسب الشرح كل ما اجى اعمل باك تست مع اول صفقه وبتقف والسعر مش بيتحرك تانى مش عارف ايه العيب
وليه كتبنا موفينج ورسى بالطريقه دى واحد ظاهر والتانى مخفى
كود:
double Buy_1=iMA(Symbol(),0,5,2,MODE_SMA,PRICE_TYPICAL,1);
// double Sell_1=iMA(Symbol(),0,5,2,MODE_SMA,PRICE_TYPICAL,2);
double Buy_2=iRSI(Symbol(),0,14,PRICE_CLOSE,1);
// double Sell_2=iRSI(Symbol(),0,14,PRICE_CLOSE,2);
وايه الفرق بين الكودين المكتوبين دولت
كود:
//---
if(Digits==5||Digits==4)
{
pt=0.0001;
}
else{
pt=0.01;
}
^
^
ما الفارق بينهما
t=1; if(Digits==5||Digits==3||Digits==2){t=10;}
كود:
extern int Breakeven=10;
extern int Trailingstop=30;
extern double Lot1=0.1;
extern bool UseMM = false;
extern int Risk = 1;
extern int MagicNumber=778;
double pt;
int P;
int t;
double i,ii;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
if(UseMM==true)Lot1=lots();
if(Breakeven>0)BreakEven();
if(Trailingstop>0)TrailingStop();
}
//+------------------------------------------------------------------+
double lots()
{
double Lot1=MathCeil(AccountFreeMargin()*Risk/1000)/100;
if(Lot1<MarketInfo(Symbol(),MODE_MINLOT))
Lot1 = MarketInfo(Symbol(),MODE_MINLOT);
if(Lot1>MarketInfo(Symbol(),MODE_MAXLOT))
Lot1 = MarketInfo(Symbol(),MODE_MAXLOT);
return(Lot1);
}
//////////////////
void BreakEven()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==MagicNumber)
if(OrderType()==OP_BUY)
if(Bid-OrderOpenPrice()>Breakeven*t)
if(OrderOpenPrice()>OrderStopLoss())
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrNONE);
}
for(int ii=OrdersTotal()-i;ii>=0;ii--)
{
if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==MagicNumber)
if(OrderType()==OP_SELL)
if(OrderOpenPrice()-Ask>Breakeven*t)
if(OrderOpenPrice()<OrderStopLoss())
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrNONE);
}
}
//////////////////////
void TrailingStop()
{
for(int i=OrdersTotal()-1;i>=1;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==MagicNumber)
if(OrderType()==OP_BUY)
if(Bid-OrderOpenPrice()>Trailingstop*t)
if(OrderStopLoss()<Bid-Trailingstop*t)
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(Trailingstop*t),OrderTakeProfit(),0,clrNONE);
}
for(int ii=OrdersTotal()-1;ii>=0;i--)
{
if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol())
if(OrderMagicNumber()==MagicNumber)
if(OrderType()==OP_SELL)
if(OrderOpenPrice()-Ask>Trailingstop*t)
if(OrderStopLoss()>Ask+Trailingstop*t)
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(Trailingstop*t),OrderTakeProfit(),0,clrNONE);
}
}
وفى انتظارك افادتك ان شاء الله
|