وعليكم السلام ورحمة الله وبركاته
راجع الإكسبرت المرفق الشرط هو
كود PHP:Timee!=Time[0]
Printable View
السلام عليكم
اخي مستر دولار في هذا مؤشر للاستاذ حمادة سلام
ارغب بالوصول له برمجيا
الملف المرفق 435256
كما نلاحظ ظهور خط ابيض وهو سعر افتتاح اليوم نلاحظ ظهور الخط الاخضر فوووق هذا يعني اليوم صاعد نفتح صفقه شراء
كان يضعون استوب عند الخط الاحمر لكن انا بضع الاستوب عند الخط البرتقالي (الهدف == الاستوب) اذا ضغطنا عليه دبل كليك سوف نجد Name=التبريد
هنا استاذنا مستر دولار كيف استطيع مشاهدة هذه الخطوط بداخل المؤشر وبدخل شراء اذا كان الاخضر فوق الخط الابيض وبيع اذا كان الخط الاخضر اقل من الابيض
والاستوب طبعا الخط البرتقالي كل هذا بمجرد افتتاح شمعة اليوم
اذا ممكن تشرح لنا كيف نوصل لهذه الخطوط برمجيا وليس مجرد وضع الكود وانا بنسخه بدون فهمه مثل هذا المؤشر ومؤشرات كامريلا وغيرها من المؤشرات حتى تعلم الوصول لها
واستفيد منها بالدخول ووضع الهدف والاستوب
بمعنى كيف اوصل للخاصيه Name برمجيا وبعرف السعر عند هذا الخط
شكرا لك
شباب لدي استفسار بسيط
ساعدني اخي اعصار ريتا بداله اعادة حجم لوت المناسب بناء على الاستوب
بمعنى اذا وضعت 1 % وتم ضرب الاستوب تكون خسارة راس المال 1 % فقط
ارغب اضافة تعديل لهذه الدالة بحيث قبل ماتعيد لنا حجم اللوت تقوم بالبحث عن صفقه مفتوحة حالياً بنفس الماجيك نمبر اذا وجدت صفقة مفتوحة تعيد لنا حجم لوت الصفقه المفتوحةكود:double LotManage(int stoploss)
{
double percent = (AccountBalance() * RiskPercent) /100;
double lot;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==100000)lot=(percent/stoploss)/10;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==10000)lot=(percent/stoploss)/1;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==1000)lot=(percent/stoploss)/0.1;
if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
return (lot);
}
بمعنى دخل الاكسبيرت أول صفقة شراء بلوت 0.10 اذا ضرب الاستوب يكون قد خسر 1 % وظهرت صفقة شراء ثانيه والصفقة الاولى مازالت (مفتوحة) لم تغلق بعد هنا الدالة تعيد لنا حجم لوت الصفقة الاولى وهو 0.10 ذلك بناء على الماجيك نمبر
ارجو يكون طلب واضح
شكرا لكم :0031:
وعليكم السلام ورحمة الله وبركاته
حتى تستطيع معرفة خصائص الكائن على الشارت ( السعر , التوقيت , اللون , .... ) يجب أولا أن تعرف إسمه
لمعرفة خصائص الكائن تستخدم الداله
object_name هو إسم الكائنكود PHP:double ObjectGet(string object_name,int index);
index هو القيمه التي تريد معرفتها مثال
أحيانا لا تعرف إسم الكائن نفسه في هذه الحاله ستختلف الطريقه مثلا في هذا المؤشر يمكن أن تبحث عن جميع الكائنات على الشارت ثم تقارن إذا كان لونه برتقالي فهذا ما تبحث عنهكود PHP:double price= ObjectGet("Line1",OBJPROP_PRICE1);
مثال
كود PHP:double price;
for(int i=ObjectsTotal()-1;i>=0;i--)
{
string name=ObjectName(i);
if(ObjectGet(name,OBJPROP_COLOR)==Orange)
{
price=ObjectGet(name,OBJPROP_PRICE1);
break;
}
}
سوف تقوم بعمل دالة للبحث عن حجم لوت الصفقه المفتوحه
مثال
ثم ستضع من ضمن شروط دالة إدارة رأس المالكود PHP:double OrderLot()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
return(OrderLot());
}
}
return(0);
}
كود PHP:double LotManage(int stoploss)
{
if(OrderLot()>0)return(OrderLot());
double percent = (AccountBalance() * RiskPercent) /100;
double lot;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==100000)lot=(percent/stoploss)/10;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==10000)lot=(percent/stoploss)/1;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==1000)lot=(percent/stoploss)/0.1;
if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
return (lot);
}
السلام عليكم ورحمة الله وبركاتة
اساتذتي المبرمجين
في هذا الاكسبيرت اريد اذا وضعته على الشارت لا يضع الامر المعلق مباشرتا
ولكن ينتظر افتتاح شمعة جديدة
حاولت ان اعمل ذلك بطريقتين مختلفتين ولكن الاكسبيرت يضع الاوامر المعلقة مباشرتا
الرجاء المساعده
هذه المحاوله الاولي
المحاوله الثانيةكود://+------------------------------------------------------------------+
//| pending order time.mq4 |
//| Copyright 2015, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
extern double Manual_Lot = 1;
extern int Pending_Distance = 30;
extern int Magic_Number = 6666;
double A;
datetime Timee;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
if(Digits==3||Digits==5)A=10;else A=1;
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(Timee!=Time[0] && Counting_Opend_Orders(OP_BUYSTOP) == 0 )
{
bool Buy_Stop_Order = OrderSend(Symbol(),OP_BUYSTOP,Manual_Lot, Ask +(Pending_Distance*Point*A),3,0,0,NULL,Magic_Number,0,clrNONE);
}
if(Timee!=Time[0] && Counting_Opend_Orders(OP_SELLSTOP) == 0 )
{
bool Sell_Stop_Order = OrderSend(Symbol(),OP_SELLSTOP,Manual_Lot,Bid -(Pending_Distance*Point*A),3,0,0,NULL,Magic_Number,0,clrNONE);
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| وظيفة عد الصفقات المفتوحة حسب النوع |
//+------------------------------------------------------------------+
int Counting_Opend_Orders (int type)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()== Magic_Number && OrderType()==type)
{
cnt++;
}
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
كود://+------------------------------------------------------------------+
//| pending order time.mq4 |
//| Copyright 2015, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
extern double Manual_Lot = 1;
extern int Pending_Distance = 30;
extern int Magic_Number = 6666;
double A;
datetime Timee;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
if(Digits==3||Digits==5)A=10;else A=1;
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if( NewCandle()==true && Counting_Opend_Orders(OP_BUYSTOP) == 0 )
{
bool Buy_Stop_Order = OrderSend(Symbol(),OP_BUYSTOP,Manual_Lot, Ask +(Pending_Distance*Point*A),3,0,0,NULL,Magic_Number,0,clrNONE);
}
if( NewCandle()==true && Counting_Opend_Orders(OP_SELLSTOP) == 0 )
{
bool Sell_Stop_Order = OrderSend(Symbol(),OP_SELLSTOP,Manual_Lot,Bid -(Pending_Distance*Point*A),3,0,0,NULL,Magic_Number,0,clrNONE);
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| وظيفة عد الصفقات المفتوحة حسب النوع |
//+------------------------------------------------------------------+
int Counting_Opend_Orders (int type)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()== Magic_Number && OrderType()==type)
{
cnt++;
}
}
}
return(cnt);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool NewCandle()
{
static int BarsOnChart=0;
if (Bars == BarsOnChart)
return (false);
BarsOnChart = Bars;
return(true);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
السلام عليكم ورحمة الله وبركاته
استاذنا الكريم مستر دولار
اريد داله تحسب اقرب قمه واقرب قاع للسعر الحالى
بحيث اذا دخلت شراء يكون الاستوب لوز اقرب قاع للسعر
واذا دخلت بيع يكون الاستوب لوز اقرب قمه للسعر
وجزاكم الله خيرا لما تقدمه من مساعدات للاخوة الكرام
السلام عليكم ورحمة الله وبركاته
هي يوجد أمر يخبرني بالسعر الحالي لعملة معينة في فريم محدد
يختلف عن الشارت الذي أعمل عليه حاليا
مثلا Ask يعطيني سعر الشراء الحالي على الشارت الذي أعمل عليه
ولكني أحتاج لمعرفة سعر الشراء لعمله أخرى في فريم مختلف عن الشارت المفتوح أمامي
واعتذر للإطالة
وعليكم السلام
يجب ان تحدد ماهي شروط القمه والقاع التي تريدها
مثلا اذا اردت استخدام الزجزاج وهو الاكثر استخدام لتحديدها
اخر قمه
ثم قبل امر البيعكود:double zaghigh(){
for(int i=0;i<500;i++){
double zig=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
if(zig!=0&&(zig==Low[i])){
zig=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
break;
} }
for(int s=i;s<500;s++){
double zagbuy=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,s);
if(zagbuy!=0&&zagbuy==High[s]){
zagbuy=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,s);
break;
}}
return(zagbuy);
}
اخر قاعكود:if (UsezigzagSL)StopLoss=((zaghigh()-Bid)/point);
ثم قبل امر الشراءكود:double zaglow(){
for(int ii=0;ii<500;ii++){
double zigg=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,ii);
if(zigg!=0&&(zigg==High[ii])){
zigg=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,ii);
break;
}}
for(int d=ii;d<500;d++){
double zagsell=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,d);
if(zagsell!=0&&zagsell==Low[d]){
zagsell=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,d);
break;
}}
return(zagsell);
}
وتعريف المتغيرات الخارجيه لتعطيل وتفعيل خيار استخدام الزجزاجكود:if (UsezigzagSL)StopLoss=((Ask-zaglow())/point);
كود:extern string a1="zigzag stoploss";
extern bool UsezigzagSL=false;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;