اف اكس ارابيا..الموقع الرائد فى تعليم فوركس 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)

م. عبدالرحمن وردة 19-04-2013 08:57 PM

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

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

سنستخدم الدالة التالية خارج الدالة ستارت

[PHP]
double pofet_HISTORY(){
double pr=0;
for(int p=0;p<OrdersHistoryTotal();p++){
OrderSelect(p,SELECT_BY_POS,MODE_HISTORY);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
pr=OrderProfit();
}
return(pr);
}
[/PHP]

سنكتب داخل الدالة ستارت الامر

[PHP]
Comment(pofet_HISTORY());
[/PHP]

يضهر لنا هل ربح او خسارة الصفقة الماضية

كيف اعرف ربح او خسارة

اذا مانت النتيجة موجبة فهو ربح ان كانت سالبة فهو خسارة

اقتباس:

المشاركة الأصلية كتبت بواسطة MOVING_AVERAGE (المشاركة 498466)
ايقاف البرنامج

اولا لكي نحصل علي الرصيد نستخدم التالي

[PHP]
AccountBalance()
[/PHP]

لكي نتحكم في عمل الاكسبريت اعتماد علي الرصيد

نضع من شروط فتح الصفقات

[PHP]
if(AccountBalance()>50)
[/PHP]

ألف شكر أخي "موفنج افرج" , أجبت فأحسنت :)

abu ayoub 21-04-2013 09:18 PM

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

أتابع معكم ان شاء الله، أنا جديد في هذا المجال رغم أن عملي كمبرمج برامج إدارية. بدأت منذ اسبوع تعلم فوركس واعجبني كثير هذا الموقع.


MOVING_AVERAGE 22-04-2013 01:42 PM

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

المشاركة الأصلية كتبت بواسطة abu ayoub (المشاركة 499881)
السلام عليكم ورحمة الله وبركاته

أتابع معكم ان شاء الله، أنا جديد في هذا المجال رغم أن عملي كمبرمج برامج إدارية. بدأت منذ اسبوع تعلم فوركس واعجبني كثير هذا الموقع.


بالتوفيق لك اخي

وستجد هذه اللغة في غاية البساطة ان كنت اصلا مبرمج بلغة اخري

ولا تتردد في طرح اي استفسار

هامور الصغير 23-04-2013 09:39 PM

رد: دورة تعليم برمجة الاكسبريت
 
السلام عليكم ورحمة الله وبركاته
ماهو الفائده منه/ هل يتم الاعتماد عليه ؟

imaddine 24-04-2013 02:03 AM

رد: دورة تعليم برمجة الاكسبريت
 
استاذ موفنج والله ممكن مساعدة في طريقة اضافت المضاعفات
فقد قمت ببرمجت اكسبيرت على رينكو يعمل على نفس
طريقة التي برمجت بها اكسبيرت الاخ بدوي اي انه يفتح صفقة
ولا يغلقها لا عند اغلاق شمعة عكسية يغلقها ويدخل مع اتجاه
الشمعة الجديدة وبالنسبة للاضافة ارده ان لا يغلق الصفقة الخاسرة
في الاشارة العكسية بل يضاعف اللوت +1 فقط اي 1 2 3 4 5 6 7
حتى يخرج من التذبذب
بمعنى انه لو كانت شمعة عكسية يراقب الصفقة لو كانت رابحة
يغلق الصفقة ويبدا من جديد لكن لو كانت خاسرة يحافظ عليها
ويفتح صفقة جديدة عكسية مثلا لوت البداية 0.10 اذا الصفقة الجديدة
0.20 ويبقى على هذا حتى تظهر اشارة عكسية ويكون مجموع الصفقات
موجب يغلق جميع الصفقات ويبدا من جديد

MOVING_AVERAGE 24-04-2013 12:04 PM

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

المشاركة الأصلية كتبت بواسطة imaddine (المشاركة 501001)
استاذ موفنج والله ممكن مساعدة في طريقة اضافت المضاعفات
فقد قمت ببرمجت اكسبيرت على رينكو يعمل على نفس
طريقة التي برمجت بها اكسبيرت الاخ بدوي اي انه يفتح صفقة
ولا يغلقها لا عند اغلاق شمعة عكسية يغلقها ويدخل مع اتجاه
الشمعة الجديدة وبالنسبة للاضافة ارده ان لا يغلق الصفقة الخاسرة
في الاشارة العكسية بل يضاعف اللوت +1 فقط اي 1 2 3 4 5 6 7
حتى يخرج من التذبذب
بمعنى انه لو كانت شمعة عكسية يراقب الصفقة لو كانت رابحة
يغلق الصفقة ويبدا من جديد لكن لو كانت خاسرة يحافظ عليها
ويفتح صفقة جديدة عكسية مثلا لوت البداية 0.10 اذا الصفقة الجديدة
0.20 ويبقى على هذا حتى تظهر اشارة عكسية ويكون مجموع الصفقات
موجب يغلق جميع الصفقات ويبدا من جديد

اولا اخي لكي تفتح صفقة بلوت عادي تحتاج الي شروط

وصفقة بلوت مضاعة تحتاج الي شروط مغايرة

ماهي الشروط التي تفتح علي اساسها اللوت المضاعف لكي لجيبك

لان الشروط هي الاهم في البرمجة

imaddine 24-04-2013 03:05 PM

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

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

وصفقة بلوت مضاعة تحتاج الي شروط مغايرة

ماهي الشروط التي تفتح علي اساسها اللوت المضاعف لكي لجيبك

لان الشروط هي الاهم في البرمجة

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

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

imaddine 25-04-2013 12:55 AM

رد: دورة تعليم برمجة الاكسبريت
 
استاذ موفنج اعلم انك لا تمتلك الكثير من
الوقت نظرا لكثرت الطلبات فالله يكون في عونك
لكن لو سمحت ممكن ان تعدل على هذا الكود
وساقوم باطلاع عليه لدراسته من جديد لو سمحت
[PHP]double TP,SL;

if(TrailingStop>0)MoveTrailingStop();
//////////////////////////////////////////////////
double openprice,lots,newLot;int s;
if(UseMultiplier){
for(s=0;s<OrdersTotal();s++){
OrderSelect(s,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber&&OrderType()==OP_BUY){
openprice=OrderOpenPrice();lots=OrderLots();
}
}{

هنا قمت بجعل المضاعف + وكمتغير خاجي جعلت Multiplier =1
حتى تكون المضاعفات 1 2 3 4 5 6
newLot=Multiplier+lots;
if(Ask<=openprice-Step*point&&orderstotal()>=1){
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*poi nt;}

OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(A sk,digits),3,0,TP," ",MagicNumber,0,Blue);

}
}
for(s=0;s<OrdersTotal();s++){
OrderSelect(s,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber&&OrderType()==OP_SELL){
openprice=OrderOpenPrice(); lots=OrderLots();
}
}{

newLot=Multiplier+lots;
if(Bid>=openprice+Step*point&&orderstotal()>=1){
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
OrderSend(Symbol(),OP_SELL,newLot,NormalizeDouble( Bid,digits),3,0,TP,"",MagicNumber,0,Red);

}
}
}


//////////////////////////////////////////////////
static datetime NewBar;
if(orderstotal()==0)

{
// close orders
}

double Cl1=iClose(0,0,1);
double Cl2=iClose(0,0,2);

//////////////////////////////////////////////////

if(NewBar<Time[0])

if(Cl2<Cl1)
{CloseSellOrders();}

if(Cl2>Cl1)
{CloseBuyOrders();}

if(profit()>=ProfitTarget){
while(orderstotal()>0){CloseSellOrders();CloseBuyO rders();}
هنا المشكلة الاولى كيف اجعله يحافظ على الصفقات الخاسرة
دون اغلاقها
}
{
// close orders
}
//////////////////////////////////////////////////

if(Cl2<Cl1) {
if(orderstotal()<MaxTrades&&Time0!=Time[0])
{
{
// open orders
Time0=Time[0];
}
//Buy
if(TakeProfit==0){TP=0;}
else{TP=Ask+TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Ask-StopLoss*point;}
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"",Magi cNumber,0,Blue);
}
}
//////////////////////////////////////////////////


if(Cl2>Cl1){
if(orderstotal()<MaxTrades&&Time0!=Time[0])
{
{
// open orders
Time0=Time[0];
}
//Sell
if(TakeProfit==0){TP=0;}
else{TP=Bid-TakeProfit*point;}
if(StopLoss==0){SL=0;}
else{SL=Bid+StopLoss*point;}
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"",Mag icNumber,0,Red);

}
}

return(0);
}
//+------------------------------------------------------------------+

void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}
}

void CloseSellOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
}
void MoveTrailingStop()
{

for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOp enPrice()+TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)<Normal izeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blu e);

}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingSte p*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))
{
if((NormalizeDouble(OrderStopLoss(),digits)>(Norma lizeDouble(Ask+TrailingStop*point,digits)))||(Orde rStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(Ask+TrailingStop*point,digits),OrderTakeP rofit(),0,Red);

}
}
}
}
}
}

اعتمدت هنا على دالة اغلاق على ربح معين لكن لو امكن
جعل الطريقة كما شرحتها يخرج عند اشارة عكسية مهما كان
الربح كبير او صغير او حتى على نقطة التعادل
double profit(){
double c;
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Ma gicNumber){
c=c+OrderProfit();
}
}
return(c);
}
[/PHP]

طبعا ان يحافظ على الصفقات الخاسرة ويضاعف اللوت
1 2 3 4 5 اي كل مرة +1 وعندما تكون الاشارة عكسية
والمحصلة ربح يغلق كل الصفقات ويعيد من جديد
وبارك الله فيك

abou fares 01-05-2013 05:49 PM

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

abou fares 04-05-2013 03:11 PM

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

احمد ابو القاسم 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

MOVING_AVERAGE 18-05-2013 12:44 AM

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

المشاركة الأصلية كتبت بواسطة misho2007 (المشاركة 508316)
بصراحه شرح اكتر من رائع وبسيط جدا

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

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

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

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

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

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

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


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

بالطبع اخي

لو انك مبرمج او لك نضرة عن البرمجة

فملفات dll ممكن تعمل اي دوال ممكن تتخيلها


الساعة الآن 05:39 PM

Powered by vBulletin® Copyright ©2000 - 2025

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