النتائج 1 إلى 14 من 14
- 19-02-2009, 04:11 AM #1
استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
انا لسه على قد حالي اوي في البرمجة دي وبحاول لسه بس عشان اختبر طرق المتاجرة ..المهم ....
انا عايز دلوقتي اعرف الكود اللي من خلاله اقدر اضاعف حجم اللوت بناءً على الصفقة الخاسرة....
بمعنى...
يقوم الإكسبيرت (الكود يعني المضاف ده بس بتاع خاصية المضاعفة) بالتعرف على الربح أو الخسارة لآخر صفقة إذا كانت خاسرة فيجعل حجم اللوت في الصفقة التالية هو الضعف. وهكذا حتى ان تحدث صفقة رابحة فيعود على ما كان عليه مرة اخرى.
نظرتي انا الغير برمجية واتمنى ان يكون تطبيقها سهل:
نحدد حجم اللوت في متغير وليكن L وبكود ما يختبر الإكسبيرت اخر ربح او خسارة حدثت بالفعل إن كانت خسارة فليجعل L=L*2 وهكذا حتى ان يكون هناك صفقة رابحة فيجعل L=1 مثلاً او اي حاجة دي بسيطة.
في انتظار توضيح العباقرة هنا واتمنى ان يكون الأمر بسيط ان شاء الله.
- 19-02-2009, 05:24 AM #2
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
اطلع على كود اكسبيرت Waddah Attar Supaplex ففيه ما طلبت .
الاكسبيرت تجده في المنتدى
ابحث عنه
- 19-02-2009, 02:25 PM #3
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
نحدد حجم اللوت في متغير وليكن L وبكود ما يختبر الإكسبيرت اخر ربح او خسارة حدثت بالفعل إن كانت خسارة فليجعل L=L*2 وهكذا حتى ان يكون هناك صفقة رابحة فيجعل L=1 مثلاً او اي حاجة دي بسيطة.
تحياتي
- 19-02-2009, 04:44 PM #4
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
جازاك الله خير اولاً على الرد ... وثانياً على انك تضع اكسبيرتاتك بالمنتدى مفتوحة الكود لم اتوقع هذا الأمر بصراحة حيث ان الإكسبيرت عبارة عن مجهود جبار ولم اتوقع انك تضعه كده للجميع مفتوح الكود.
جزاك الله خير مرة اخرى وجاري تنزيل الإكسبيرت والبحث عن هذا الكود إن شاء الله...
- 19-02-2009, 04:50 PM #5
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
ماشي يا باشا ماهي الفكرة منقطياً سليمة اوكي كويس ....لكن برمجياً بقى انا لسه مش عارف الكود اللي اقدر اختبر بيه الـBalance ولا حتى الـClosed P\L فياريت تساعدني بيه على ما ابحث انا في اكسبيرت الأخ وضاح وإن شاء الله اعرف اوصلها وتأكدهالي ايضاً.
جزاكم الله خير جميعاً على تعاونكم يا جماعة,,,
- 20-02-2009, 11:31 PM #6
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
يا جماعة الخير حاولت ان افهم اكسبيرت المهندس وضاح (سوبابلكس) لكني لم استطيع خصوصاً ان التعليقات لا تظهر عندي نظراً لمشكلة في لغة الكمبيوتر عندي لا يقرأ العربي كله.
المهم... ارجو من السادة الفاهمين الموضوع ده اخباري بالكود الذي يقوم بتلك الوظيفة فقط بكل وضوح !
الوظيفة المطلوب الكود الخاص بها مرة اخرى هي كالآتي:
ينظر الإكسبيرت إلى اخر نتيجة اخر صفقة (او يقارن الحساب قبل فتح الصفقة والحساب بعد فتح الصفقة) إذا كانت النتيجة ربح فلا يفعل شيئ, اما إذا كانت خسارة فليجعل Lot=Lot*2 مثلاً وخلاص
- 21-02-2009, 01:39 AM #7
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
حياك الله اخي احمد الكود في الاسفل هو ما تبتغيه من اكسبيرت الاستاذ وضاح الذي اشار اليه ولقد قمت بتعديل طفيف جدا عليه والذي استميح الاستاذ وضاح عليه
كود PHP:int double LotsDouble = 2; هنا تضع قيمة المضاعفه التي تريدها
--------------------
هذا الكود تضعه اسفل int start()
void OpenBUYOrder(double Lots,int Magic)
{
double SL,TP;
SL=Ask-StopLoss*Point;
TP=Ask+TakeProfit*Point;
if (هنا ضع شرط فتح الصفقه للشراء)
{
TICKET=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"",Magic,0,Green);
if(TICKET>0)
{
GT1=0;
while(GT1==0)
{
Sleep(5000);
GT1=OrderSend(Symbol(),OP_SELLSTOP,Lots,SL,3,SL+StopLoss*Point,SL-TakeProfit*Point,"",Magic,0,Green);
Sleep(5000);
}
GT2=0;
while(GT2==0)
{
Sleep(5000);
GT2=OrderSend(Symbol(),OP_SELLSTOP,Lots,SL,3,SL+StopLoss*Point,SL-(TakeProfit*Point),"",Magic,0,Green);
Sleep(5000);
}
}
}
}
void OpenSELLOrder(double Lots,int Magic)
{
double SL,TP;
SL=Bid+StopLoss*Point;
TP=Bid-TakeProfit*Point;
if (هنا ضع شرط الصفقه للبيع)
{
TICKET=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"",Magic,0,Red);
if(TICKET>0)
{
GT1=0;
while(GT1==0)
{
Sleep(5000);
GT1=OrderSend(Symbol(),OP_BUYSTOP,Lots,SL,3,SL-StopLoss*Point,SL+TakeProfit*Point,"",Magic,0,Green);
Sleep(5000);
}
GT2=0;
while(GT2==0)
{
Sleep(5000);
GT2=OrderSend(Symbol(),OP_BUYSTOP,Lots,SL,3,SL-StopLoss*Point,SL+(TakeProfit*Point),"",Magic,0,Green);
Sleep(5000);
}
}
}
}
int Procces()
{
double SLOT,SSL,STP;
if (MyRealOrdersTotal(MagicNumber)==0 && MyPendingOrdersTotal(MagicNumber)==2)
{
DeletePendingOrders(MagicNumber);
return(0);
}
if (MyRealOrdersTotal(MagicNumber)==0 && MyPendingOrdersTotal(MagicNumber)==0)
{
if (OpenBuy)
{
OpenBUYOrder(Lots,MagicNumber);
}
if (OpenSell)
{
OpenSELLOrder(Lots,MagicNumber);
}
return(0);
}
if (MyRealOrdersTotal(MagicNumber)==2 && MyPendingOrdersTotal(MagicNumber)==0)
{
OrderSelect(T1,SELECT_BY_TICKET,MODE_TRADES);
SLOT=OrderLots()*LotsDouble;
SSL=OrderStopLoss();
STP=OrderTakeProfit();
if (OrderType()==OP_BUY)
{
GT1=0;
while(GT1==0)
{
Sleep(5000);
GT1=OrderSend(Symbol(),OP_SELLSTOP,SLOT,SSL,3,SSL+StopLoss*Point,SSL-TakeProfit*Point,"",MagicNumber,0,Green);
Sleep(5000);
}
GT2=0;
while(GT2==0)
{
Sleep(5000);
GT2=OrderSend(Symbol(),OP_SELLSTOP,SLOT,SSL,3,SSL+StopLoss*Point,SSL-(TakeProfit*Point),"",MagicNumber,0,Green);
Sleep(5000);
}
}
if (OrderType()==OP_SELL)
{
GT1=0;
while(GT1==0)
{
Sleep(5000);
GT1=OrderSend(Symbol(),OP_BUYSTOP,SLOT,SSL,3,SSL-StopLoss*Point,SSL+TakeProfit*Point,"",MagicNumber,0,Green);
Sleep(5000);
}
GT2=0;
while(GT2==0)
{
Sleep(5000);
GT2=OrderSend(Symbol(),OP_BUYSTOP,SLOT,SSL,3,SSL-StopLoss*Point,SSL+(TakeProfit*Point),"",MagicNumber,0,Green);
Sleep(5000);
}
}
}
return(0);
}
int MyRealOrdersTotal(int Magic)
{
int C=0;
int TOTAL = OrdersTotal();
T1=-1;
T2=-1;
for (int CNT = 0 ; CNT < TOTAL ; CNT++)
{
OrderSelect(CNT,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
{
if (T1==-1)
{
T1=OrderTicket();
}
else
{
if (T2==-1)
{
T2=OrderTicket();
}
}
C++;
}
}
return(C);
}
int MyPendingOrdersTotal(int Magic)
{
int 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_BUYSTOP || OrderType()==OP_SELLSTOP))
{
C++;
}
}
return(C);
}
int DeletePendingOrders(int Magic)
{
int TOTAL = OrdersTotal();
for (int CNT = TOTAL - 1; CNT >= 0; CNT--)
{
OrderSelect(CNT,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP))
{
OrderDelete(OrderTicket());
}
}
return(0);
}
آخر تعديل بواسطة MR-TURKI ، 21-02-2009 الساعة 01:47 AM
- 21-02-2009, 02:26 PM #8
- 21-02-2009, 07:55 PM #9
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
فشلت في المهمة.
ارجو منك اخي تركي ان تعيد مراجعة الكود المعطى من قبلك حيث ان به اخطاء كثيرة لما يستخدم في حالة وضع شروط الشراء والبيع فقط.
يبدو انه يعتمد على متغيرات كثيرة غير معرفة او شيئ من هذا القبيل.
- 09-03-2009, 01:28 PM #10
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
يا جماعة انا مازلت ابحث عن حل للمشكلة
المطلوب في شكل مبسط هو كالتالي:
تحديد حجم اللوت وليكن 1 ;
وبعدين (إذا كانت الصفقة خاسرة)
{اجعل اللوت=اللوت*2 ;}
وإذا كانت (الصفقة رابحه)
{اجعل اللوت=1;}
اعتقد ان المطلوب بسيط جداً بالنسبة للعباقرة اللي هنا ... بالله عليكم المساعدة.
- 09-03-2009, 01:45 PM #11
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
طيب شوف هذه الفكرة
افحص آخر عملية موجودة في الهيستوري .
افحص ربح الصفقة هل هو سالب أم موجب .
ثم افحص اللوت لهذه الصفقة .
في حال كان الربح سالب افتح الصفقة الجديدة بضعف اللوت .
في حال كان الربح موجب افتح الصفقة بلوت ابتدائي .
- 09-03-2009, 01:58 PM #12
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
جازاك الله خير يا اخي الكريم على ردك السريع ده لكنني بصراحة لم افلح في فحص ربح وحجم اللوت لآخر صفقة
شوف اخي وضاح انا ارفقت لك اكسبيرت بسيط جداً قمت بتصميمه لمحاولة المضاعفات دي وهو يعتمد على الدخول عند تقاطع مؤشر الـCCI فقـــــــــــط
اكون شاكر ليك جداً جداً جداً جداً جداً إذا اضافت له بنفسك خاصية المضاعفات في حالة الخسائر دي.
أسف على الإزعاج واتمنى ان يكون طلب بسيط. وإن كان سيأخذ منك وقت ولا تريد القيام بعمله اخبرني فقط بالله عليك وبدون اي حرج والله.
Sabry Martingalling.mq4
- 09-03-2009, 02:37 PM #13
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
منتظر ردك علي اخي الكريم وضاح ....
وشاكر لك في حالة القبول او الرفض ايضاً,,,
- 09-03-2009, 06:12 PM #14
رد: استفسار صغير جداً للأخ وضاح, وجدي, د.أودي, وجميع المبرمجين
طيب !!....
برجاء من الأخوة الكرام هنا التفضل بمساعدتي في الموضوع ده ولكم جزيل الشكر
https://forum.arabictrader.com/attac...tingalling.mq4
دكتور أودي أملي فيك كبير
المواضيع المتشابهه
-
طلب صغير من الباش مهندس وجدي ( قفل الصفقات )
By alshakatan in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 13آخر مشاركة: 07-09-2009, 10:12 PM -
مؤشر للأخ وجدي .. يا ليت يتفضل ويمدد لنا مدته ..
By AL-FARIS in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 3آخر مشاركة: 20-06-2009, 01:30 AM -
الى الاخ وجدى وجميع المبرمجين ---طلب مؤشر ---من فضلكم
By الدكتور in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 6آخر مشاركة: 24-12-2008, 09:54 PM -
الى الاخ وجدي وجميع المبرمجين
By pipo in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 13آخر مشاركة: 10-12-2008, 08:40 PM -
سؤال الى الاح وضاح وجميع الاخوة
By islamway in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 6آخر مشاركة: 31-12-2007, 03:57 AM