رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة AYMAN_DOMAIN
استفسار لو سمحتم
فى حالة استراتيجية المضاعفات فى الاتجاهين هل يحدث فرق الاسبريد بين صفقتى البيع والشراء مشكلة
يعنى مثلا لو مضاعفة شراء هل يجب ان اغير معدل الاهداف والستوب لوس عن صفقات مضاعفات البيع للتوائم مع الشراء 00ام ان ذلك ليس ب مشكلة ( اخشى ان يضرب الاستوب فى سلسلة منهم قبل ان يتحقق الهدف فى السلسلة الاخرى وتعكس على خسارة بسبب فرق السبريد :doh:) انا بجربها بشكل يدوى بس يمكن اكون مش مركز فلم اصل لنتيجة:no3:
وعليكم السلام
نعم يجب الانتباه لفرق السبريد
بحيث يجب الخروج من الصفقتين المتعاكستين فورا إذا لم يحصل ذلك آليا .
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة njjar
استاذ وضاح بارك الله فيك
ما قصدته اخي الكريم هو البروفت للصفقات المفتوحه للشراء والبيع وليس عدد الصفقات
جزاك الله كل خير
بسيطة زيادة الخير خيرين
هذه الوظيفة تحسب لك ربح صفقات الشراء :
كود PHP:
double MyBuyProfit(int Magic)
{
double c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_BUY)
{
c=c+OrderProfit();
}
}
return(c);
}
وهذه لصفقات البيع :
كود PHP:
double MySellProfit(int Magic)
{
double c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_SELL)
{
c=c+OrderProfit();
}
}
return(c);
}
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة وضاح عطار
وعليكم السلام
نعم يجب الانتباه لفرق السبريد
بحيث يجب الخروج من الصفقتين المتعاكستين فورا إذا لم يحصل ذلك آليا .
شكرا جزيلا
هل يمكننا ان نضع امر باغلاق احدى الصفقات(او سلسلة صفقات بنفس الهدف والاستوب لوس) اذا وصلت الاخرى للهدف؟
رد: موضوع مخصص للأسئلة البرمجية
بارك الله فيك على هذا المجهود
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة وضاح عطار
استخدم الوظيفة التالية :
كود PHP:
void SetPrice(string name, datetime Tm, double Prc, color clr)
{
if(ObjectFind(name) == -1)
{
ObjectCreate(name, OBJ_ARROW, 0, Tm, Prc);
ObjectSet(name, OBJPROP_COLOR, clr);
ObjectSet(name, OBJPROP_WIDTH, 1);
ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
}
else
{
ObjectSet(name, OBJPROP_TIME1, Tm);
ObjectSet(name, OBJPROP_PRICE1, Prc);
ObjectSet(name, OBJPROP_COLOR, clr);
ObjectSet(name, OBJPROP_WIDTH, 1);
ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
}
}
ويصبح مؤشرك كالتالي :
كود PHP:
//+------------------------------------------------------------------+
//| wajdyss lines.mq4 |
//| Copyright © 2008, wajdyss|
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, wajdyss"
#property link "[email protected]"
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Lime
#property indicator_color2 Lime
#property indicator_color3 Lime
#property indicator_color4 Lime
#property indicator_color5 Lime
#property indicator_color6 Lime
#property indicator_color7 Lime
#property indicator_color8 Lime
extern int how_long=10000; // bars to be counted (-1 - all the bars)
extern double pips=125;
extern double startprice=1.5000;
//---- indicator buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
double ExtMapBuffer8[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
Comment("wajdyss_lines");
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(1, ExtMapBuffer2);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(2, ExtMapBuffer3);
SetIndexStyle(2, DRAW_LINE);
SetIndexBuffer(3, ExtMapBuffer4);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(4, ExtMapBuffer5);
SetIndexStyle(4, DRAW_LINE);
SetIndexBuffer(5, ExtMapBuffer6);
SetIndexStyle(5, DRAW_LINE);
SetIndexBuffer(6, ExtMapBuffer7);
SetIndexStyle(6, DRAW_LINE);
SetIndexBuffer(7, ExtMapBuffer8);
SetIndexStyle(7, DRAW_LINE);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
Comment("");
return(0);
}
int start()
{
int cnt=0;
int begin_bar=0;
double pips2=pips*Point;
if (how_long == -1) {
begin_bar = Bars;
} else {
begin_bar = how_long;
}
for (cnt = begin_bar; cnt >= 0; cnt--) {
ExtMapBuffer1[cnt] = startprice;
ExtMapBuffer2[cnt] = startprice+(pips2);
ExtMapBuffer3[cnt] = startprice+(pips2*2);
ExtMapBuffer4[cnt] = startprice+(pips2*3);
ExtMapBuffer5[cnt] = startprice-(pips2);
ExtMapBuffer6[cnt] = startprice-(pips2*2);
ExtMapBuffer7[cnt] = startprice-(pips2*3);
ExtMapBuffer8[cnt] = startprice-(pips2*4);
}
SetPrice("level1", Time[0],ExtMapBuffer1[0], indicator_color1);
SetPrice("level2", Time[0],ExtMapBuffer2[0], indicator_color2);
SetPrice("level3", Time[0],ExtMapBuffer3[0], indicator_color3);
SetPrice("level4", Time[0],ExtMapBuffer4[0], indicator_color4);
SetPrice("level5", Time[0],ExtMapBuffer5[0], indicator_color5);
SetPrice("level6", Time[0],ExtMapBuffer6[0], indicator_color6);
SetPrice("level7", Time[0],ExtMapBuffer7[0], indicator_color7);
SetPrice("level8", Time[0],ExtMapBuffer8[0], indicator_color8);
return(0);
}
void SetPrice(string name, datetime Tm, double Prc, color clr)
{
if(ObjectFind(name) == -1)
{
ObjectCreate(name, OBJ_ARROW, 0, Tm, Prc);
ObjectSet(name, OBJPROP_COLOR, clr);
ObjectSet(name, OBJPROP_WIDTH, 1);
ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
}
else
{
ObjectSet(name, OBJPROP_TIME1, Tm);
ObjectSet(name, OBJPROP_PRICE1, Prc);
ObjectSet(name, OBJPROP_COLOR, clr);
ObjectSet(name, OBJPROP_WIDTH, 1);
ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
}
}
//+------------------------------------------------------------------+
جزاك الله كل خير
:0031:
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة AYMAN_DOMAIN
شكرا جزيلا
هل يمكننا ان نضع امر باغلاق احدى الصفقات(او سلسلة صفقات بنفس الهدف والاستوب لوس) اذا وصلت الاخرى للهدف؟
للرفع
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة AYMAN_DOMAIN
شكرا جزيلا
هل يمكننا ان نضع امر باغلاق احدى الصفقات(او سلسلة صفقات بنفس الهدف والاستوب لوس) اذا وصلت الاخرى للهدف؟
يجب تزبيط الأوامر البيع والشراء كي تدخل من نفس السعر مع حساب فارق السبريد .
مع الانتباه إلى أن دخول الشراء هو Ask والخروج منه على سعر Bid
والعكس صحيح مع صفقات البيع .
لضمان تنفيذ أمرين بيع وشراء في نفس اللحظة يجب الأخذ بعين الاعتبار هذه الأمور ومعرفة السبريد لهذا الزوج .
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة وضاح عطار
يجب تزبيط الأوامر البيع والشراء كي تدخل من نفس السعر مع حساب فارق السبريد .
مع الانتباه إلى أن دخول الشراء هو Ask والخروج منه على سعر Bid
والعكس صحيح مع صفقات البيع .
لضمان تنفيذ أمرين بيع وشراء في نفس اللحظة يجب الأخذ بعين الاعتبار هذه الأمور ومعرفة السبريد لهذا الزوج .
شكرا استاذ وضاح لكن مازال الاستفسار قائم حتى الان(اتحدث عن حل برمجى)
هل يمكننا ان نضع امر باغلاق احدى الصفقات(او سلسلة صفقات بنفس الهدف والاستوب لوس) اذا وصلت الاخرى للهدف؟
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة AYMAN_DOMAIN
شكرا استاذ وضاح لكن مازال الاستفسار قائم حتى الان(اتحدث عن حل برمجى)
هل يمكننا ان نضع امر باغلاق احدى الصفقات(او سلسلة صفقات بنفس الهدف والاستوب لوس) اذا وصلت الاخرى للهدف؟
أخي الكريم
يمكنك اغلاق الصفقات المفتوحة كلها
استخدم هذا الكود
كود PHP:
int CloseOpenOrders(int Magic)
{
for (int cnt = 0 ; cnt <= OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,5,Yellow);
}
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,5,Yellow);
}
}
}
return(0);
}
عند تحقق شروط الاغلاق لديك يجب أن تستدعي الكود بهذه الجملة
كود PHP:
CloseOpenOrders(Magic);
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة محمود عامر
أخي الكريم
يمكنك اغلاق الصفقات المفتوحة كلها
استخدم هذا الكود
كود PHP:
int CloseOpenOrders(int Magic)
{
for (int cnt = 0 ; cnt <= OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,5,Yellow);
}
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,5,Yellow);
}
}
}
return(0);
}
عند تحقق شروط الاغلاق لديك يجب أن تستدعي الكود بهذه الجملة
كود PHP:
CloseOpenOrders(Magic);
الف الف شكر اخى الكريم محمود:015::eh_s(7)::015:
رد: موضوع مخصص للأسئلة البرمجية
استفسار اخواني
ما الفرق بين المؤشر بامتداد exe
وامتداد mq4
وجزاكم الله خيرا
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة s_jamal
استفسار اخواني
ما الفرق بين المؤشر بامتداد exe
وامتداد mq4
وجزاكم الله خيرا
امتداد MQL4 هو اللغة التي نكتب بها المؤشر و يستطيع المبرمج قراءة ما بداخل هذا الملف و التعديل عليه
اما امتداد EX4 فهو اللغة التي يقوم برنامج الميتا بتحويل ملف MQL4 اليها ليستطيع قراءته و تنفيذ الاوامر التي بداخله و لا يستطيع المبرمج الاطلاع على ما بداخله او التعديل عليه
أرجو أن تكون وصلت الفكرة
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة وضاح عطار
اطلع على كود الاكسبيرت TrendMeLeaveMe_Gold
فيه جواب على سؤالك الثاني
الجواب الأول يجب أن تجعل الاكسبيرت يكتشف هذه النقاط الثلاثة للترند وبعدها عملية رسمه ستكون بسيطة .
طيب يالحبيب وضاح ماذا لو قلنا للاكسبيرت تعرف على اقل لو او اعلى هاي للثلاثين شمعه الماضيه مثلا وكذلك للدعم او المقاومه الثانيه نقول له تعرف على ثاني اقل لو او ثاني اعلى هاي للثلاثين شمعه الماضيه وكذلك للدعم الثالث ونعرف له بان تلك المقاومات يجب ان تكون بينها وبين الشمعه التاليه لها والسابقه عنها فرق عدد معين من النقاط ومن ثم طلبنا منه رسم خط يصل بهما :asvc: اليس كلامي صحيح وتسلم وتسلممممممممممممممممممون
رد: موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة محمود عامر
امتداد MQL4 هو اللغة التي نكتب بها المؤشر و يستطيع المبرمج قراءة ما بداخل هذا الملف و التعديل عليه
اما امتداد EX4 فهو اللغة التي يقوم برنامج الميتا بتحويل ملف MQL4 اليها ليستطيع قراءته و تنفيذ الاوامر التي بداخله و لا يستطيع المبرمج الاطلاع على ما بداخله او التعديل عليه
أرجو أن تكون وصلت الفكرة
جزاك الله خيرا اخي الكريم
رد: موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله وبركاته
هل يوجد كود تلوين الشمعات في حالة تحقق شرط معين
مثلا تلون الشمعات بلون اخضر اذا كان الماكد فوق خط الصفر ولون اخر اذا كان تحت الصفر
او لون اذا كان السعر تحت متوسط 100 ولون اخر اذا كان السعر فوقه... وهكذا
شكرا
والهدف تسهيل متابعة المؤشرات واختبارها لفترات طويله