انا اتابع دروس هذا المنتدى لمن لا اجد كيف اضيف امر ليعرف الاكسبيرت ما اذا كانت النتيجة السابقة بالربح او الخسارة ارجو افدتي
Printable View
انا اتابع دروس هذا المنتدى لمن لا اجد كيف اضيف امر ليعرف الاكسبيرت ما اذا كانت النتيجة السابقة بالربح او الخسارة ارجو افدتي
تفضل دالة لتعرف نتيجة ونوع آخر صفقة مغلقةكود 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);
}
مشكور يا استاذ جميل ولكن ليس المطلوب
انا اريد في الاكسبيرت تاعي يفتح صفقة وحدة وينتظر حتى تفاعل اخذ الربح او ايقاف الخسارة
الان كيف اعرف الصفقة لنغلقت على ربح او خسارة
واذا امكن الطريقة المثلى لتفتح صفقة واحدة فقط وننتظر اخذ الربح اوايقاف الخسارة يعني المرحلة الاولى
شكرا على المجهود و سامحني في تعبك
الدالة السابقة اذا اردت أن تعرف هل صفقتك خسرت ام كسبت ، تفضل الدالة التي تريد
وستضيف الشرط الى شروط فتح الصفقةكود 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)
عندما اضغط على التصحيح 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);
}
ما حبش يصلح ارجو التدقيق
مثال لهذا الاكسبيرت
#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);
}
اريد فقط يفتح صفقة واحدة و ربي يجازيك
الموفنجات فيها اخطاء بالتأكيد ولم افهم ماذا تريد هل تقصد 0-3-6-10-20 موفنجات ام مراتب الشموع ، اشرح ماذا تريد وسأصنع لك اكسبيرت مبسط للتطبيق .
شكرا جزيلا للاهتمام يا استاذ جميل
الاكسبيرت الذي اريده يفتح صفقة واحدة عند اي اشارة دخول لاي مؤشر من اختيارك ان شئت.. والا فالموفين افيرج او الاستوكستيك اولى (يبيع او يشري)صفقة واحدة فقط تبعا للمؤشر..
الان بعد اخذ الصفقة للربح يضاعف اللوت للصفقة الجاية...في حالة الخسارة نرجع للوت السابق...مثال بالارقام حليت صفقة ب0.1 لوت وربحت ... زاد حل وحدة ب0.2 وربحت... زاد حل وحدة 0.4 وخسرت ... الان نحل صفقة ب0.2 واذا خسرت نحل ب0.1 واذا خسرت نبقى ب 0.1 يعني ما يهبط تحت 0.1 و ما يطلع 10 صفقة متتالية بالربح يعني عند الصفقة 10 يعاود يحل الصفقة ب اللوت الاول.
انا ارجو ان تضع متغير خارجي لاخذ الربح وايقاف الخسارة وعدد الصفقات المتتالية في الربح .. اللوت.. ايضا ارجو ان يكون امتداد الملف قابل للتعديل
تقبل تحياتي يا استاذ اي إشكال اسالني فقط وساوضح
أخي اذا أردت التعلم فلتكن خطوات ولاتصعب الأمر على نفسك ، هذا اكسبيرت بسيط يبيع ويشتري مع اتجاه الشمعة المغلقة وفيها 3 دوال واحدة للبيع والثانية للشراء والثالثة للتحكم بفتح الأوردر ضمن الشروط وإن شاء الله يفيدك وبعدها تستطيع اضافة موفنج الى الشروط اوغيره ولاتستعجل فكرة المضاعفات فليس وقتها الآن .
تفضل الأكسبيرت تمت الأضافة كما طلبت .
لاعلاقة بين سعرين حتى لو كان نفس السعر ، الأكسبيرت يفتح شراء بعد شمعة صاعدة وبيع بعد شمعة هابطة .