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

nesma 06-12-2012 03:11 PM

لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
هاي لو سمحتم عايزه اكسبريت يضع امر شراء و بيع
sell stop and buy stop
ويضع الاوامر دي معلقة على مسافة 10 نقاط بالنسبه للبيع و12 نقطة بالنسبة للشراء من سعر افتتاح شمعة الساعة 22:00 وياريت لو اقدر اغير توقيت الشمعة زي ما انا عايزه
والهدف 10 نقط والاستوب لوس 20

open price+12 = BUY STOP ORDER
open price-10 = SELL STOP ORDER

TP=10pip
SL=20pip


ويا سلام لو عند تفعيل احد الاوامر يتم وضع الامر الملعق الغير مفعل عند نقطة وقف الخسارة للامر المفعل وإذا تحقق هدف الأمر المفعل يتم إلغاء الامر الاخر المعلق



nesma 07-12-2012 10:23 AM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
بلاش الشرط ده لأن ملوش لازمه
اقتباس:

لو عند تفعيل احد الاوامر يتم وضع الامر الملعق الغير مفعل عند نقطة وقف الخسارة للامر المفعل
أريد فقط إذا تحقق هدف الأمر المفعل يتم إلغاء الامر الاخر المعلق

MOVING_AVERAGE 07-12-2012 03:04 PM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
ان شاء الله احاول برمجته وانا كنت من متتبعي هذه الاستراتجية وهي جيدة في اغلب الاحيان

هل الاكسبريت يبدء عمله مع افتتاح اليوم الجديد

يعني بعد تحديد الهاي واللو ل 22 لليوم السابق

وينتهي عمله قبل الساعة 22 بساعة ؟؟؟؟؟؟

nesma 07-12-2012 07:38 PM

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

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

هل الاكسبريت يبدء عمله مع افتتاح اليوم الجديد

يعني بعد تحديد الهاي واللو ل 22 لليوم السابق

وينتهي عمله قبل الساعة 22 بساعة ؟؟؟؟؟؟


شكرا لك استاذ MOVING_AVERAGE
الاكسبريت يبدأ عمله بمجرد افتتاح شمعة الساعة 22 يبدأ الاكسبريت في حساب الحسابات وتنفيذ الاوامر واتمنى ان تتيح لي الخيار في تغيير الساعه 22 إلى أي ساعى أريد
شكرا استاذ MOVING_AVERAGE

moataz_m 07-12-2012 07:45 PM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
بالتوفيق اختى الكريمة وبارك الله فيك اخى موفينج

nesma 10-12-2012 07:29 PM

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

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

هل الاكسبريت يبدء عمله مع افتتاح اليوم الجديد

يعني بعد تحديد الهاي واللو ل 22 لليوم السابق

وينتهي عمله قبل الساعة 22 بساعة ؟؟؟؟؟؟

أستاذ MOVING_AVERAGE أنت مشغول؟ .. أنا اسفة لو بكرر طلبي تاني

MOVING_AVERAGE 11-12-2012 12:50 AM

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

المشاركة الأصلية كتبت بواسطة nesma (المشاركة 435558)
أستاذ MOVING_AVERAGE أنت مشغول؟ .. أنا اسفة لو بكرر طلبي تاني


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

jmeel 11-12-2012 05:51 PM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
1 مرفق
تفضلي الأكسبيرت كل المدخلات قابلة للتعديل ، تحياتي .

nesma 11-12-2012 07:18 PM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
ألف شكر أستاذ جميل و إن شاء الله هجربه وأقولك الاخبار وإن شاء الله مش هيكون محتاج حاجه تاني
لكن ممكن طلب آخر؟ ممكن الاكسبريت بصيغة mq4 بحيث أقدر أعدل عليه بمعرفتي البسيطه في البرمجه ومنها اتعلم واستفيد من خبرة حضرتك!

nesma 11-12-2012 07:20 PM

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

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

ولا يهمك أستاذ موفينج الحمد لله الأستاذ جميل عمله اللازم جزاكم الله خيراً حميعاً

jmeel 11-12-2012 10:40 PM

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

المشاركة الأصلية كتبت بواسطة nesma (المشاركة 435900)
ألف شكر أستاذ جميل و إن شاء الله هجربه وأقولك الاخبار وإن شاء الله مش هيكون محتاج حاجه تاني
لكن ممكن طلب آخر؟ ممكن الاكسبريت بصيغة mq4 بحيث أقدر أعدل عليه بمعرفتي البسيطه في البرمجه ومنها اتعلم واستفيد من خبرة حضرتك!

تفضلي الكود مرفق

nesma 13-12-2012 01:43 PM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
شكرا بجد أستاذ جميل مش عارفه أشكرك أزاي بجد جزاك الله كل خير

nesma 14-12-2012 05:33 PM

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

المشاركة الأصلية كتبت بواسطة nesma (المشاركة 434321)
هاي لو سمحتم عايزه اكسبريت يضع امر شراء و بيع
sell stop and buy stop

ويضع الاوامر دي معلقة على مسافة 10 نقاط بالنسبه للبيع و12 نقطة بالنسبة للشراء من سعر افتتاح شمعة الساعة 22:00 وياريت لو اقدر اغير توقيت الشمعة زي ما انا عايزه
والهدف 10 نقط والاستوب لوس 20

open price+12 = BUY STOP ORDER

open price-10 = SELL STOP ORDER
TP=10pip
SL=20pip



وإذا تحقق هدف الأمر المفعل يتم إلغاء الامر الاخر المعلق





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

هناك أستفسار: كنت قد طلبت من حضرتك أن يتم وضع الأوامر الساعه 22 و لقد لاحظت أن وقت وضع الأوامر عند الساعه 22 و 3دقائق فهل هناك غرض برمجي لجعل الدقائق=3 ؟؟ حيث إن لم يكن هناك غرض فسوف أجعل الدقائق=0

jmeel 15-12-2012 12:41 PM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
تحتاج الى التأكد من الأغلاق واخترت 3 دقائق عشان سرعة الباك تيست لاتتناسب وبعض المنصات ، غيريها وجربي مايناسب المنصة .
الغاء العقد المعلق بعد اغلاق العقد المفتوح بالربح ممكن ، لكن ماذا لو كان يغلق على خسارة . هل ايضا يلغى العقد المعلق ؟؟؟ ام يظل مفتوحا ؟ .

fady 15-12-2012 11:07 PM

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

المشاركة الأصلية كتبت بواسطة jmeel (المشاركة 435982)


تفضلي الكود مرفق

ممكن شرح الاعدادات

nesma 16-12-2012 09:49 PM

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

المشاركة الأصلية كتبت بواسطة jmeel (المشاركة 437072)
تحتاج الى التأكد من الأغلاق واخترت 3 دقائق عشان سرعة الباك تيست لاتتناسب وبعض المنصات ، غيريها وجربي مايناسب المنصة .
الغاء العقد المعلق بعد اغلاق العقد المفتوح بالربح ممكن ، لكن ماذا لو كان يغلق على خسارة . هل ايضا يلغى العقد المعلق ؟؟؟ ام يظل مفتوحا ؟ .

تمام حضرتك
أريد إلغاء العقد المعلق بعد اغلاق العقد المفتوح بالربح أما إذا ضرب الاستوب لوس لا اريد أغلاق العقد المعلق
وبجد شكرا جدا ليك أستاذ جميل

nesma 16-12-2012 10:11 PM

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

المشاركة الأصلية كتبت بواسطة fady (المشاركة 437155)
ممكن شرح الاعدادات

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


http://www.fx-arabia.com/vb/attachme...1&d=1355685018

fady 16-12-2012 10:16 PM

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

المشاركة الأصلية كتبت بواسطة nesma (المشاركة 437419)
معتقدش الاعدادات كتيره او صعبه بصراحه الاستاذ جميل عامل الاكسبريت بطريقة جميله وسهله ما شاء الله
على تفضل الصورة تشرح كل شئ وتحت امرك في اي وقت


http://www.fx-arabia.com/vb/attachme...1&d=1355685018

thxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxx

jmeel 16-12-2012 11:17 PM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
عندك الأكسبيرت والكود مفتوح ، حاولي تعدلي الشرط بأن يلغي العقد المعلق بعد اغلاق العقد المفتوح بربح ، وأبقاء المعلق اذا اغلق بخسارة ؟؟

nesma 16-12-2012 11:43 PM

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

المشاركة الأصلية كتبت بواسطة jmeel (المشاركة 437439)
عندك الأكسبيرت والكود مفتوح ، حاولي تعدلي الشرط بأن يلغي العقد المعلق بعد اغلاق العقد المفتوح بربح ، وأبقاء المعلق اذا اغلق بخسارة ؟؟

فعلا بحاول وإن شاء الله يشتغل تمام وثواني هخلص واعرض على حضرتك التعديل بالنسبه للدالة المسؤله عن ذلك

nesma 16-12-2012 11:58 PM

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


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

[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
أي أن الربح يكون أكبر من صفر

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

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

jmeel 17-12-2012 12:41 AM

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

nesma 17-12-2012 01:19 AM

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

المشاركة الأصلية كتبت بواسطة jmeel (المشاركة 437485)
تمام وبعد انتهاء التعديلات جربي وشوفي النتيجة

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

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

nesma 17-12-2012 02:49 AM

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


[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]

jmeel 17-12-2012 03:43 PM

رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
 
تفضلي الكود بعد التصحيح
[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]

nesma 17-12-2012 08:27 PM

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

jmeel 18-12-2012 12:28 AM

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

nesma 18-12-2012 04:33 PM

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

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

ما شاء الله عليك أستاذ جميل شكراً لك على هذا الوقت والمجهود وفقك الله دائماً إلى الخير
وفعلا والله استفدت منك كثيرا

uosef 06-01-2013 06:51 PM

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

mcgill 21-01-2013 07:29 AM

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

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

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


الساعة الآن 06:18 AM

Powered by vBulletin® Copyright ©2000 - 2025

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