النتائج 31 إلى 32 من 32
الموضوع: اصنع الأكسبيرت الخاص بك بنفسك
- 23-02-2010, 07:10 PM #31
- 23-02-2010, 07:35 PM #32
رد: اصنع الأكسبيرت الخاص بك بنفسك
بسم الله
سناخذ اليوم اكسبريت نستطيع من خلاله عمل مئات الأكسبيرتات بادنى مجهود الكود هو
كود PHP://+------------------------------------------------------------------+
//| Amro high low.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern int Step=20;
extern int Takeprofit=50;
extern int Stoploss=50;
extern double Lots=1;
int Magicnumber=234561;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if(Hour()==0 && Minute()<5 && MyOrdersTotal(Magicnumber)>0)
{
DeletePendingOrders(Magicnumber);
CloseOrders(Magicnumber);
}
if(Hour()==0 && Minute()>5 && MyOrdersTotal(Magicnumber)==0)
{
double Dayhigh=iHigh(Symbol(),PERIOD_D1,1);
double Daylow=iLow(Symbol(),PERIOD_D1,1);
double BuyPrice=Dayhigh+Step*Point;
double BuyTP=BuyPrice+Takeprofit*Point;
double BuySL=BuyPrice-Stoploss*Point;
double SellPrice=Daylow-Step*Point;
double SellTP=SellPrice-Takeprofit*Point;
double SellSL=SellPrice+Stoploss*Point;
OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,3,BuySL,BuyTP,"",Magicnumber,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,3,SellSL,SellTP,"",Magicnumber,0,Red);
}
return(0);
}
int MyOrdersTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
c++;
}
}
return(c);
}
int DeletePendingOrders(int Magic)
{
int total = OrdersTotal()-1;
for (int cnt = total ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()!=OP_BUY || OrderType()!=OP_SELL))
{
OrderDelete(OrderTicket());
}
}
return(0);
}
int CloseOrders(int Magic)
{
int total = OrdersTotal()-1;
for (int cnt = total ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
هذا الكود هو عبارة عن اكسبيرت يضع اوامر معلقة (شراء وقف وبيع وقف ) فوق الهاى لشمعة الدايلى وتحت اللو لشمعة الدايلى بعدد step من النقاط . وعند تفعيل امر يقوم بالغاء الأمر المعاكس . واذا لم ينفذا الأثنان فيقوم الأكسبيرت بحذفهما فى بداية اليوم التالى واعطاء اوامر جديدة
اما عن الكود المسئول عن تعرف الأكسبيرت بهاى ولو شمعة الدايلى وعملية الشراء والبيع هو
كود PHP:double Dayhigh=iHigh(Symbol(),PERIOD_D1,1);
double Daylow=iLow(Symbol(),PERIOD_D1,1);
double BuyPrice=Dayhigh+Step*Point;
double BuyTP=BuyPrice+Takeprofit*Point;
double BuySL=BuyPrice-Stoploss*Point;
double SellPrice=Daylow-Step*Point;
double SellTP=SellPrice-Takeprofit*Point;
double SellSL=SellPrice+Stoploss*Point;
OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyPrice,3,BuySL,BuyTP,"",Magicnumber,0,Green);
OrderSend(Symbol(),OP_SELLSTOP,Lots,SellPrice,3,SellSL,SellTP,"",Magicnumber,0,Red);
كود PHP:double Dayhigh=iHigh(Symbol(),PERIOD_D1,1);
double Daylow=iLow(Symbol(),PERIOD_D1,1);
كود PHP:double BuyPrice=Dayhigh+Step*Point;
كود PHP:extern int Step=20;
كود PHP:double BuyTP=BuyPrice+Takeprofit*Point;
كود PHP:extern int Takeprofit=50;
الآن وبعد ان فهمنا ...نريد اكسبيرت يعمل امر سيل ستوب وامر باى ستوب على بعد 50 نقطة من الأغلاق اليومى :
سيكون كالتالى :
كود PHP:double Dayclose=iClose(Symbol(),PERIOD_D1,1);
double BuyPrice=Dayclose+Step*Point;
double BuyTP=BuyPrice+Takeprofit*Point;
double BuySL=BuyPrice-Stoploss*Point;
double SellPrice=Dayclose-Step*Point;
double SellTP=SellPrice-Takeprofit*Point;
double SellSL=SellPrice+Stoploss*Point;
ماذا لو اردت ان اضع امر البيع على بعد 100 نقطة وامر الشراء على بعد 50 نقطة من سعر الأغلاق اليومى :
اذن ساضع step1 للشراء و step2 2 للبيع ليكون الكود
كود PHP:double Dayclose=iClose(Symbol(),PERIOD_D1,1);
double BuyPrice=Dayclose+Step1*Point;
double BuyTP=BuyPrice+Takeprofit*Point;
double BuySL=BuyPrice-Stoploss*Point;
double SellPrice=Dayclose-Step2*Point;
double SellTP=SellPrice-Takeprofit*Point;
double SellSL=SellPrice+Stoploss*Point;
كود PHP:extern int Step1=50;
extern int Step2=100;
يقوم بوضع اوامر وقف معلقة عند الخطين . فسيكون الكود كالتالى :
كود PHP:double DayClose=iClose(Symbol(),PERIOD_D1,1);
double Dayhigh=iHigh(Symbol(), PERIOD_D1, 1);
double Daylow=iLow(Symbol(), PERIOD_D1, 1);
double pivot=NormalizeDouble((Dayhigh + Daylow + DayClose) / 3.0, Digits);
double R3=Dayhigh+2.0*(pivot-Daylow);
double S3=Daylow-2.0*(Dayhigh-pivot);
double BuyPrice=R3;
double BuyTP=BuyPrice+Takeprofit*Point;
double BuySL=BuyPrice-Stoploss*Point;
double SellPrice=S3;
double SellTP=SellPrice-Takeprofit*Point;
double SellSL=SellPrice+Stoploss*Point;
طب عايزين نبيع من عند خط البايفوت العلوى ونشترى من السفلى ..يبقى هنعمل سيل ليميت وباى ليميت وتكون كالآت :
كود PHP:double DayClose=iClose(Symbol(),PERIOD_D1,1);
double Dayhigh=iHigh(Symbol(), PERIOD_D1, 1);
double Daylow=iLow(Symbol(), PERIOD_D1, 1);
double pivot=NormalizeDouble((Dayhigh + Daylow + DayClose) / 3.0, Digits);
double R3=Dayhigh+2.0*(pivot-Daylow);
double S3=Daylow-2.0*(Dayhigh-pivot);
double BuyPrice=S3;
double BuyTP=BuyPrice+Takeprofit*Point;
double BuySL=BuyPrice-Stoploss*Point;
double SellPrice=R3;
double SellTP=SellPrice-Takeprofit*Point;
double SellSL=SellPrice+Stoploss*Point;
OrderSend(Symbol(),OP_BUYLIMIT,Lots,BuyPrice,3,BuySL,BuyTP,"",Magicnumber,0,Green);
OrderSend(Symbol(),OP_SELLLIMIT,Lots,SellPrice,3,SellSL,SellTP,"",Magicnumber,0,Green);
المواضيع المتشابهه
-
اصنع اكسبيرت بنفسك Forex EA Generator
By ecash in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 20آخر مشاركة: 14-06-2016, 01:26 AM -
░▒▓█ اصنع لكتابك علبة حافظة بنفسك █▓▒░
By عبدالكريم in forum استراحة اعضاء المتداول العربيمشاركات: 0آخر مشاركة: 09-08-2010, 04:23 PM -
كيف اصنع مؤشري الخاص
By game over in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 1آخر مشاركة: 28-07-2008, 11:40 PM -
اصنع مؤشرك (ورشة عمل)
By ahmed hanafy in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادنمشاركات: 411آخر مشاركة: 01-04-2008, 01:07 PM -
كيف يمكنني ان اصنع اكسبيرت
By علاءالدين in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادنمشاركات: 5آخر مشاركة: 23-11-2007, 08:13 PM