FX-Arabia

جديد المواضيع











الملاحظات

منتدى المؤشرات و الاكسبيرتات تعليم برمجة الاكسبيرت ، اكسبيرت مجانى ، برمجة مؤشرات ، مؤشر ، تصميم اكسبيرت مجانا ، اكسبيرتات جديدة ، مؤشرات جديدة ، كل ما يتعلق بالتحليل و الخاص بالمؤشرات الفنية او الرقمية ، Expert advisor ، mql ، mql4 ، دورة برمجة ، برمجة اكسبيرت ، اكسبيرت رابح ، اكسبيرت جيد ، ادارة حسابات ، تداول الى ، ميتاتريدر ، تحميل منصة ، منصة تداول ، برمجة مؤشر ، مكتبة مؤشرات ، مؤشر جديد ، مؤشرات جديدة ، مؤشر حصرى ، احدث مؤشر .


لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

منتدى المؤشرات و الاكسبيرتات


إضافة رد
 
أدوات الموضوع
قديم 16-12-2012, 11:58 PM   المشاركة رقم: 21
الكاتب
nesma
عضو جديد

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12548
العمر: 33
المشاركات: 20
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
nesma غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

دي الدالة المسؤلة عن أختبار الشروط إذا كان العقد المفتوح شراءاً فيتم إلغاء أمر البيع المعلق


ده الكود قبل التعديل

[PHP]
void IfOrderExists12()
{
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() == 33)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists)
{
DeletePendingOrder10();

}
}

[/PHP] وده بعد التعديل
[PHP]

void IfOrderExists12()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists)
{
DeletePendingOrder10();

}
}

[/PHP]



انا غيرت MODE_TRADES إلى MODE_HISTORY
وضيفت الشرط ده
OrderProfit() > 0
أي أن الربح يكون أكبر من صفر

وهعمل نفس الكلام بالنسبة للدالة الخاصة بأختبار الشروط إذا كان العقد المفتوح بيعاً

تمام كده ولا إيه؟؟؟



عرض البوم صور nesma  
رد مع اقتباس
  #21  
قديم 16-12-2012, 11:58 PM
nesma nesma غير متواجد حالياً
عضو جديد
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

دي الدالة المسؤلة عن أختبار الشروط إذا كان العقد المفتوح شراءاً فيتم إلغاء أمر البيع المعلق


ده الكود قبل التعديل

[PHP]
void IfOrderExists12()
{
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() == 33)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists)
{
DeletePendingOrder10();

}
}

[/PHP] وده بعد التعديل
[PHP]

void IfOrderExists12()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists)
{
DeletePendingOrder10();

}
}

[/PHP]



انا غيرت MODE_TRADES إلى MODE_HISTORY
وضيفت الشرط ده
OrderProfit() > 0
أي أن الربح يكون أكبر من صفر

وهعمل نفس الكلام بالنسبة للدالة الخاصة بأختبار الشروط إذا كان العقد المفتوح بيعاً

تمام كده ولا إيه؟؟؟




رد مع اقتباس
قديم 17-12-2012, 12:41 AM   المشاركة رقم: 22
الكاتب
jmeel
عضو نشيط
الصورة الرمزية jmeel

البيانات
تاريخ التسجيل: Jul 2012
رقم العضوية: 10231
المشاركات: 401
بمعدل : 0.09 يوميا

الإتصالات
الحالة:
jmeel غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

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



التوقيع

* Don't work harder, work smarter *

عرض البوم صور jmeel  
رد مع اقتباس
  #22  
قديم 17-12-2012, 12:41 AM
jmeel jmeel غير متواجد حالياً
عضو نشيط
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

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




رد مع اقتباس
قديم 17-12-2012, 01:19 AM   المشاركة رقم: 23
الكاتب
nesma
عضو جديد

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12548
العمر: 33
المشاركات: 20
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
nesma غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

المشاركة الأصلية كتبت بواسطة jmeel نقره لعرض الصورة في صفحة مستقلة
تمام وبعد انتهاء التعديلات جربي وشوفي النتيجة
تم التعديل والتجربه ووصلت الصفقة للهدف لكن للأسف لم يتم إلغاء الامر المعلق

ماذا ينقص الكود؟؟



عرض البوم صور nesma  
رد مع اقتباس
  #23  
قديم 17-12-2012, 01:19 AM
nesma nesma غير متواجد حالياً
عضو جديد
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

المشاركة الأصلية كتبت بواسطة jmeel نقره لعرض الصورة في صفحة مستقلة
تمام وبعد انتهاء التعديلات جربي وشوفي النتيجة
تم التعديل والتجربه ووصلت الصفقة للهدف لكن للأسف لم يتم إلغاء الامر المعلق

ماذا ينقص الكود؟؟




رد مع اقتباس
قديم 17-12-2012, 02:49 AM   المشاركة رقم: 24
الكاتب
nesma
عضو جديد

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12548
العمر: 33
المشاركات: 20
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
nesma غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

هذا هو الكود بالكامل بعد التعديل


[PHP]


#property copyright " - jmeel24@yahoo.com "

#include <stdlib.mqh>
#include <WinUser32.mqh>

// exported variables

extern string A0=" ------- General Setting --------- ";
extern int Hour41 = 0;

extern double Volume_Lots = 0.1;
extern int MagicNo=4141;


extern string A2=" ------- B U Y Setting ------------ ";
extern int PriceOffset30 = 12;
extern int BuyTakeprofit30 = 10;
extern int BuyStoploss30 = 20;
int Expiration30 = 1440;


extern string A1=" ------- S E L L Setting ---------- ";
extern int PriceOffset31 = 10;
extern int SellTakeprofit31 = 10;
extern int SellStoploss31 = 20;
int Expiration31 = 1440;



// 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 Today41 = -1;
datetime BarTime25 = 0;
datetime BarTime29 = 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);
}

OnEveryTick43();

}

void OnEveryTick43()
{
if (true == false && false) PipValue = 10;
if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;

CustomCode45();
AtCertainTime41();
IfOrderExists12();
IfOrderExists5();

}

void CustomCode45()
{


}

void AtCertainTime41()
{
int datetime800 = TimeCurrent();
int hour0 = TimeHour(datetime800);
int minute0 = TimeMinute(datetime800);
if (DayOfWeek() != Today41 && hour0 == Hour41 )
{
Today41 = DayOfWeek();
IfOrderDoesNotExist24();
IfOrderDoesNotExist28();

}
}

void IfOrderDoesNotExist24()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
OncePerBar25();

}
}

void OncePerBar25()
{

if (BarTime25 < Time[0])
{
// we have a new bar opened
BarTime25 = Time[0]; // keep the new bar open time
SellPendingOrder31();

}
}

void SellPendingOrder31()
{
int expire = TimeCurrent() + 60 * Expiration31;
double price = NormalizeDouble(Open[0], NDigits) - PriceOffset31*PipValue*Point;
double SL = price + SellStoploss31*PipValue*Point;
if (SellStoploss31 == 0) SL = 0;
double TP = price - SellTakeprofit31*PipValue*Point;
if (SellTakeprofit31 == 0) TP = 0;
if (Expiration31 == 0) expire = 0;
int ticket = OrderSend(Symbol(), OP_SELLSTOP, Volume_Lots, price, 4, SL, TP, "My Expert", 33, expire, Red);
if (ticket == -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}

}

void IfOrderDoesNotExist28()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
OncePerBar29();

}
}

void OncePerBar29()
{

if (BarTime29 < Time[0])
{
// we have a new bar opened
BarTime29 = Time[0]; // keep the new bar open time
BuyPendingOrder30();

}
}

void BuyPendingOrder30()
{
int expire = TimeCurrent() + 60 * Expiration30;
double price = NormalizeDouble(Open[0], NDigits) + PriceOffset30*PipValue*Point;
double SL = price - BuyStoploss30*PipValue*Point;
if (BuyStoploss30 == 0) SL = 0;
double TP = price + BuyTakeprofit30*PipValue*Point;
if (BuyTakeprofit30 == 0) TP = 0;
if (Expiration30 == 0) expire = 0;
int ticket = OrderSend(Symbol(), OP_BUYSTOP, Volume_Lots, price, 4, SL, TP, "My Expert", 33, expire, Blue);
if (ticket == -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}

}

void IfOrderExists12()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists)
{
DeletePendingOrder10();

}
}

void DeletePendingOrder10()
{

for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33)
{
bool ret = OrderDelete(OrderTicket(), Red);

if (ret == false)
{
Print("OrderDelete() error - ", ErrorDescription(GetLastError()));
}
}
}

}

void IfOrderExists5()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists)
{
DeletePendingOrder9();

}
}

void DeletePendingOrder9()
{

for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33)
{
bool ret = OrderDelete(OrderTicket(), Red);

if (ret == false)
{
Print("OrderDelete() error - ", ErrorDescription(GetLastError()));
}
}
}

}



int deinit()
{
if (false) ObjectsDeleteAll();




}


[/PHP]



عرض البوم صور nesma  
رد مع اقتباس
  #24  
قديم 17-12-2012, 02:49 AM
nesma nesma غير متواجد حالياً
عضو جديد
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

هذا هو الكود بالكامل بعد التعديل


[PHP]


#property copyright " - jmeel24@yahoo.com "

#include <stdlib.mqh>
#include <WinUser32.mqh>

// exported variables

extern string A0=" ------- General Setting --------- ";
extern int Hour41 = 0;

extern double Volume_Lots = 0.1;
extern int MagicNo=4141;


extern string A2=" ------- B U Y Setting ------------ ";
extern int PriceOffset30 = 12;
extern int BuyTakeprofit30 = 10;
extern int BuyStoploss30 = 20;
int Expiration30 = 1440;


extern string A1=" ------- S E L L Setting ---------- ";
extern int PriceOffset31 = 10;
extern int SellTakeprofit31 = 10;
extern int SellStoploss31 = 20;
int Expiration31 = 1440;



// 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 Today41 = -1;
datetime BarTime25 = 0;
datetime BarTime29 = 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);
}

OnEveryTick43();

}

void OnEveryTick43()
{
if (true == false && false) PipValue = 10;
if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;

CustomCode45();
AtCertainTime41();
IfOrderExists12();
IfOrderExists5();

}

void CustomCode45()
{


}

void AtCertainTime41()
{
int datetime800 = TimeCurrent();
int hour0 = TimeHour(datetime800);
int minute0 = TimeMinute(datetime800);
if (DayOfWeek() != Today41 && hour0 == Hour41 )
{
Today41 = DayOfWeek();
IfOrderDoesNotExist24();
IfOrderDoesNotExist28();

}
}

void IfOrderDoesNotExist24()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
OncePerBar25();

}
}

void OncePerBar25()
{

if (BarTime25 < Time[0])
{
// we have a new bar opened
BarTime25 = Time[0]; // keep the new bar open time
SellPendingOrder31();

}
}

void SellPendingOrder31()
{
int expire = TimeCurrent() + 60 * Expiration31;
double price = NormalizeDouble(Open[0], NDigits) - PriceOffset31*PipValue*Point;
double SL = price + SellStoploss31*PipValue*Point;
if (SellStoploss31 == 0) SL = 0;
double TP = price - SellTakeprofit31*PipValue*Point;
if (SellTakeprofit31 == 0) TP = 0;
if (Expiration31 == 0) expire = 0;
int ticket = OrderSend(Symbol(), OP_SELLSTOP, Volume_Lots, price, 4, SL, TP, "My Expert", 33, expire, Red);
if (ticket == -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}

}

void IfOrderDoesNotExist28()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
OncePerBar29();

}
}

void OncePerBar29()
{

if (BarTime29 < Time[0])
{
// we have a new bar opened
BarTime29 = Time[0]; // keep the new bar open time
BuyPendingOrder30();

}
}

void BuyPendingOrder30()
{
int expire = TimeCurrent() + 60 * Expiration30;
double price = NormalizeDouble(Open[0], NDigits) + PriceOffset30*PipValue*Point;
double SL = price - BuyStoploss30*PipValue*Point;
if (BuyStoploss30 == 0) SL = 0;
double TP = price + BuyTakeprofit30*PipValue*Point;
if (BuyTakeprofit30 == 0) TP = 0;
if (Expiration30 == 0) expire = 0;
int ticket = OrderSend(Symbol(), OP_BUYSTOP, Volume_Lots, price, 4, SL, TP, "My Expert", 33, expire, Blue);
if (ticket == -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}

}

void IfOrderExists12()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists)
{
DeletePendingOrder10();

}
}

void DeletePendingOrder10()
{

for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33)
{
bool ret = OrderDelete(OrderTicket(), Red);

if (ret == false)
{
Print("OrderDelete() error - ", ErrorDescription(GetLastError()));
}
}
}

}

void IfOrderExists5()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists)
{
DeletePendingOrder9();

}
}

void DeletePendingOrder9()
{

for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33)
{
bool ret = OrderDelete(OrderTicket(), Red);

if (ret == false)
{
Print("OrderDelete() error - ", ErrorDescription(GetLastError()));
}
}
}

}



int deinit()
{
if (false) ObjectsDeleteAll();




}


[/PHP]




رد مع اقتباس
قديم 17-12-2012, 03:43 PM   المشاركة رقم: 25
الكاتب
jmeel
عضو نشيط
الصورة الرمزية jmeel

البيانات
تاريخ التسجيل: Jul 2012
رقم العضوية: 10231
المشاركات: 401
بمعدل : 0.09 يوميا

الإتصالات
الحالة:
jmeel غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

تفضلي الكود بعد التصحيح
[PHP]
#property copyright " jmeel24@yahoo.com "

#include <stdlib.mqh>
#include <WinUser32.mqh>

// exported variables


extern int MagicNo=4141;
extern string A1=" Time Order Setting ";
extern int Hour16 = 22;
extern int Minute16 = 2;

extern string A2=" Sell Order Setting ";
extern double SellLots8 = 0.1;
extern int SellStoploss8 = 20;
extern int SellTakeprofit8 = 10;
extern int PriceOffset8 = 10;

extern string A3=" Buy Order Setting ";
extern double BuyLots17 = 0.1;
extern int BuyStoploss17 = 20;
extern int BuyTakeprofit17 = 10;
extern int PriceOffset17 = 12;


// 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 Expiration17 = 1380;
int Expiration8 = 1380;
int Today16 = -1;
datetime BarTime7 = 0;
datetime BarTime9 = 0;


int deinit()
{
if (false) ObjectsDeleteAll();




}

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);
}

OnEveryTick20();

}

void OnEveryTick20()
{
if (true == false && false) PipValue = 10;
if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;

CheckLastOrderResult23();

AtCertainTime16();


}



void AtCertainTime16()
{
int datetime800 = TimeLocal();
int hour0 = TimeHour(datetime800);
int minute0 = TimeMinute(datetime800);
if (DayOfWeek() != Today16 && hour0 == Hour16 && minute0 == Minute16)
{
Today16 = DayOfWeek();
IfOrderDoesNotExist15();
IfOrderDoesNotExist14();

}
}

void IfOrderDoesNotExist15()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
OncePerBar7();

}
}

void OncePerBar7()
{

if (BarTime7 < Time[0])
{
// we have a new bar opened
BarTime7 = Time[0]; // keep the new bar open time
SellPendingOrder8();

}
}

void SellPendingOrder8()
{
int expire = TimeCurrent() + 60 * Expiration8;
double price = NormalizeDouble(Open[0], NDigits) - PriceOffset8*PipValue*Point;
double SL = price + SellStoploss8*PipValue*Point;
if (SellStoploss8 == 0) SL = 0;
double TP = price - SellTakeprofit8*PipValue*Point;
if (SellTakeprofit8 == 0) TP = 0;
if (Expiration8 == 0) expire = 0;
int ticket = OrderSend(Symbol(), OP_SELLSTOP, SellLots8, price, 4, SL, TP, "My Expert", MagicNo, expire, Red);
if (ticket == -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}

}

void IfOrderDoesNotExist14()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
OncePerBar9();

}
}

void OncePerBar9()
{

if (BarTime9 < Time[0])
{
// we have a new bar opened
BarTime9 = Time[0]; // keep the new bar open time
BuyPendingOrder17();

}
}

void BuyPendingOrder17()
{
int expire = TimeCurrent() + 60 * Expiration17;
double price = NormalizeDouble(Open[0], NDigits) + PriceOffset17*PipValue*Point;
double SL = price - BuyStoploss17*PipValue*Point;
if (BuyStoploss17 == 0) SL = 0;
double TP = price + BuyTakeprofit17*PipValue*Point;
if (BuyTakeprofit17 == 0) TP = 0;
if (Expiration17 == 0) expire = 0;
int ticket = OrderSend(Symbol(), OP_BUYSTOP, BuyLots17, price, 4, SL, TP, "My Expert", MagicNo, expire, Blue);
if (ticket == -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}

}

void CheckLastOrderResult23()
{
double profit = 0;
datetime lastCloseTime = 0;
int cnt = OrdersHistoryTotal();
for (int i=0; i < cnt; i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
if (OrderSymbol() == Symbol() && lastCloseTime < OrderCloseTime())
{
lastCloseTime = OrderCloseTime();
profit = OrderProfit();
}
}
if (profit > 0)

{
DeletePendingOrder19();
DeletePendingOrder18();

}

}

void DeletePendingOrder19()
{

for (int i=OrdersTotal()-1; i <= 0; i++)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
bool ret = OrderDelete(OrderTicket(), Red);

if (ret == false)
{
Print("OrderDelete() error - ", ErrorDescription(GetLastError()));
}
}
}

}

void DeletePendingOrder18()
{

for (int i=OrdersTotal()-1; i <= 0; i++)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
bool ret = OrderDelete(OrderTicket(), Red);

if (ret == false)
{
Print("OrderDelete() error - ", ErrorDescription(GetLastError()));
}
}
}

}




[/PHP]



التوقيع

* Don't work harder, work smarter *

عرض البوم صور jmeel  
رد مع اقتباس
  #25  
قديم 17-12-2012, 03:43 PM
jmeel jmeel غير متواجد حالياً
عضو نشيط
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

تفضلي الكود بعد التصحيح
[PHP]
#property copyright " jmeel24@yahoo.com "

#include <stdlib.mqh>
#include <WinUser32.mqh>

// exported variables


extern int MagicNo=4141;
extern string A1=" Time Order Setting ";
extern int Hour16 = 22;
extern int Minute16 = 2;

extern string A2=" Sell Order Setting ";
extern double SellLots8 = 0.1;
extern int SellStoploss8 = 20;
extern int SellTakeprofit8 = 10;
extern int PriceOffset8 = 10;

extern string A3=" Buy Order Setting ";
extern double BuyLots17 = 0.1;
extern int BuyStoploss17 = 20;
extern int BuyTakeprofit17 = 10;
extern int PriceOffset17 = 12;


// 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 Expiration17 = 1380;
int Expiration8 = 1380;
int Today16 = -1;
datetime BarTime7 = 0;
datetime BarTime9 = 0;


int deinit()
{
if (false) ObjectsDeleteAll();




}

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);
}

OnEveryTick20();

}

void OnEveryTick20()
{
if (true == false && false) PipValue = 10;
if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10;

CheckLastOrderResult23();

AtCertainTime16();


}



void AtCertainTime16()
{
int datetime800 = TimeLocal();
int hour0 = TimeHour(datetime800);
int minute0 = TimeMinute(datetime800);
if (DayOfWeek() != Today16 && hour0 == Hour16 && minute0 == Minute16)
{
Today16 = DayOfWeek();
IfOrderDoesNotExist15();
IfOrderDoesNotExist14();

}
}

void IfOrderDoesNotExist15()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
OncePerBar7();

}
}

void OncePerBar7()
{

if (BarTime7 < Time[0])
{
// we have a new bar opened
BarTime7 = Time[0]; // keep the new bar open time
SellPendingOrder8();

}
}

void SellPendingOrder8()
{
int expire = TimeCurrent() + 60 * Expiration8;
double price = NormalizeDouble(Open[0], NDigits) - PriceOffset8*PipValue*Point;
double SL = price + SellStoploss8*PipValue*Point;
if (SellStoploss8 == 0) SL = 0;
double TP = price - SellTakeprofit8*PipValue*Point;
if (SellTakeprofit8 == 0) TP = 0;
if (Expiration8 == 0) expire = 0;
int ticket = OrderSend(Symbol(), OP_SELLSTOP, SellLots8, price, 4, SL, TP, "My Expert", MagicNo, expire, Red);
if (ticket == -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}

}

void IfOrderDoesNotExist14()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}

if (exists == false)
{
OncePerBar9();

}
}

void OncePerBar9()
{

if (BarTime9 < Time[0])
{
// we have a new bar opened
BarTime9 = Time[0]; // keep the new bar open time
BuyPendingOrder17();

}
}

void BuyPendingOrder17()
{
int expire = TimeCurrent() + 60 * Expiration17;
double price = NormalizeDouble(Open[0], NDigits) + PriceOffset17*PipValue*Point;
double SL = price - BuyStoploss17*PipValue*Point;
if (BuyStoploss17 == 0) SL = 0;
double TP = price + BuyTakeprofit17*PipValue*Point;
if (BuyTakeprofit17 == 0) TP = 0;
if (Expiration17 == 0) expire = 0;
int ticket = OrderSend(Symbol(), OP_BUYSTOP, BuyLots17, price, 4, SL, TP, "My Expert", MagicNo, expire, Blue);
if (ticket == -1)
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}

}

void CheckLastOrderResult23()
{
double profit = 0;
datetime lastCloseTime = 0;
int cnt = OrdersHistoryTotal();
for (int i=0; i < cnt; i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
if (OrderSymbol() == Symbol() && lastCloseTime < OrderCloseTime())
{
lastCloseTime = OrderCloseTime();
profit = OrderProfit();
}
}
if (profit > 0)

{
DeletePendingOrder19();
DeletePendingOrder18();

}

}

void DeletePendingOrder19()
{

for (int i=OrdersTotal()-1; i <= 0; i++)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
bool ret = OrderDelete(OrderTicket(), Red);

if (ret == false)
{
Print("OrderDelete() error - ", ErrorDescription(GetLastError()));
}
}
}

}

void DeletePendingOrder18()
{

for (int i=OrdersTotal()-1; i <= 0; i++)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
bool ret = OrderDelete(OrderTicket(), Red);

if (ret == false)
{
Print("OrderDelete() error - ", ErrorDescription(GetLastError()));
}
}
}

}




[/PHP]




رد مع اقتباس
قديم 17-12-2012, 08:27 PM   المشاركة رقم: 26
الكاتب
nesma
عضو جديد

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12548
العمر: 33
المشاركات: 20
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
nesma غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

كل الشكر لك أستاذ جميل وجاري التجربه وبصراحه اتعلمت منك كتير عن طريق الاكسبريت ده وكنت اتمنى اعرف من حضرتك التعديل بتاعي مش شغال ليه ؟
وجاري تجربة التعديل الجديد



عرض البوم صور nesma  
رد مع اقتباس
  #26  
قديم 17-12-2012, 08:27 PM
nesma nesma غير متواجد حالياً
عضو جديد
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

كل الشكر لك أستاذ جميل وجاري التجربه وبصراحه اتعلمت منك كتير عن طريق الاكسبريت ده وكنت اتمنى اعرف من حضرتك التعديل بتاعي مش شغال ليه ؟
وجاري تجربة التعديل الجديد




رد مع اقتباس
قديم 18-12-2012, 12:28 AM   المشاركة رقم: 27
الكاتب
jmeel
عضو نشيط
الصورة الرمزية jmeel

البيانات
تاريخ التسجيل: Jul 2012
رقم العضوية: 10231
المشاركات: 401
بمعدل : 0.09 يوميا

الإتصالات
الحالة:
jmeel غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

انتي غيرتي فقط Trade الى History وهذا لايكفي ولابد من تحديد أن يكون هو العقد الأخير وأن يكون اغلق على ربح . راجعي الدالة وقارنيها ، ثم اختصرت أن يكون الأغلاق بيع أو شراء وكذلك المعلق بيع أو شراء ، لأن الأكسبيرت ينتهي عند هذا الحد وينتظر الموعد الجديد .



التوقيع

* Don't work harder, work smarter *

عرض البوم صور jmeel  
رد مع اقتباس
  #27  
قديم 18-12-2012, 12:28 AM
jmeel jmeel غير متواجد حالياً
عضو نشيط
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

انتي غيرتي فقط Trade الى History وهذا لايكفي ولابد من تحديد أن يكون هو العقد الأخير وأن يكون اغلق على ربح . راجعي الدالة وقارنيها ، ثم اختصرت أن يكون الأغلاق بيع أو شراء وكذلك المعلق بيع أو شراء ، لأن الأكسبيرت ينتهي عند هذا الحد وينتظر الموعد الجديد .




رد مع اقتباس
قديم 18-12-2012, 04:33 PM   المشاركة رقم: 28
الكاتب
nesma
عضو جديد

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12548
العمر: 33
المشاركات: 20
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
nesma غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

المشاركة الأصلية كتبت بواسطة jmeel نقره لعرض الصورة في صفحة مستقلة
انتي غيرتي فقط Trade الى History وهذا لايكفي ولابد من تحديد أن يكون هو العقد الأخير وأن يكون اغلق على ربح . راجعي الدالة وقارنيها ، ثم اختصرت أن يكون الأغلاق بيع أو شراء وكذلك المعلق بيع أو شراء ، لأن الأكسبيرت ينتهي عند هذا الحد وينتظر الموعد الجديد .
ما شاء الله عليك أستاذ جميل شكراً لك على هذا الوقت والمجهود وفقك الله دائماً إلى الخير
وفعلا والله استفدت منك كثيرا



عرض البوم صور nesma  
رد مع اقتباس
  #28  
قديم 18-12-2012, 04:33 PM
nesma nesma غير متواجد حالياً
عضو جديد
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

المشاركة الأصلية كتبت بواسطة jmeel نقره لعرض الصورة في صفحة مستقلة
انتي غيرتي فقط Trade الى History وهذا لايكفي ولابد من تحديد أن يكون هو العقد الأخير وأن يكون اغلق على ربح . راجعي الدالة وقارنيها ، ثم اختصرت أن يكون الأغلاق بيع أو شراء وكذلك المعلق بيع أو شراء ، لأن الأكسبيرت ينتهي عند هذا الحد وينتظر الموعد الجديد .
ما شاء الله عليك أستاذ جميل شكراً لك على هذا الوقت والمجهود وفقك الله دائماً إلى الخير
وفعلا والله استفدت منك كثيرا




رد مع اقتباس
قديم 06-01-2013, 06:51 PM   المشاركة رقم: 29
الكاتب
uosef
عضو جديد

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12571
العمر: 48
المشاركات: 1
بمعدل : 0.00 يوميا

الإتصالات
الحالة:
uosef غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

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



عرض البوم صور uosef  
رد مع اقتباس
  #29  
قديم 06-01-2013, 06:51 PM
uosef uosef غير متواجد حالياً
عضو جديد
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

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




رد مع اقتباس
قديم 21-01-2013, 07:29 AM   المشاركة رقم: 30
الكاتب
mcgill
عضو جديد

البيانات
تاريخ التسجيل: Dec 2012
رقم العضوية: 12803
العمر: 24
المشاركات: 75
بمعدل : 0.02 يوميا

الإتصالات
الحالة:
mcgill غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : nesma المنتدى : منتدى المؤشرات و الاكسبيرتات
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

السلام عليكم

ممكن الاكسبرت بعد اخر تعديل

شكرااااااااا جزيلاااااااااااا



عرض البوم صور mcgill  
رد مع اقتباس
  #30  
قديم 21-01-2013, 07:29 AM
mcgill mcgill غير متواجد حالياً
عضو جديد
افتراضي رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟

السلام عليكم

ممكن الاكسبرت بعد اخر تعديل

شكرااااااااا جزيلاااااااااااا




رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
منكم, اطلب, اكسبريت, يساعدني؟, شهية


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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة



الساعة الآن 08:41 PM



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

تحذير المخاطرة

التجارة بالعملات الأجنبية تتضمن علي قدر كبير من المخاطر ومن الممكن ألا تكون مناسبة لجميع المضاربين, إستعمال الرافعة المالية في التجاره يزيد من إحتمالات الخطورة و التعرض للخساره, عليك التأكد من قدرتك العلمية و الشخصية على التداول.

تنبيه هام

موقع اف اكس ارابيا هو موقع تعليمي خالص يهدف الي توعية المستثمر العربي مبادئ الاستثمار و التداول الناجح ولا يتحصل علي اي اموال مقابل ذلك ولا يقوم بادارة محافظ مالية وان ادارة الموقع غير مسؤولة عن اي استغلال من قبل اي شخص لاسمها وتحذر من ذلك.

اتصل بنا

البريد الإلكتروني للدعم الفنى : support@fx-arabia.com
جميع الحقوق محفوظة اف اكس ارابيا – احدى مواقع Inwestopedia Sp. Z O.O. للاستشارات و التدريب – جمهورية بولندا الإتحادية.
Powered by vBulletin® Copyright ©2000 - 2024 , Designed by Fx-Arabia Team