النتائج 1 إلى 11 من 11
- 27-11-2014, 04:42 PM #1
هل يمكن إجراء العمليات الحسابية على الزمن ؟؟؟
السلام عليكم ورحمة الله تعالى وبركاته
لو جبت توقيت فتح آخر صفقة مثلا وعايز أحط شرط مايفتحش صفقة جديدة إلا بعد 10 دقايق من توقيت فتح آخر صفقة
فازاي الحكاية دي تتعمل
وشكرا مقدما
- 28-11-2014, 02:30 AM #2
حسب سؤالك يوجد طريقتين
1- إنك تعرف متغير مثلا int time وتديله قيمة الوقت الحالي عند إفتتاح العملية الأولى
وتضع في شروط فتح الصفقة أن يكون الوقت الحالي أكبر من المتغير بـ 10 دقايق ( 600 ثانية )
2- الطريقة الثانية تعمل دالة تعود بوقت إفتتاح أخر عملية وتضع في شروط فتح الصفقة أن يكون الوقت الحالي أكبر منها بـ 600 ثانية
كود PHP:
int time;// خارج الدوال
int start()
{
if(/* شروط الدخول && */ TimeCurrent()>=time+600){
//OrderSend
time=TimeCurrent();// بالتالي سيأخذ المتغير قيمة الوقت عند فتح صفقة جديدة
}
return(0);
}
- 28-11-2014, 08:30 PM #3
تسلم إيديك أخي الكريم
المشكلة إني مبتدأ بالبرمجة ودوال الوقت تحديدا لم أختبرها من قبل
سأقوم بالتجربة وأعود إليك ياغالي
تحياتي
- 28-11-2014, 09:25 PM #4
جربت ياغالي وإتضحلي إن الدالة دي بتتعامل مع الدقايق بس
يعني أقل فارق هيكون 1 دقيقة بين الصفقة والتانية
طيب لو عايز أتعامل بالثواني بحيث مثلا يكون الفارق بين الصفقة والتانية مثلا 30 ثانية
وبما إننا فيها حاجة تانية بعد إذنك
لو عايز أفتح صفقة بحسابي إلي الإكسبيرت موجود عليه وعايز أفتح نفس الصفقة بحساب تاني بنفس الشركة يعني نفس السيرفر واليوزر والباس موجودين
برضه دي تتعمل إزاي
وشكرا ليك مقدما
- 28-11-2014, 09:27 PM #5
وياريت مشاركتك الـ 1000 تكون عندي
- 28-11-2014, 10:01 PM #6
ههههههه أه فعلا المشاركة الـ 1000 .. أنا أول مرة أخد بالي من مشاركاتي
بص يا أخي TimeCurrent تعود بالوقت الحالي بالثواني مع كل تكة للسعر
يعني لو عملت شرط إن يكون فرق الوقت 30 ثانية .. ممكن السعر ما يتحركش لغاية مثلا 35 -40 - 50 ثانية
بس لازم الأمر هيتنفذ أول ما السعر يتحرك .. لإن الإكسبيرتات بتتنفذ Every tick
المهم عشان تتأكد من كلامي إستخدم الأمر Comment لعرض الوقت ومعاه في نفس الوقت تنفيذ أمر وليكن زيادة متغير عدد صحيح
بالشكل ده
كود PHP:datetime Stime;//خارج الدوال
int S;// خارج الدوال
int start()
{
if(TimeCurrent()>=Stime+30)
{
S++;
Comment(IntegerToString(S),"\n",TimeToString(TimeCurrent(),TIME_MINUTES|TIME_SECONDS));
Stime=TimeCurrent();
}
return(0);
}
ده موضوع كبير ومحتاج إلي خبرة طويلة في مجال البرمجة عشان تنسخ العمليات بين منصتين
محتاج أولا إكسبيرت على كل منصة وأحدهم ينشئ ملف .txt أو يقوم بالكتابة على ملف إكسيل يكون مفتوح
والإكسبيرت الأخر ينقل من الملف العمليات المنسوخة
لو حبيت تاخد فكرة أكتر ممكن تطلع على إسكربت أستاذ أسامة لنسخ الصفقات بين منصتين
https://forum.arabictrader.com/t200487.html
- 29-11-2014, 09:43 PM #7
السلام عليكم ورحمة الله تعالى وبركاته
والله مش عارف أقلك إيه غير إني بستخدم الإصدار الجديد من الميتا إيديتور وإنت بتستخدم الإصدار القديم معقولة هو ده السبب
لسه اقل فرق بين الصفقة والتانية 1 دقيقة
- 29-11-2014, 10:11 PM #8
أخي أنا أيضا أستخدم الميتا إيدتور الجديد ولكن بستخدم int start() مجرد توضيح لمكان الكود
ياريت ترفق صورة لمكان وضعك للكود
- 01-12-2014, 01:03 PM #9
السلام عليكم ورحمة الله تعالى وبركاته
الظاهر ياغالي إن الخطأ كان بالبيانات التاريخية إلي عندي أو حاجة زي كده
لكن جربته دلوقتي لايف والحمد لله شغال زي الفل وآدي الكود الأولي
كود PHP://+------------------------------------------------------------------+
//| Test 1.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
int time;
void OnTick()
{
//---
if(OrdersTotal()<=3 && TimeCurrent()>=time+30)
{
OrderSend(Symbol(),OP_BUY,0.1,Ask,0,0,0,"",0,0,clrRed);
time=TimeCurrent();
}
Comment(TimeCurrent(),TIME_MINUTES|TIME_SECONDS);
}
//+------------------------------------------------------------------+
تحياتي
- 01-12-2014, 02:40 PM #10
اخي الصورة المرفقة العمليات المنفذة بالكود إللي إنت أرفقته بدون أي تعديل
العملية الأولى 27:49
العملية الثانية 28:19 --- ( 30 ثانية )
العملية الثالثة 28:55 --- ( 36 ثانية - تأخر 6 ثواني لتوقف السعر )
العملية الرابعة 29:25 --- ( 30 ثانية )
بصراحة مش عارف المشكلة عندك من إية
جرب أخي على عملة تكون حركتها سريعة شوية ذي المجنون .. وتكون منصة 5 أرقام
- 01-12-2014, 04:50 PM #11
لا ياغالي تمام مافيش مشاكل والحمد لله
دلوقتي باقي موضوع نسخ الصفقات وانا طرحت سؤال في موضوع الاستاذ اسامة ياريت انت برضه تتطلع عليه وتقول رايك
تحياتي