النتائج 1 إلى 15 من 18
- 28-02-2013, 07:40 PM #1
كيف تضع امر في الاكسبيرت ليتعرف على نتيجة الصفقة السابقة؟
انا اتابع دروس هذا المنتدى لمن لا اجد كيف اضيف امر ليعرف الاكسبيرت ما اذا كانت النتيجة السابقة بالربح او الخسارة ارجو افدتي
- 28-02-2013, 09:29 PM #2
رد:كيف تضع امر في الاكسبيرت ليتعرف على نتيجة الصفقة السابقة؟
تفضل دالة لتعرف نتيجة ونوع آخر صفقة مغلقة
كود PHP:double LastCloseOrderProfitt(){
for(int i=OrdersHistoryTotal();i<=0;i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo){
return(OrderProfit());
}
}
return(0);
}
- 28-02-2013, 10:06 PM #3
رد:كيف تضع امر في الاكسبيرت ليتعرف على نتيجة الصفقة السابقة؟
مشكور يا استاذ جميل ولكن ليس المطلوب
انا اريد في الاكسبيرت تاعي يفتح صفقة وحدة وينتظر حتى تفاعل اخذ الربح او ايقاف الخسارة
الان كيف اعرف الصفقة لنغلقت على ربح او خسارة
واذا امكن الطريقة المثلى لتفتح صفقة واحدة فقط وننتظر اخذ الربح اوايقاف الخسارة يعني المرحلة الاولى
شكرا على المجهود و سامحني في تعبك
- 28-02-2013, 10:21 PM #4
رد:كيف تضع امر في الاكسبيرت ليتعرف على نتيجة الصفقة السابقة؟
الدالة السابقة اذا اردت أن تعرف هل صفقتك خسرت ام كسبت ، تفضل الدالة التي تريد
كود PHP:int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNo){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if( orderscnt()<1)
- 01-03-2013, 01:24 AM #5
عندما اضغط على التصحيح compile لا ارى اي خطا لكن الاكسبيرت لا يفتح صفقات
انا ارجو من حضرتك ان تساعدني ف تصميم هذا الاكسبيرت البسيط
1*نقوم بفتح صفقة وننتظر حتى تاخذ الربح او الخسارة
اذا ربح نضاعف اللوت.... والا نرجع للوت السابق فقط
يعني حليت صفقة 1 لوت( في حالة الربح الصفقة الجاية 2 لوت...في حال الربح 4 لوت في حال الربح ....8 لوت ...هنا في حال الخسارة لا نرجع الى اللوت الاول لكن الى 4
هذا الاكسبيرت لي خرجلي اخطاء
extern int TP=10;
extern int mm=1000;
extern int SL=10;
extern double Lots=0.1;
extern int MagicNo=123;
int count=1, a=1;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int orderscnt=0;
for ( int i=0; i<2; i++){
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,1000,0, Blue);
orderscnt++;}
if( orderscnt==1)
{
int cnt=0;
for(int j =0;j<OrdersTotal();i++){
if(OrderSelect (SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNo){
cnt++;
}
}
}
return(cnt);
}
while (a<5)
if (mm>1000)
{
int lots=lots*2;
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,1002,0, Blue);
}
a++;
if (mm<1000) {
a--;
}
return(10000);
}
- 01-03-2013, 08:45 PM #6
ما حبش يصلح ارجو التدقيق
مثال لهذا الاكسبيرت
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern int tp=120;
extern int sl=11;
extern double lot=0.01;
extern int zed=123;
double mkd;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int n1, n2, as=0;
double h= Ask , p= Bid+tp*Point, s=Ask-sl*Point;
double M0,M3,M6,M10,M20;
M0=iMA(NULL, 0, 40, 0, 0, 0,0);
M3=iMA(NULL, 0, 40, 0, 0, 0,3);
M6=iMA(NULL, 0, 40, 0, 0, 0,6);
M10=iMA(NULL, 0, 40, 0, 0, 0,10);
M20=iMA(NULL, 0, 40, 0, 0, 0,20);
if(M0>=M3&&M3>=M6&&M6>=M10&&M10>=M20){
double p1= iMA(NULL, 0, 40, 0, 0, 0,3);
double p2= iMA(NULL, 0, 5, 0, 1, 0,3);
double p4= iMA(NULL, 0, 40, 0, 0, 0,4);
double p3= iMA(NULL, 0, 5, 0, 1, 0,4);
if(p2>p1&&p3<p4){
if(Close[1]>iMA(NULL, 0, 5, 0, 1, 0,1)&&Close[2]>iMA(NULL, 0, 5, 0, 1, 0,2)){
OrderSend(Symbol(),OP_BUY,lot,h,3,s,p,"hi man",123,0,Blue);
}}} if(M0<=M3&&M3<=M6&&M6<=M10&&M10<=M20){
if(p2<p1&&p3>p4){ if(Close[1]<iMA(NULL, 0, 5, 0, 1, 0,1)&&Close[2]<iMA(NULL, 0, 5, 0, 1, 0,2)){
OrderSend(Symbol(),OP_SELL,lot,h,3,s,p,"hi man",123,0,Blue);
}}
}
int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber() == int MagicNo)
{
cnt++;
}
}
}
}
return(cnt);
}
اريد فقط يفتح صفقة واحدة و ربي يجازيك
- 03-03-2013, 01:39 AM #7
الموفنجات فيها اخطاء بالتأكيد ولم افهم ماذا تريد هل تقصد 0-3-6-10-20 موفنجات ام مراتب الشموع ، اشرح ماذا تريد وسأصنع لك اكسبيرت مبسط للتطبيق .
- 03-03-2013, 03:02 AM #8
شكرا جزيلا للاهتمام يا استاذ جميل
الاكسبيرت الذي اريده يفتح صفقة واحدة عند اي اشارة دخول لاي مؤشر من اختيارك ان شئت.. والا فالموفين افيرج او الاستوكستيك اولى (يبيع او يشري)صفقة واحدة فقط تبعا للمؤشر..
الان بعد اخذ الصفقة للربح يضاعف اللوت للصفقة الجاية...في حالة الخسارة نرجع للوت السابق...مثال بالارقام حليت صفقة ب0.1 لوت وربحت ... زاد حل وحدة ب0.2 وربحت... زاد حل وحدة 0.4 وخسرت ... الان نحل صفقة ب0.2 واذا خسرت نحل ب0.1 واذا خسرت نبقى ب 0.1 يعني ما يهبط تحت 0.1 و ما يطلع 10 صفقة متتالية بالربح يعني عند الصفقة 10 يعاود يحل الصفقة ب اللوت الاول.
انا ارجو ان تضع متغير خارجي لاخذ الربح وايقاف الخسارة وعدد الصفقات المتتالية في الربح .. اللوت.. ايضا ارجو ان يكون امتداد الملف قابل للتعديل
تقبل تحياتي يا استاذ اي إشكال اسالني فقط وساوضح
- 03-03-2013, 11:00 AM #9
رد:كيف تضع امر في الاكسبيرت ليتعرف على نتيجة الصفقة السابقة؟
أخي اذا أردت التعلم فلتكن خطوات ولاتصعب الأمر على نفسك ، هذا اكسبيرت بسيط يبيع ويشتري مع اتجاه الشمعة المغلقة وفيها 3 دوال واحدة للبيع والثانية للشراء والثالثة للتحكم بفتح الأوردر ضمن الشروط وإن شاء الله يفيدك وبعدها تستطيع اضافة موفنج الى الشروط اوغيره ولاتستعجل فكرة المضاعفات فليس وقتها الآن .
- 03-03-2013, 02:41 PM #10
آخر تعديل بواسطة solidhdida ، 03-03-2013 الساعة 02:50 PM
- 10-03-2013, 06:15 PM #11
- 12-03-2013, 02:34 PM #12
رد:كيف تضع امر في الاكسبيرت ليتعرف على نتيجة الصفقة السابقة؟
تفضل الأكسبيرت تمت الأضافة كما طلبت .
- 13-03-2013, 01:34 AM #13
- 18-03-2013, 05:48 PM #14
- 19-03-2013, 11:21 AM #15
لاعلاقة بين سعرين حتى لو كان نفس السعر ، الأكسبيرت يفتح شراء بعد شمعة صاعدة وبيع بعد شمعة هابطة .