اخي اسامة او فيلسوف البادية في انتظار الجواب بارك الله فيكم
Printable View
اخي اسامة او فيلسوف البادية في انتظار الجواب بارك الله فيكم
باستعمال ما تفضلت به اخي فيلسوف للأسف لم يحل الاشكال .
النتيجة في الصورة أصفار بامتياز :doh:
التعديل الفيلسوفي مع الصورة
الملف المرفق 495594كود PHP:
long ID;
int m;
//ushort m;
string rec="Rectangle";
for(ID = ChartFirst(); ID != -1; ID = ChartNext(ID)){
for( m=-0; m<ObjectsTotal(ID,0,-1); m++) {
if(StringFind(ObjectName(ID,m),rec,0)==0){
string AllChart = ChartSymbol(ID);
string ZONE=StringSubstr(ObjectName(ID,m),0,0);
double h = NormalizeDouble(ObjectGet(ZONE,OBJPROP_PRICE1),5);
double l = NormalizeDouble(ObjectGet(ZONE,OBJPROP_PRICE2),5);
Print(l+" "+h+" "+ID+" "+AllChart+" ");
//Print(ChartID());
}}}
أما بالنسبة للحل الذي تفضل به الأخ اسامة الصورة تبين النتيجة :015:
التعديل الدولاري مع الصورة
الملف المرفق 495596كود PHP:
long ID;
//int m;
ushort m;
string rec="Rectangle";
for(ID = ChartFirst(); ID != -1; ID = ChartNext(ID)){
for( m=-0; m<ObjectsTotal(ID,0,-1); m++) {
if(StringFind(ObjectName(ID,m),rec,0)==0){
string AllChart = ChartSymbol(ID);
string ZONE=StringSubstr(ObjectName(ID,m),0,0);
double h = NormalizeDouble(ObjectGetDouble(ID,ZONE,OBJPROP_PRICE1),5);
double l = NormalizeDouble(ObjectGetDouble(ID,ZONE,OBJPROP_PRICE2),5);
Print(l+" "+h+" "+ID+" "+AllChart+" ");
//Print(ChartID());
}}}
اريد تطوير الفكرة ان أمكن هو البحث عن اسم الكائن ليس على الشارتات المفعلة فقط انما على الماركت الفعل لنقو اننا سنستعمل اسهل داله وهي
الفكره هي عند البحث لو وجد زوج به الكائن سيعطينا قيمه لنقول 1 اما غير ذلك يعطينا 0 هل ممكن تنفيذها.كود PHP:
for(int i=0;i<SymbolsTotal(true);i++)
السلام عليكم أظنني وجدت الحل لكني أحتاج لتدخل من سيادتكم بخصوص كيفية معرفة رقم شمعة أول افتتاح في الشارت عند سحبه لأقصى اليسار
المشكل كان عندي لما قمت بمحاولة رسم ترند يومي يبدأ من افتتاح اليوم حتى نهاية اليوم ويكون بين الهاي واللو لهذا اليوم.. وعند محاولتي تم رسم ترندات متداخلة وذلك بسبب أنه في كل شمعة يرسم ترند على مدى 24 شمعة وهذا هو ما كان سبب تداخل الترندات .. مثال الصورة رقم 3 .. وهذا هو الكود
بعد هذا المشكل قمت بجعل القيمة i تتحرك بمقدار شموع اليوم وهو 24 في فريم الساعة وكانت النتيجة جميلة لكن الترند في بعض الاحيان كان يدخل في اليوم الثاني .. انظروا الصورة رقم 2. وهذا هو التعديل البسيط:كود PHP:
for( int i=0; i<Bars ; i++)
{
int highest=iHighest(NULL,0,MODE_HIGH,24,i);
int lowest=iLowest (NULL,0,MODE_LOW,24,i);
double high1=iHigh(NULL,0,highest);
double low1=iLow (NULL,0,lowest);
datetime highTime=iTime(NULL,0,highest);
datetime lowTime=iTime(NULL,0,lowest);
ObjectCreate(0,"Open "+string(i),OBJ_TREND,0,0,0);
ObjectSet("Open "+string(i),OBJPROP_TIME1,highTime);
ObjectSet("Open "+string(i),OBJPROP_TIME2,lowTime);
ObjectSet("Open "+string(i),OBJPROP_PRICE1,high1);
ObjectSet("Open "+string(i),OBJPROP_PRICE2,low1);
ObjectSet("Open "+string(i),OBJPROP_WIDTH,1);
ObjectSet("Open "+string(i),OBJPROP_COLOR,clrWhite);
ObjectSet("Open "+string(i),OBJPROP_RAY_RIGHT,false);
}
في الأخير قمت بعكس حركة الحلقة وكانت النتيجة رائعة لكن لم تكن دقيقة بسبب أن آخر افتتاح كان قبله شموع وهي التي أظن ان المشكل كان بسببها .. الصورة رقم 1. وهذا هو التعديل:كود PHP:
for( int i=0; i<Bars ; i=i+24)
أتمنى طريقة لمعرفة رقم آخر افتتاح موضح بالصورة حتى أبدأ الحساب منه وإن كانت هناك طريقة أفضل أتمنى ارفاقها وشكرا لكمكود PHP:
for( int i=Bars; i>0 ; i=i-24)
في الطريقة الثانية والثالثة تم حل مشكل الترندات المتداخلة لكنهما لا يحلان مشكل دخول الترند في اليوم الثاني وبالتالي أحتاج طريقة لجعل الكود يبدأ من شمعة افتتاح معينة حتى يتم رسم جميع الترندات في الايام المخصصة لها
حسب ما فهمت المشكله لديك في تحديد أول شمعة لبداية اليوم وحسب التايم فريم للشارت الحالي
يمكنك إستخدام الكود التالي لمعرفة رقم الشمعة بداية ونهاية اليوم
وسيكون الكود كامل كالتاليكود PHP:
int day_open_bar=iBarShift(Symbol(),0,iTime(Symbol(),1440,i),false);
int day_close_bar=iBarShift(Symbol(),0,iTime(Symbol(),1440,i-1),false);
كود PHP:
for(int i=iBars(Symbol(),1440)-1;i>0;i--)
{
int day_open_bar=iBarShift(Symbol(),0,iTime(Symbol(),1440,i),false);
int day_close_bar=iBarShift(Symbol(),0,iTime(Symbol(),1440,i-1),false);
int highest=iHighest(NULL,0,MODE_HIGH,day_open_bar-day_close_bar+1,day_close_bar);
int lowest=iLowest (NULL,0,MODE_LOW,day_open_bar-day_close_bar+1,day_close_bar);
double high1=iHigh(NULL,0,highest);
double low1=iLow (NULL,0,lowest);
datetime highTime=iTime(NULL,0,highest);
datetime lowTime=iTime(NULL,0,lowest);
ObjectCreate(0,"Open "+string(i),OBJ_TREND,0,0,0);
ObjectSet("Open "+string(i),OBJPROP_TIME1,highTime);
ObjectSet("Open "+string(i),OBJPROP_TIME2,lowTime);
ObjectSet("Open "+string(i),OBJPROP_PRICE1,high1);
ObjectSet("Open "+string(i),OBJPROP_PRICE2,low1);
ObjectSet("Open "+string(i),OBJPROP_WIDTH,1);
ObjectSet("Open "+string(i),OBJPROP_COLOR,clrWhite);
ObjectSet("Open "+string(i),OBJPROP_RAY_RIGHT,false);
}
السلام عليكم
منفضلكم كود إغلاق الصفقات (MR.dollar) أترجاكم محتاجه
شرح : عندي إكسبيرت يفتح الصفقات بالمضاعفة عندما يحقق الربح تغلق الصفقات و يفتح صفقات أخرى
طلب الكود : أريد كود فيه "false" و"true"
حيت عند عمل "true" (حتى وإن كان فاتح الصفقات من قبل) أن يستمر السكريبت في فتح الصفقات ولكن بعد أن يغلق الصفقات لا يفتحها مرة أخرى أي يتوقف عن العمل
و إذا و ضعت "false" يبقى عادي يفتح الصفقات بعد أن يغلقها
وجزاك الله خيرا
و أيضا من فضلك نفس الكود لهذا السكريبت
وعليكم السلام ورحمة الله وبركاته
تفضل هذا مثال
كود PHP:
void CloseTwoOrders()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
int ticket_b=OrderTicket();
double pips_b=Bid-OrderOpenPrice()/Point;
double lots_b=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY)
{
for(int j=OrdersTotal()-1;j>=0;j--)
{
bool select=OrderSelect(j,SELECT_BY_POS,MODE_TRADES);
int ticket_s=OrderTicket();
double pips_s=OrderOpenPrice()-Ask/Point;
double lots_s=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_SELL)
{
if(pips_b+pips_s>=10)
{
bool close_b=OrderClose(ticket_b,lots_b,Bid,3);
bool close_s=OrderClose(ticket_s,lots_s,Ask,3);
break;
}
}
}
}
}
}
السلام عليكم
مرحبا استاذ اسامه
اتمنى انك بخير وصحه وعافيه ربي يسعدك :)
استفسار بعيداً عن الميتاتريدر
لو كان عندي بيانات تاريخية ثلاثة أشهر( هاي - لو - اعلى - ادنى )
كيف يمكنني جلب قيمة مؤشر الزقزاق ZigZag حسابياً
مثلاً أريد قيمة الزقزاق z2 , z5 , z8 ...
----------
أُريد فقط معرفتها حسابياً " كيف ُتحسب وتعمل "
وجزاك الله خير
اخوك :)
اسامة وبقية الزملاء
السلام عليكم
هل يوجد دالة اصلية مباشرة لمعرفة ربح الصفقات المغلقة في الصورة في صفحة هيستوري--مثل OrderProfit في صفحة تريد؟؟
وايضا هل يوجد دالة مباشرة للايداع Deposit