إذا كان المؤشر أ والخط الذي في المؤشر ليس له اندكس
كيف أخلي الاكسبيرت يقرأ هذا الخط ؟
ريده أ نيشتري مثلا من عند خط البيفوت الرمادي للمؤشر المرفق, كيف؟
Printable View
إذا كان المؤشر أ والخط الذي في المؤشر ليس له اندكس
كيف أخلي الاكسبيرت يقرأ هذا الخط ؟
ريده أ نيشتري مثلا من عند خط البيفوت الرمادي للمؤشر المرفق, كيف؟
الحل الأفضل هو أن تضع معادلات المؤشر بداخل الإكسبرت مباشرة ثم تقوم بإستدعائها كمتغيرات
أو إذا اردت إستخدام خطوط المؤشر يمكن أن تستخدم الداله
فسوف تعود بقيمة الخط الحاليهكود PHP:ObjectGet("name",OBJPROP_PRICE1);
name هو إسم الخط
ويوجد أن تضع المؤشر على الشارت حتى يرسم الخطوط و منها يقوم الإكسبرت بإستدعاء هذه الخطوط
السلام عليكم
شكرا على المساعدة
وشكرا على التوضيح
بس فى مثل معروف كل شيخ وله طريقة
والمهم الموضوع يعطى المطلوب
تحياتى لك وجزاك الله خير
سؤال تانى
عايز طريقة اتحكم منه فى عدد الصفقات فى اليوم الواحد
بمعنى الاكسبيرت يفتح صفقة شراء او بيع على حسب اشارة المؤشر
عايز طريقة استطيع اتعرف على عدد الصفقات التى تم فتحه
ولا يفتح صفقات غير الذى احدده
ويتم العمل من يوم جديد
انا عملت الطريقة بس بعد تصفير العداد
مع اليوم الجديد يعيد الى العدادا الصفقات السابقة
كما مبين من هذه الطريقة
تحياتى لك
كود PHP:int ordestotal1_1(int type)
{
int total_2=0;
for(int b=0;b<OrdersHistoryTotal();b++){
OrderSelect(b,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&MagicNumber==OrderMagicNumber()&&OrderType()==type){
total_2++;
if(CloseTime()<tim)total_2=0;
}
}
return(total_2);
}
كود PHP:datetime CloseTime(){
datetime c;
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()){
c=OrderOpenTime();
}
}
return(c);
}
كود PHP:tim=iTime(Symbol(),PERIOD_D1,0);
السلام عليكم
أريد دالة ايقاف عمل الاكسبيرت بعد تحقق هدف الاكويتي
ثم يعمل الاكسبيرت مرة أخرى بعد تغيير الماجيك نمبر يدوياـ
استفسار
هل هذه الدالة صحيحة؟ الهدف منها التحكم في مجموعة ماجيك نمبرز لـ 10 اكسبيرتات من ماجيك نمبر واحد رئيسي بالمخرجات
وجزاكم الله خيرا :)كود PHP:extern string MNO=" -----MagicNumbers";
extern int MagicNo=1;
int MagicNo1,MagicNo2,MagicNo3,MagicNo4,MagicNo5,MagicNo6,MagicNo7,MagicNo8,MagicNo9,MagicNo10;
// Expert start
int start()
{
MagicNo1=MagicNo;
MagicNo2=MagicNo+100;
MagicNo3=MagicNo+200;
MagicNo4=MagicNo+300;
MagicNo5=MagicNo+400;
MagicNo6=MagicNo+500;
MagicNo7=MagicNo+600;
MagicNo8=MagicNo+700;
MagicNo9=MagicNo+800;
MagicNo10=MagicNo+900;
لأيقاف الأكسبيرت ضع في المتفيرات
ثم تضيف الى شروط البيع والشراءكود PHP:bool GoOn=true;
كذلك تجعل الكنترول للأكوايتيكود PHP:if(GoOn){ //Buy();}
السؤال الثاني غير واضح لكن اذا قصدك التعامل مع اكثر من اكسبيرت من خلال اكسبيرت واحد اعتقد ستستخد دالةكود PHP:if(Equity>200) {GoOn=false;}
بالتوفيقكود PHP:GlobalVariable
بودي ان أصل لاكسبيرت إدارة صفقات أوتوماتيكي بالكامل دون أن أحتاج للتدخل اليدوي
فكرة الاكسبيرت:
لنفترض رأسمال 1000 دولار
نريد من الاكسبيرت عند تحقق اكويتي 1010 دولار (يعني ربح 10 دولار ) يتم إغلاق جميع الصفقات المفعلة والمعلقة على جميع العملات مع تغيير الماجيك نمبر لكل عملة بإضافة رقم 1، ويتم إضافة 10 دولار بهدف الاكويتي الجديد يعني يصبح الهدف الجديد 1020 دولار... وهكذا...
الاكسبيرت بالمرفقات أرجو التصحيح وهل سيكون فعال بدون أخطاء؟ :asvc:
إذا الفكرة غير ناجحة فأرجو المساعدة بالاجابة عن هذه مشاركتي السابقة بارك الله فيكم :eh_s(7):
استخد هذه الدالة لحساب الأوردرات لليوم الحالي ، ثم تضيف شروطك .
مرحبا بك .كود PHP:int OrderTotal(){
int P;
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==33&&OrderOpenTime()>iTime(Symbol(),1440,0)){
P++;
}
}
return(P);
}
السلام عليكم أستاذ أسامه
الإكسبيرت المرفق كان سابقا يقوم بعمل مودفاي للهدف لآخر صفقه حينما يقوم بفتح صفقة تبريد على نقطة الدخول للصفقه السابقة للتبريد مباشرة .. و لكن لم يعد يفعل ذلك الآن في الباك تيست رغم أني جربته منذ فتره و كان يقوم بتعديل الهدف ... إذا تكرمت أخي قوم بالإطلاع عليه و جزاك الله خيرا
الإكسبيــــــــــــــــــرت
كيف يمكنني حل مشكلة الستوب و الهدف الصغير في فريم 5 دقائق لان الاكسبيرت يرسل الاوامر وهدف وستوب لكن الميتاتريدر لا يستجيب
ويعطيني invalid tp or stoplose
بعد إذن أساتذتي الكرام
هذا الخطأ معناه أن المنصة لا تقبل هذا الهدف والستوب الصغير
قد يكون الحل في استخدام الهدف والستوب المخفيين لكن في هذه الحالة ستكون معرض أكثر لمشكلة إعادة التسعير ويمكن التحكم بها من السليباج
بالتوفيق أخيكود PHP:// exported variables
extern double HideStoploss = 2;
extern double HideTakeprofit = 2;
extern int Slippage=3;
extern int MagicNo = 100;
// Expert start
int start()
{
if(Takeprofit>0)
if(Stoploss>0)
CloseBuyOrdersHiddenTP();
CloseSellOrdersHiddenTP();
CloseBuyOrdersHiddenSL();
CloseSellOrdersHiddenSL();
}
void CloseBuyOrdersHiddenTP()
{
int total=OrdersTotal();
for (int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNo)
{
if(OrderType()==OP_BUY&&Bid>(OrderOpenPrice()+HideTakeprofit*Point))
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}
}
}
return(0);
}
void CloseBuyOrdersHiddenSL()
{
int total=OrdersTotal();
for (int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo)
{
if(OrderType()==OP_BUY&&Bid<(OrderOpenPrice()-HideStoploss*Point))
{
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
}
}
}
return(0);
}
void CloseSellOrdersHiddenTP()
{
int total=OrdersTotal();
for(int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo)
{
if(OrderType()==OP_SELL&&Ask<(OrderOpenPrice()-HideTakeprofit*Point))
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage);
}
}
}
return(0);
}
void CloseSellOrdersHiddenSL()
{
int total=OrdersTotal();
for(int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo)
{
if(OrderType()==OP_SELL&&Ask>(OrderOpenPrice()+HideStoploss*Point))
{
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage);
}
}
}
return(0);
}
شكرا جزيلا أخي جميل دائما سباق بالخير ... في ميزان حسناتك إن شاء الله
أنت فقط قمت بإزالة الشرطمع اني كنت أظنه هام ... و الآن فهمت فأصبح الإكسبيرت يعدل أي هدف للصفقات الأخيره لهدف آخر صفقه مفتوحة و هذا هو المطلوب ...كود PHP:if ( TP!=lasttakeprofit() )
شكرا أخي العزيز جميل و شكرا لأستاذنا الحبيب أسامه .