اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex

اف اكس ارابيا..الموقع الرائد فى تعليم فوركس Forex (https://fx-arabia.com/vb/index.php)
-   منتدى المؤشرات و الاكسبيرتات (https://fx-arabia.com/vb/forumdisplay.php?f=6)
-   -   دورة تعليم برمجة الاكسبريت (https://fx-arabia.com/vb/showthread.php?t=29378)

احمد ابو القاسم 05-05-2013 10:59 PM

رد: دورة تعليم برمجة الاكسبريت
 
متابع معك وجزاك الله خيرا

MOVING_AVERAGE 06-05-2013 12:11 PM

رد: دورة تعليم برمجة الاكسبريت
 
اقتباس:

المشاركة الأصلية كتبت بواسطة imaddine (المشاركة 501194)
الشروط هي نفس الشروط التي ذكرتها ان يقوم
بفتح صفقة بعد شمعة معاكسة وقد ارفقت لك مثال
لتوضيح الفكرة اكثر داخل المربع المرسوم
بعد اغلاق شمعة نازلة يخرج من البيع ويدخل شراء
ونفرض ان لوت 0.10 ما حصل ان الشمعة التالية اغلقت
نازلة اي صفقة خاسرة هنا لا يقوم باغلاق الصفقة الخاسرة
بل يتركها مفتوحة ويدخل بصفقة جديدة بيع بلوت 0.20
الشمعة التي بعدها صاعدة اي مجموع الصفقتين خاسر
لا يغلقهما ويدخل بصفقة ثالث شراء بلوت 0.3
بمعنى دالة تراقب الصفقات المفتوحة لو كانت رابحة
تغلق كل الصفقات في الانعاكس ولو كانت سالبة
تحافظ وتفتح صفقة جديدة +1 عن اخر لوت
http://www.fx-arabia.com/vb/uploaded...1366805117.png

للاسف انا لم اجد موضوع برمجي يتكلم على طريقة
البرمجة بالمضاعفات

ساجيبك بالشرح الممل مع لكود ان شاء الله

MOVING_AVERAGE 06-05-2013 12:13 PM

رد: دورة تعليم برمجة الاكسبريت
 
اقتباس:

المشاركة الأصلية كتبت بواسطة abou fares (المشاركة 504069)
سؤال للاساتذ موفينج لدي اكسبيرت احاول ان اتعلم البرمجة من خلاله ولكن لدي مشكلة لم اجد لها حل وارجوا منك اعطائي المعادلة اللازمة : المشكلة هي عند تحقق شروط الدخول للصفقة شراء او بيع الاكسبيرت يفتح صفقة وعند وصول الصفقة للهدف لا يتوقف الاكسبيرت عن فتح الصفقات لان مازالت جميع الشروط متحققة للبيع او للشراء ارجوا منكم المساعدة وشكرا .

تمام سارفق لك مثال مع عدم الشراء في حالة تحققت الشروط

imaddine 06-05-2013 04:18 PM

رد: دورة تعليم برمجة الاكسبريت
 
اقتباس:

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 505882)
ساجيبك بالشرح الممل مع لكود ان شاء الله

الف شكر استاذ موفنج
واهلا بعودتك معنا

ayoob 07-05-2013 05:50 AM

رد: دورة تعليم برمجة الاكسبريت
 
1 مرفق
اقتباس:

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 497298)
تفضل تعديل فتح الصفقات

[PHP]
//+------------------------------------------------------------------+
//| Stok_scalper_EA.mq4 |
//| Copyright 2013, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"


extern int MagicNumber=1011;
extern double lStopLoss = 100;
extern double sStopLoss = 100;
extern double lTakeProfit = 10;
extern double sTakeProfit = 10;


extern string jj="------";
extern int StopLoss=100;
extern int TakeProfit=10;


extern color clOpenBuy = Blue;
extern color clCloseBuy = Aqua;
extern color clOpenSell = Red;
extern color clCloseSell = Violet;
extern color clModiBuy = Blue;
extern color clModiSell = Red;
extern string Name_Expert = "Stok_scalper EA";
extern int Slippage = 0;
extern bool UseHourTrade = True;
extern int FromHourTrade = 0;
extern int ToHourTrade = 23;
extern bool UseSound = True;
extern string NameFileSound = "alert.wav";
extern double Lots = 2;
int digits,Q;
double point;


int init()
{


if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits==2)
{
point=0.01;
digits=2;
}
if(Digits==4)
{
point=0.0001;
digits=4;
}
if(Digits==3)
{
point=0.01;
digits=3;
}
if(Digits==5)
{
point=0.0001;
digits=5;
}
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
int start()
{

if (UseHourTrade){
if (!(Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {
Comment("Time for trade has not come else!");
return(0);
} else Comment("");
}else Comment("");
if(Bars<100){
Print("bars less than 100");
return(0);
}
if(lStopLoss<10){
Print("StopLoss less than 10");
return(0);
}
if(lTakeProfit<10){
Print("TakeProfit less than 10");
return(0);
}
if(sStopLoss<10){
Print("StopLoss less than 10");
return(0);
}
if(sTakeProfit<10){
Print("TakeProfit less than 10");
return(0);
}



double diStochastic0=iStochastic(NULL,60,5,3,3,MODE_EMA,P RICE_CLOSE,MODE_MAIN,3);
double d1=(15);
double diStochastic2=iStochastic(NULL,60,5,3,3,MODE_EMA,P RICE_CLOSE,MODE_MAIN,3);
double d3=(85);

if(AccountFreeMargin()<(1000*Lots)){
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (!ExistPositions()){

if ((diStochastic0<d1)){
open(OP_BUY,Lots,Ask,TakeProfit,StopLoss) ;
return(0);
}

if ((diStochastic2>d3)){
open(OP_SELL,Lots,Bid,TakeProfit,StopLoss) ;
return(0);
}
}
return (0);
}

bool ExistPositions() {
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
return(True);
}
}
}
return(false);
}

/*
void ModifyStopLoss(double ldStopLoss) {
bool fm;
fm = OrderModify(OrderTicket(),OrderOpenPrice(),ldStopL oss,OrderTakeProfit(),0,CLR_NONE);
if (fm && UseSound) PlaySound(NameFileSound);
}
*/

void OpenBuy() {
double ldLot, ldStop, ldTake;
string lsComm;
ldLot = GetSizeLot();
ldStop = GetStopLossBuy();
ldTake = GetTakeProfitBuy();
lsComm = GetCommentForOrder();
OrderSend(Symbol(),OP_BUY,ldLot,Ask,Slippage,ldSto p,ldTake,lsComm,MagicNumber,0,clOpenBuy);
if (UseSound) PlaySound(NameFileSound);
}
void OpenSell() {
double ldLot, ldStop, ldTake;
string lsComm;

ldLot = GetSizeLot();
ldStop = GetStopLossSell();
ldTake = GetTakeProfitSell();
lsComm = GetCommentForOrder();
OrderSend(Symbol(),OP_SELL,ldLot,Bid,Slippage,ldSt op,ldTake,lsComm,MagicNumber,0,clOpenSell);
if (UseSound) PlaySound(NameFileSound);
}
string GetCommentForOrder() { return(Name_Expert); }
double GetSizeLot() { return(Lots); }
double GetStopLossBuy() { return (Bid-lStopLoss*Point);}
double GetStopLossSell() { return(Ask+sStopLoss*Point); }
double GetTakeProfitBuy() { return(Ask+lTakeProfit*Point); }
double GetTakeProfitSell() { return(Bid-sTakeProfit*Point); }

//+------------------------------------------------------------------+



int open(int ty,double lot,double prc,int pof,int sll)
{
double sl=0,tp=0;
color clr;
bool modi;
string T;double pr;
if(ty==OP_BUY || ty==OP_BUYSTOP || ty==OP_BUYLIMIT)
{
if(sll>0){sl=prc-(sll*point);}else{sl=0;}
if(pof>0){tp=prc+(pof*point);}else{tp=0;}
clr=Green;
T="Ask ";
pr=NormalizeDouble(Ask,Digits);
}
if(ty==OP_SELL || ty==OP_SELLSTOP || ty==OP_SELLLIMIT)
{
if(sll>0){sl=prc+(sll*point);}else{sl=0;}
if(pof>0){tp=prc-(pof*point);}else{tp=0;}
clr=Red;
T="Bid";
pr=NormalizeDouble(Bid,Digits);
}
int tik=OrderSend(Symbol()
,ty
,lot
,NormalizeDouble(prc,Digits)
,10
,0
,0
,""
,MagicNumber
,0
,clr);
string t;
if(ty==OP_BUY)t="BUY";if(ty==OP_SELL)t="SELL";if(t y==OP_BUYSTOP)t="BUY STOP";if(ty==OP_SELLSTOP)t="SELL STOP";if(ty==OP_BUYLIMIT)t="BUY LIMIT";if(ty==OP_SELLLIMIT)t="SELL LIMIT";
if(tik>0)
{
if(tp>0 || sl>0)modi=OrderModify(tik,prc,NormalizeDouble(sl,D igits),NormalizeDouble(tp,Digits),0,CLR_NONE); else modi=true;
if(!modi){Print("Modify Err#= ",GetLastError()," ",Symbol()," ",Period()," Open Price= ",DoubleToStr(prc,Digits)," SL= ",DoubleToStr(sl,Digits)," Tp= ",DoubleToStr(tp,Digits));}
Print("Order Opened successfully " ,"Type ",t," LotSize ",lot," Price ",DoubleToStr(prc,Digits)," TP ",DoubleToStr(tp,Digits)," SL ",DoubleToStr(sl,Digits));
}
else
{
Print("OrderSend failed with error #",GetLastError(), " Type ",t," LotSize= ",lot," ",T,"Now= ",DoubleToStr(pr,Digits)," Price= ",DoubleToStr(prc,Digits)," TP= ",DoubleToStr(tp,Digits)," SL= ",DoubleToStr(sl,Digits)," Spread= ",MarketInfo(Symbol(),MODE_SPREAD));
}
//////
return(tik);

}
[/PHP]

تمام اخي مصطفي الان اريد كيفية اضافة متغيرات خارجية لي مستويات البيع والشراء لي الاستوكستك ان قمت بي اضافة اعدادت الاستوكستك ولكن لم اعرف كيفية اضافة متغيرات خارجية لي مستويات الاستوكستك مثلا اريده يشتري من مستوى 25 عشرين وليس 15 او البيع من 70 وليس 85 لانه الاعدادت دخل الاكسبيرات بيع من 85 وشراء من 15 ياريت يتم شراح الكود حتي اقوم بي الاضافة وشكرا
http://www.fx-arabia.com/vb/images/icons/icon7.gif

MOVING_AVERAGE 08-05-2013 01:10 AM

رد: دورة تعليم برمجة الاكسبريت
 
اقتباس:

المشاركة الأصلية كتبت بواسطة ayoob (المشاركة 506301)
تمام اخي مصطفي الان اريد كيفية اضافة متغيرات خارجية لي مستويات البيع والشراء لي الاستوكستك ان قمت بي اضافة اعدادت الاستوكستك ولكن لم اعرف كيفية اضافة متغيرات خارجية لي مستويات الاستوكستك مثلا اريده يشتري من مستوى 25 عشرين وليس 15 او البيع من 70 وليس 85 لانه الاعدادت دخل الاكسبيرات بيع من 85 وشراء من 15 ياريت يتم شراح الكود حتي اقوم بي الاضافة وشكرا
http://www.fx-arabia.com/vb/images/icons/icon7.gif

[PHP]
double diStochastic0=iStochastic(NULL,60,5,3,3,MODE_EMA,P RICE_CLOSE,MODE_MAIN,3);
double d1=(15);
double diStochastic2=iStochastic(NULL,60,5,3,3,MODE_EMA,P RICE_CLOSE,MODE_MAIN,3);
double d3=(85);
[/PHP]

لاحظ اخي هنا المستويات التي يشتري منها الاكسبريت

d1=15
غيره مثل ما تريد

و

d2=85

غيره مثل ما تريد

ayoob 08-05-2013 05:07 AM

رد: دورة تعليم برمجة الاكسبريت
 
اقتباس:

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 506779)
[PHP]
double diStochastic0=iStochastic(NULL,60,5,3,3,MODE_EMA,P RICE_CLOSE,MODE_MAIN,3);
double d1=(15);
double diStochastic2=iStochastic(NULL,60,5,3,3,MODE_EMA,P RICE_CLOSE,MODE_MAIN,3);
double d3=(85);
[/PHP]لاحظ اخي هنا المستويات التي يشتري منها الاكسبريت

d1=15
غيره مثل ما تريد

و

d2=85

غيره مثل ما تريد

اهلا اخي مصطفي قمت بي عملهم كمتغير خارجي وغيرت القيم الي 25 و 70 ولم ينفد الشراء او البيع من المستويات المطلوبة وينفد من المستويات الافترضية التي هو علية:1 (13):
[PHP]extern double d1=15;
extern double d3=85;[/PHP]

misho2007 11-05-2013 03:45 AM

رد: دورة تعليم برمجة الاكسبريت
 
بصراحه شرح اكتر من رائع وبسيط جدا

وانا كان ليا استفسار

دلوقتى اللى انا فهمته ان الاكسبرت عشان يشتغل لازم احطله كل الشروط اللى هيشتغل بها

طيب هل ينفع ياخد اوامر للبيع والشراء من شئ خارجى؟ الايميل مثلا

يعنى على سبيل المثال هنفترض بيجيلى ايميلات توصيات

هل يمكن عمل اكسبرت يقوم بقراية معلومات الاوامر من الايميل

اعتقد ان الاكسبرت نفسه مايقدرش يروح على الميل ويقرا منه بس هل ممكن وجود برنامج وسيط او اى شئ وسيط يربط مابين الايميل ويخلى الاكسبرت يعرف يقرأ الداتا دى

يعنى انا عارف ان الاكسبرت يقدر يقرا من ملفات ال DLL هل لو تم حفظ معلومات البيع والشراء من الايميل بشكل ما وحفظها فى ملف DLL هل من الممكن ان يقوم الاكسبرت بقرائتها من ملف ال DLL ؟؟


فى انتظار ردك الغالى

tamer_taher22 11-05-2013 02:58 PM

رد: دورة تعليم برمجة الاكسبريت
 
اقتباس:

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 460188)
يسعدنا ان نقدم لكم دورتنا 2

وهي دورة برمجة الاكسبريت

ان شاء الله سنترجم المؤشرات التي نعمل عليها في دورة المؤشرات الي اكسبريتات

من يريد ان يتابعنا في دورة الاكسبريتات لابد ان يفهم الية عمل المؤشر الذي سنحوله مع بعض الي اكسبريت

ان شاء الله سنبدء بابسط الامور وصول الي عمل اكسبريت




السلام عليكم

الحقيقة انا بشكرك على تقديم المساعدة للجميع و باخلاص شديد

بالنسبة لى انا مبرمج سى شارب و قررت استفيد من خبرتك فى برمجة الاكسبريتات و اللى واضح انك فعلا متمكن ربنا يزيدك علما

انا بحاول اجمع دروسك بالترتيب بس بصراحة مش قادر لاسباب كتيرة

1- طبعا هناك اصدقاء لديهم اكسبريتات تحتاج الى تعديلات حتى يستفيدوا منها و لكن هذا بصراحة يشتت التسلسل للدروس و بالتالى الواحد بيفقد التركيز فى اوقات كثيرة
2- هذا الموضوع تعليمى مشكورا منك و ليس الزاما بينما انا و غيرى نريد ان نتعلم كيف نصطاد السمك لذلك اريد منك لو تكرمت تقوم بشرح اكسبريت بسيط يقوم بعملية الشراء و البيع المباشر بدون اى مؤشرات حتى نتعلم الاساسيات و نتأكد من تنصيبه على الشارت و تفعيله بنجاح
3- نقوم باستخدام بعض المؤشرات البسيطة مثلا عند اغلاقات الشمعة او افتتاح الاسواق او المؤشرات التقليدية
4- اتمنى ان يكون هناك واجبات و الاسئلة تكون فى المرحلة اللى احنا فيها الى ان تصل بنا الى مستوى قريب منك
5- فى حالة مثلا هناك دالات جاهزة مثل الارقام العشرية او عدد الصفقات المفتوحة يمكننا ان نستأذنك بارفاقها لنا
6- ارجو منك لو تكرمت ترتيب الدورس مثل الدرس الاول و الثانى و هكذا
7- اعذرنى انى جئت متأخر و لكنى كنت ابحث عن مساعد مثلك

MOVING_AVERAGE 18-05-2013 12:41 AM

رد: دورة تعليم برمجة الاكسبريت
 
اقتباس:

المشاركة الأصلية كتبت بواسطة tamer_taher22 (المشاركة 508363)
السلام عليكم

الحقيقة انا بشكرك على تقديم المساعدة للجميع و باخلاص شديد

بالنسبة لى انا مبرمج سى شارب و قررت استفيد من خبرتك فى برمجة الاكسبريتات و اللى واضح انك فعلا متمكن ربنا يزيدك علما

انا بحاول اجمع دروسك بالترتيب بس بصراحة مش قادر لاسباب كتيرة

1- طبعا هناك اصدقاء لديهم اكسبريتات تحتاج الى تعديلات حتى يستفيدوا منها و لكن هذا بصراحة يشتت التسلسل للدروس و بالتالى الواحد بيفقد التركيز فى اوقات كثيرة
2- هذا الموضوع تعليمى مشكورا منك و ليس الزاما بينما انا و غيرى نريد ان نتعلم كيف نصطاد السمك لذلك اريد منك لو تكرمت تقوم بشرح اكسبريت بسيط يقوم بعملية الشراء و البيع المباشر بدون اى مؤشرات حتى نتعلم الاساسيات و نتأكد من تنصيبه على الشارت و تفعيله بنجاح
3- نقوم باستخدام بعض المؤشرات البسيطة مثلا عند اغلاقات الشمعة او افتتاح الاسواق او المؤشرات التقليدية
4- اتمنى ان يكون هناك واجبات و الاسئلة تكون فى المرحلة اللى احنا فيها الى ان تصل بنا الى مستوى قريب منك
5- فى حالة مثلا هناك دالات جاهزة مثل الارقام العشرية او عدد الصفقات المفتوحة يمكننا ان نستأذنك بارفاقها لنا
6- ارجو منك لو تكرمت ترتيب الدورس مثل الدرس الاول و الثانى و هكذا
7- اعذرنى انى جئت متأخر و لكنى كنت ابحث عن مساعد مثلك

اهلا بك اخي

بالنسبة لك مثلا ستجد ان اللغة بسيطة جدا لانها اساسا مشتقة من لغة c

نفس الحلقات التكرارية

نفس المتغيرات تقريبا

ممكن ان تدمج لغة c# مع mql4 لعمل مؤشر او اكسبريت قوي

وذلك عن طريق dll


الساعة الآن 05:19 AM

Powered by vBulletin® Copyright ©2000 - 2025

جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com