النتائج 1 إلى 15 من 16
- 21-10-2017, 09:51 PM #1
التيك شارت لأكثر من عملة بنافذة واحدة على الميتاتريدر !!
السلام عليكم ورحمة الله تعالى وبركاته
تحياتي لكم جميعا وتحية خاصة للأستاذ والأخ أسامة " مستر دولار "
أحتاج لتيك شارت لأكثر من عملة في نافذة واحدة لمقارنتها ببعضها فهل يمكن الحصول على هذا الشيء في الميتاتريدر ؟
بارك الله بكم
- 23-10-2017, 05:38 PM #2
وعليكم السلام ورحمة الله وبركاته
مرفق مؤشر التيك شارت لأي عمله, لكن أكثر من عمله في نافذة واحدة فسوف تجد خطوط الاسعار متباعده جدا على أغلب الأزواج لأن سعر كل زوج له مقياس مختلف فمثلا سوف تجد سعر اليورو دولار 1.17 في حين الدولار ين 113.70 تخيل وضعهم في نافذة واحدة
- 23-10-2017, 07:10 PM #3
أهلا أخي الكريم أسامة كيف الحال إن شاء الله بخير
نعم هذه مشكلة فعلا وهناك مشكلة أخرى وهي كما تعلم أنه حتى يتم قراءة الكود يجب أن يتحرك السعر
هنا إن كان الزوج الذي تم وضع عليه الكود لا يتحرك فلن يتم تسجيل تحركات باقي الازواج فأصبح لدينا مشكلتين
مالحل برأيك أستاذي العزيز ؟
إن قمنا بتحويل الأسعار لنسبة مئوية مثلا ربما نحل المشكلة الأولى لكن يتبقى المشكلة الثانية
ما أريد مراقبته أستاذ أسامة حالة لاحظتها تحدث باستمرار وربما إن إستطعنا مراقبتها بشكل جيد قد ينتج لدينا إكسبرت ممتاز بصفقات شبه مضمونة والله أعلم
كما تعلم سعر الكروسات يكون بناء على معادلة رياضية بسيطة ضرب أو قسمة للأزواج الرئيسية المكونة للكروس
مثلا سعر المجنون = الباوند دولار ضرب الدولار ين صحيح
لكن هذا نظريا
لاحظت أن اغلب الأوقات لا يكون سعر الكروس مساوي لقيمة المعادلة
أريد مراقبة هذه الحالات ومعرفة كيف يتحرك الكروس عندما لايكون مساوي لقيمة المعادلة لأن الفرق أحيانا يصل لعشرة نقاط فإن كان الكروس دائما سينجذب لسعر المعادلة بحيث لو صعد فوق قيمة المعادلة سيهبط أو إن نزل أسفل قيمة المعادلة سيصعد فهنا لدينا صفقات سكالبينج ممتازة تحتاج فقط لسبريد منخفض وستكون النتائج ممتازة
لا أعرف إن تم الحديث عن هذا الموضوع سابقا أم لا ولكن أعتقد إن كانت الفكرة جديدة فهي تستحق التجربة فأرجو منك الإهتمام بها بارك الله فيك
مثلا إن كان الخط الأسود يمثل قيمة المعادلة ربما يتحرك الكروس كما يبين الخط الأحمر وينجذب له صعودا وهبوطا
بإنتظار ردك أستاذي العزيز
- 24-10-2017, 05:26 PM #4
بالنسبه للمشكلة الأولى فيمكن أن نجعل القراءة تتم كل فترة زمنيه كل ثانيه أو نصف ثانيه بدلا من كل ما يتحرك السعر
فكرة ممتازه جدا فعلا لكن تبقى مشكله العلاقه بين الأسعار.
أعتقد الحل بدلا من أن تضع أكثر من سعر زوج في نفس النافذه يمكن أن نضع سعر الزوج والسعر العادل (المفترض) لهذا الزوج عندها لن تكون هناك مشكله في إختلاف الأسعار
- 24-10-2017, 06:48 PM #5
السلام عليكم ورحمة الله تعالى وبركاته
تحياتي أستاذ أسامة
بالعكس يجب تسجيل كل تك من الازواج الثلاثة حتى نخرج بمراقبة صحيحة ويجب أن تكون الحركات الثلاثة متزامنة
الحمد لله أن الفكرة أعجبتك أرجو منك ان تهتم بها وتعد الأدوات اللازمة حاليا لمراقبة الحركة لاني ضعيف في البرمجة
يجب مراقبة كل أطراف المعادلة معا
الكروس حتى يتحرك أصلا بتجاه السعر العادل كما أسميته يجب أن يتحرك أحد أطراف المعادلة الأساسيين إن كان الباوند دولار أو الدولار ين إن كنا نتحدث عن المجنون
بمراقبة الثلاثة معا ربما نستنتج صفقات على ازواج الدولار أحد أطراف المعادلة وليس الكروس نفسه
وهذا أفضل بكثير من الكروسات لان الكروسات دائما سبريدها أعلى
==========
بخصوص مشكلة قراءة الكود مع كل تيك
أعتقد أننا نستطيع وضع كود على كل زوج من أطراف المعادلة ويقوم هذا الكود بتصدير التيكات لملف خارجي
ثم بكود رابع على نافذة مستقلة نقوم بجلب المعطيات من الملف الخارجي ونرسم الحركة للثلاث أزواج ونضيف القيمة العادلة أيضا فينتج أربع حركات
يهمنا حاليا فقط الصعود والهبوط كحركة وليس كأسعار فاعتقد ان مشكلة عدة أسعار على نافذة واحدة يمكن حلها بتحويل قيم الأسعار لقيم مئوية أو أي طريقة أخرى المهم أن تعبر الخطوط عن حركات الأزواج فقط لمراقبة مايحصل على أرض الواقع ونحاول إستنتاج طريقة عمل جيدة إن شاء الله
أرجو منك أستاذي العزيز تبني الفكرة وتجهيز هذا المؤشر لاني فعلا غير قادر على بنائه فخبرتي جدا متواضعة في البرمجة
وشكرا لك مقدما
- 24-10-2017, 08:01 PM #6
لابد تعرف المعادلات الصحيحة اخي
فانت لكل زوج لديك سعرين وليس سعر واحد0-----الاسك والبد
اذن هل اسك المجنون يساوي:
1) اسك الكيبل ضرب بد الحوت
2) اسك الكيبل ضرب اسك الحوت
3) بد الكيبل ضرب اسك الحوت
4) بد الكيبل ضرب بد الحوت
ونفس الامر لبد المجنون---هل هو:
1) اسك الكيبل ضرب بد الحوت
2) اسك الكيبل ضرب اسك الحوت
3) بد الكيبل ضرب اسك الحوت
4) بد الكيبل ضرب بد الحوت
اذا ادركت المعادلات الصحيحة تعلم انه لايمكن التباين لصالح المتداول في الاسعار--وان اي اختلال نتيجة توسع سبريد وبالتالي انعدام الجدوىآخر تعديل بواسطة فيلسوف البادية ، 24-10-2017 الساعة 08:03 PM
- 24-10-2017, 08:41 PM #7
أهلا أخي فيلسوف البادية
بصراحة هذه المرة الأولى التي أخوض فيها في هذه الأمور فهي لا تفرق كثيرا للمضارب الذي يفتح صفقاته بشكل يدوي لكن تفرق كثيرا على مايبدو في الإكسبرتات وإن شاء الله نستطيع إستخراج طريقة جيدة بالبحث والمراقبة
انا كنت أضرب بد الكيبل ب بد الدولار ين وأقارنه ببد المجنون !!
أرجو أن توضح لنا أكثر في هذه النقطة وتطلعنا عن رأيك بالفكرة
- 24-10-2017, 10:41 PM #8
- 24-10-2017, 10:57 PM #9
جزاك الله خيرا أخي وبإنتظارك عل وعسى نجد طريقة جيدة تصلح لأن تكون إكسبرت جيد
تحياتي
- 25-10-2017, 12:26 AM #10
حتى المعادلات GENERATED IN THE PROGRAM
الكود اسفل:
كود PHP:string S[] = {"EUR" ,"GBP" ,"AUD" ,"NZD" ,"USD" ,"CAD" ,"CHF" ,"JPY","XXX"};
string str;
string STATUSY[28] ;
string STATUSX[28] ;
string STATUSP[28] ;
string pairs[28] ;
string YYY,XXX,DDD,YYYXXX,FIRST,SECOND;
int D1,D2;
double BID_BID[28];
double BID_ASK[28];
double ASK_BID[28];
double ASK_ASK[28];
string Pair1[28] ;
string Pair2[28] ;
void OnTimer()
{
DDD=AccountCurrency();
for(int i=0;i<=27;i++)
{//1
STATUSP[i]="USD" ;
YYY=StringSubstr(pairs[i],0,3);
XXX=StringSubstr(pairs[i],3,3);
Pair1[i]="";
Pair2[i]="";
if(YYY!=DDD && XXX!=DDD)
{//2
for(int j=0;j<=27;j++)
{//3
if(StringSubstr(pairs[j],0,3)==YYY && StringSubstr(pairs[j],3,3)==DDD)//GBPUSD/EURUSD/AUDUSD/NZDUSD
{
STATUSY[i]="BASE"; Pair1[i]=pairs[j];
}
if(StringSubstr(pairs[j],3,3)==YYY && StringSubstr(pairs[j],0,3)==DDD)
{
STATUSY[i]="QOUTE"; Pair1[i]=pairs[j];
}
if(StringSubstr(pairs[j],0,3)==XXX && StringSubstr(pairs[j],3,3)==DDD)
{
STATUSX[i]="BASE"; Pair2[i]=pairs[j];
}
if(StringSubstr(pairs[j],3,3)==XXX && StringSubstr(pairs[j],0,3)==DDD)
{
STATUSX[i]="QOUTE"; Pair2[i]=pairs[j];
}
}//3
if(STATUSY[i]=="BASE" && STATUSX[i]=="BASE") STATUSP[i]="D_D";
if(STATUSY[i]=="BASE" && STATUSX[i]=="QOUTE") STATUSP[i]="D_M";
if(STATUSY[i]=="QOUTE" && STATUSX[i]=="BASE") STATUSP[i]="I_M";
if(STATUSY[i]=="QOUTE" && STATUSX[i]=="QOUTE") STATUSP[i]="I_D";
}
}
for(j=0;j<=27;j++)
{
color clr=clrYellow;
if(STATUSP[j]=="D_M") clr=clrOrange;
if(STATUSP[j]=="D_D") clr=clrLime;
if(STATUSP[j]=="I_D") clr=clrAqua;
if(STATUSP[j]=="I_M") clr=clrWhite;
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"BID",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID",OBJPROP_XDISTANCE,10);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"BID",MarketInfo(pairs[j],MODE_BID),10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"ASK",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK",OBJPROP_XDISTANCE,70);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"ASK",MarketInfo(pairs[j],MODE_ASK),10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j),OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j),OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j),OBJPROP_XDISTANCE,130);
ObjectSet( StringSubstr(pairs[j],0,6)+(j),OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j),pairs[j],10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"=",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"=",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"=",OBJPROP_XDISTANCE,185);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"=",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"=","=",10,"TAHOMA",clr);
if(STATUSP[j]=="D_M")
{
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_XDISTANCE,200);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"pair1",Pair1[j],10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_XDISTANCE,250);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"pair2"," * "+Pair2[j],10,"TAHOMA",clr);
}
if(STATUSP[j]=="D_D")
{
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_XDISTANCE,200);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"pair1",Pair1[j],10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_XDISTANCE,250);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"pair2"," / "+Pair2[j],10,"TAHOMA",clr);
} if(STATUSP[j]=="I_D")
{
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_XDISTANCE,200);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair1",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"pair1",Pair2[j],10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_XDISTANCE,250);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"pair2",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"pair2"," / "+Pair1[j],10,"TAHOMA",clr);
}
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"STATUS",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"STATUS",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"STATUS",OBJPROP_XDISTANCE,330);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"STATUS",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"STATUS",STATUSP[j],10,"TAHOMA",clr);
if(STATUSP[j]=="D_M")
{
BID_BID[j]=MarketInfo(Pair1[j],MODE_BID)*MarketInfo(Pair2[j],MODE_BID);
BID_ASK[j]=MarketInfo(Pair1[j],MODE_BID)*MarketInfo(Pair2[j],MODE_ASK);
ASK_BID[j]=MarketInfo(Pair1[j],MODE_ASK)*MarketInfo(Pair2[j],MODE_BID);
ASK_ASK[j]=MarketInfo(Pair1[j],MODE_ASK)*MarketInfo(Pair2[j],MODE_ASK);
}
if(STATUSP[j]=="D_D")
{
BID_BID[j]=MarketInfo(Pair1[j],MODE_BID)/MarketInfo(Pair2[j],MODE_BID);
BID_ASK[j]=MarketInfo(Pair1[j],MODE_BID)/MarketInfo(Pair2[j],MODE_ASK);
ASK_BID[j]=MarketInfo(Pair1[j],MODE_ASK)/MarketInfo(Pair2[j],MODE_BID);
ASK_ASK[j]=MarketInfo(Pair1[j],MODE_ASK)/MarketInfo(Pair2[j],MODE_ASK);
}
if(STATUSP[j]=="I_D")
{
BID_BID[j]=MarketInfo(Pair2[j],MODE_BID)/MarketInfo(Pair1[j],MODE_BID);
BID_ASK[j]=MarketInfo(Pair2[j],MODE_BID)/MarketInfo(Pair1[j],MODE_ASK);
ASK_BID[j]=MarketInfo(Pair2[j],MODE_ASK)/MarketInfo(Pair1[j],MODE_BID);
ASK_ASK[j]=MarketInfo(Pair2[j],MODE_ASK)/MarketInfo(Pair1[j],MODE_ASK);
}
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"BID_BID",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID_BID",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID_BID",OBJPROP_XDISTANCE,380);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID_BID",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"BID_BID",DoubleToString(BID_BID[j],MarketInfo(pairs[j],MODE_DIGITS)),10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"BID_ASK",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID_ASK",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID_ASK",OBJPROP_XDISTANCE,440);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"BID_ASK",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"BID_ASK",DoubleToString(BID_ASK[j],MarketInfo(pairs[j],MODE_DIGITS)),10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"ASK_BID",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK_BID",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK_BID",OBJPROP_XDISTANCE,500);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK_BID",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"ASK_BID",DoubleToString(ASK_BID[j],MarketInfo(pairs[j],MODE_DIGITS)),10,"TAHOMA",clr);
ObjectCreate( StringSubstr(pairs[j],0,6)+(j)+"ASK_ASK",OBJ_LABEL,0,0,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK_ASK",OBJPROP_CORNER,0);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK_ASK",OBJPROP_XDISTANCE,560);
ObjectSet( StringSubstr(pairs[j],0,6)+(j)+"ASK_ASK",OBJPROP_YDISTANCE,30+13*j);
ObjectSetText( StringSubstr(pairs[j],0,6)+(j)+"ASK_ASK",DoubleToString(ASK_ASK[j],MarketInfo(pairs[j],MODE_DIGITS)),10,"TAHOMA",clr);
}
}
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
if(sparam=="CCCCCCCCCC") {;}
}
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
EventSetTimer(1);
str =StringSubstr(Symbol(),6,20);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int j=-1;
for(int i=0;i<=6;i++)
{
for(int k=i+1;k<=7;k++)
{
j++;
pairs[j]=S[i]+S[k]+str;
}
}
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
ObjectsDeleteAll();}
- 25-10-2017, 12:27 AM #11
قارن الاسعار المحسوبة الاربعة اقصى اليمين بالاسعار الحقيقية اقصى اليسار
اذا وضعت الماوس على السعر تعرف هل هو بد بد ام بد اسك ام اسك اسك الخ
ضع في الاعتبار المارك-اب حوالي 0.25 نقطة
- 25-10-2017, 12:34 AM #12
فمن جهة الرياضيات اخي ومن جهة المنطق والعقل قبل تحقيق اي معلومة
اي زوج قسمة: البد يساوي بد1 تقسيم اسك2 (الرقم الاصغرتقسيم الرقم الاكبر)
اي زوج ضرب: البد يساوي بد1 ضرب بد2 (والاسك: اسك1 ضرب اسك 2)
انت حسب الموضوع ترى البد ولكن السبريد باعتبار الاسك
وبالتالي ماتسعى له في الموضوع متعذر ولا مجال ابدا
- 25-10-2017, 11:00 AM #13
جزاك الله خير أخي على المعلومات القيمة
الموضوع ليس فقط سبريد أخي فالفرق وصل إلى عشر نقط في أحد المرات التي تابعت فيها القيم !!
أرجو منك إن كنت متفرغا برمجة طلبي بحيث يتم رسم خطوط بيانية لحركة التيك شارت للأزواج الثلاثة مع خط بياني يمثل قيمة المعادلة وتكون الخطوط الأربعة في نافذة واحدة ومتزامنة الحركة
وشكرا مقدما
- 25-10-2017, 01:54 PM #14
ماهي المعادلتين من المعادلات الاربع اعلاه-معادلة الاسك ومعادلة البد
- 25-10-2017, 02:37 PM #15