اليي بين رمز القسمة لما اكتبها تكتب على شكل تعليق ايضا بما اعرف الدالة التي ارفقتها ordersnt
Printable View
هذه دوال البيع والشراء وهي اساس اي اكسبيرت ويفترض انك عارفها لأنك سألت عن شي لاحق .
اذا امكنك استاذ جميل ماذا اغير حتى يفتح الاكسبيرت صفقة كلما تحقق الشرط
int orderscntt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNo&&OrderType()==type||ty pe==-1){
cnt++;
}
قصدت هل التغيير يكون على هذا الدالة لاجعل الاكسبيرت يفتح صفقة كل ما تحقق الشرط
ماذا اغير؟ OrdersTotal? ام ماذا ارجو المساعدة
استخدم هذه الدالة ستسمح بفتح صفقة واحدة فقط
كود 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);
}
هذه الحلقة ليست هي الشرط لكن نستخدم نتيجتها في الشروط وانت الذي تحدد الشروط وماذا تريد مثلا ان نقول اذا اغلقت شمعة صاعدة وكان الصفقات المفتوحة صفر نفتح صفقة شراء وهكذا وقد كتبت لك الشرط في مشاركة سابقة . ويوجد في منصات الميتا تريدر اكسبيرتين واحد للماكد والثاني للموفنج اقراء الكود وستجد فيه الشروط .
فهمتك يا استاذ جميل بارك الله فيك
قلت اذا اغلقت شمعة صاعدة وكانت الصفقات المفتوحة صفر يفتح شراء لكن لا يفتح عندما تكون صفقة مفتوحة صحيح؟ اريده ان يفتح اذا كانت الشمعة صاعدة وتوجد صفقات مفتوحة ...ممكن الدالة التي تسمح ببرمجت اكسبيرت على هذا النحو
ومشكور والله انت
الفكرة الرئيسيه في إمكانية تحميل الإميل على الجهاز بإستخدام اي برنامج ثم قرائتها ستصبح سهله بإستخدام الميتاتريدر
بعد البحث وجدت موضوع مفيد جدا لكود يمكن منه قراءة الإميل والإضافه المفروض أن يقوم البرنامج بكتابة الإميل في ملف تكست . عندها قراءة الملف بإستخدام الميتاتريدر ستكون سهله
هذا الرابط
http://www.programminghelp.com/progr...k-pt-1-of-3-c/
لكن ما زلت أحاول أن أرى مزايا هذه الطريقه وفهمها
في هذه الحاله لن تحتاج إلى دالة حساب عدد الصفقات
فقط ستضع الشروط ثم يمكنك وضع شرط أن لا يفتح إلا صفقه واحده فقط مع تحقق كل شرط في الشمعه
مثال
قم بتعريف متغير datetime
ثم ستضع من ضمن شروط الدخول في الصفقهكود PHP:
static datetime Time0;
وعند تحقق الشرط وفتح الصفقه سوف تجعلكود PHP:
Time0!=Time[0]
وبالتالي لن يفتح إلا صفقه واحده فقط في الشمعه عند تحقق الشرط ولن يفتح صفقة أخرى إلا بعد تغير الشمعه وتحقق شروط جديدهكود PHP:
Time0=Time[0];
//+------------------------------------------------------------------+
//|Vortex Indicator.mq4 |
//|From the January 2010 issue of Technical Analysis of Stocks & |
//|Commodities |
//+------------------------------------------------------------------+
#property copyright "Copyright 2009 under Creative Commons BY-SA License by Neil D. Rosenthal"
#property link "http://creativecommons.org/licenses/by-sa/3.0/"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
//---- Input parameters
extern int VI_Length=14;
//---- Buffers
double PlusVI[]; //VI+ : + Vortex Indicator buffer
double MinusVI[]; //VI- : - Vortex Indicator buffer
double PlusVM[]; //VM+ : + Vortex Movement buffer
double MinusVM[]; //VM- : - Vorext Movement buffer
double SumPlusVM[]; //Sum of VI_Length PlusVM values
double SumMinusVM[]; //Sum of VI_Length MinusVM values
double SumTR[]; //True Range buffer
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
IndicatorBuffers(7);
IndicatorDigits(Digits);
//---- Set visible buffer properties
SetIndexBuffer(0,PlusVI);
SetIndexBuffer(1,MinusVI);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexLabel(0,"PlusVI(" + VI_Length + ")");
SetIndexLabel(1,"MinusVI(" + VI_Length + ")");
SetIndexDrawBegin(0,VI_Length);
SetIndexDrawBegin(1,VI_Length);
//---- Set indices of caching buffers
SetIndexBuffer(2,PlusVM);
SetIndexBuffer(3,MinusVM);
SetIndexBuffer(4,SumPlusVM);
SetIndexBuffer(5,SumMinusVM);
SetIndexBuffer(6,SumTR);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int Limit;
int CountedBars = IndicatorCounted();
//---- Check for possible errors
if(CountedBars < 0) return(-1);
//---- Last counted bar will be recounted
if(CountedBars > 0) CountedBars--;
Limit = Bars - CountedBars;
//---- Clear caching buffers
for(int i = 0; i < Limit; i++)
{
SumPlusVM[i] = 0;
SumMinusVM[i] = 0;
SumTR[i]= 0;
}
//---- Store the values of PlusVM and MinusVM
for(i = 0; i < Limit; i++)
{
//PlusVM = |Today's High - Yesterday's Low|
PlusVM[i] = MathAbs(High[i] - Low[i + 1]);
//MinusVM = |Today's Low - Yesterday's High|
MinusVM[i] = MathAbs(Low[i] - High[i +1]);
}
//---- Sum VI_Length values of PlusVM, MinusVM and the True Range
for(i = 0; i < Limit; i++)
{
for(int j = 0; j <= VI_Length - 1; j++)
{
SumPlusVM[i] += PlusVM[i + j];
SumMinusVM[i] += MinusVM[i + j];
SumTR[i] += iATR(NULL,0,1,i + j); //Sum VI_Length values of the True Range by using a 1-period ATR
}
}
//---- Draw the indicator
for(i = 0; i < Limit; i++)
{
PlusVI[i] = SumPlusVM[i] / SumTR[i];
MinusVI[i] = SumMinusVM[i] / SumTR[i];
}
//----
return(0);
}
//+------------------------------------------------------------------+
بعد إذن حضرتك :-
أريد أن أضع 4 متوسطات متحركة لـلقيمة الموجبه
وأن أضع 4 متوسطات متحركة لــلقيمة السالبة
وإذا كان أمكن أن أتحكم في أن تكون المتوسطات "بسيطة" أو "أسية"
شكراً مقدما
تحيـــــــــــــاتي
السلام عليكم استاذى الكريم
انا كمان ابحث عن طريقة عمل ملف dll
وكيف يتم الرابط مع الاكسبيرت او المؤشر
ومع البحث وجدت هذا الرابط
بس معرفش هو يفيد معنا فى طريقة الاكسبيرت او المؤشر
تحياتى لك
على هذا الرابط
يوجد مكتبة ملف dll
بس انا معرفش ايضا ماهو المفيد فى عمل الاكسبيرت او المؤشر
ارجو منك استاذى مستر دولار
الاطلاع على الراوبط
وشرح المطلوب العمل بيه فى لغة mq4
تحيالتى وتقديرى لشخصك الكريم