بالتوفيق اخى
بارك الله فيك
Printable View
بالتوفيق اخى
بارك الله فيك
جزاك الله خير موضوع مميز يستحق الثبيت
عندما أقوم بتجربة هذ الاكسبيرت يعطيتي الخطأ رقم 130
كود://+------------------------------------------------------------------+
//| simple ma.mq4 |}
//| Copyright © 2011, tahlile Corp. |
//| tahlile-forex.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, tahlile Corp."
#property link "tahlile-forex.com"
extern double lots=0.1;
extern double profit=500;
extern double loss=200;
extern double trailing=150;
extern int ma_period=100;
extern int xpip=50;
extern int slipage=30;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//1-initializing data chacks
if (Bars<200)
{
Print("there are not enough data");
return(0);
}
//internal variable
int total;
int ticket;
double ma;
int cnt;
ma=iMA(NULL,0,ma_period,0,MODE_SMA,PRICE_CLOSE,0);
total=OrdersTotal();
//4- checking trading terminal
if (total<1)// No open order
{
//check for funds
if(AccountFreeMargin()<1000*lots)
{
Print("there are not enough money",AccountFreeMargin());
return(0);
}
//chek trade conditions
if(Close[0]>ma || (Close[0]-ma)>xpip )
{
ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,slipage,Ask-loss*Point,Ask+profit*Point,"buy ma ea",1982,Green);
if (ticket<0)
{
Print("the trade is faild with error#",GetLastError());
return(0);
}
return(0);
}
if (Close[0]<ma || (ma-Close[0])>xpip)
{
ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,slipage,Bid+loss*Point,Bid-profit*Point,"sell ma ea",1982,Red);
if(ticket<0)
{
Print("the sell is faild with error#",GetLastError());
return(0);
}
return(0);
}
return(0);
}
//----
return(0);
//+------------------------------------------------------------------+
هي نفس المشكلة التي حصلت مع dentist_hussein وهذا الأكسبرت له هدف ووقف خسارة والحل هو أن تأخذ شروط الصفقات وتعمل لها أكسبرت بهدف ووقف خسارة مخفي بالبرنامج الأخير
شرط الشراء
وشرط البيعكود:int xpip=50;
double ma=iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,0);
if(Close[0]>ma || (Close[0]-ma)>xpip )
كود:int xpip=50;
double ma=iMA(NULL,0,100,0,MODE_SMA,PRICE_CLOSE,0);
if (Close[0]<ma || (ma-Close[0])>xpip)
هل من طريقه لحماية الاكسبرتات والمؤشرات اخي وللك الشكر والتقدير
يوجد طرق عديدة وكل طريقة تختلف عن الأخري بميزاتها وعيوبها يعني أبسط وأسهل طريقة هي أن تجعل الأكسبرت يتحقق من رقم الحساب وأسم الحساب قبل أن يفتح الصفقات وعيوب هذه الطريقة هي أنه ممكن يحضر واحد برنامج فك تشفير ويفكه
وتكتب الشرط بالبداية مثلا
مميزات هذه الطريقة السهولة وعيوبها أمكانية فك الأكسبرت ببرنامج فك تشفير ونزع الصلاحيةكود:int start()
{
if(AccountName()!="uaeforex"&&AccountNumber()!=2145689)
{
Comment("هذه النسخة لا تعمل مع هذا الحساب");
return(0);
}
// باقي الكود
return(0);
}
//+-
والطريقة الثانية أن تدخل الدوال والشروط المهمة بداخل ملف دي ال ال وهي أفضل من الطريقة السابقة .
ويمكن أن تجعل الأكسبرت يأخذ الشروط من موقع ايضا وهي طريقة قوية جدا وستعملها بحالة أنه كان لديك أكسبرت كنز يعمل العجائب كل يوم . فلو تتذكر البرنامج الذي وضعته والذي يقوم بقرائة الصفحة الأخيرة ويعرف صاحب التوصية موجود أم لا فالفكرة شبيهة بهذه الفكرة فيمكنك أن تكتب علي الموقع أشارة معينة مثلا Qbuy#1248 وعندما يقرأها ملف الدي ال ال بالموقع يفتح الصفقة مباشرة وهكذا تعمل مع شروط البيع وأغلاق الصفقات وغير ذلك
والأصح أن تجعل الكود هكذا لأنه بالحالة الأولي لو وجد أسم الحساب تساوي ولم يتساوي الرقم سيعمل بينما الأن سيتوقف عن العمل بحالة أن أسم الحساب أو رقم الحساب لم يتساوي أما برامج فك التشفير فأنا من فترة طويلة لا أتابعها ولا أعرف ما هي أخر نسخة الأن
كود:int start()
{
if(AccountName()!="uaeforex"||AccountNumber()!=2145689)
{
Comment("هذه النسخة لا تعمل مع هذا الحساب");
return(0);
}
// باقي الكود
return(0);
}
//+-
البرنامج أسمه ex4_to_mq4 ولكن للعلم الباب مفتوح أمام طرق حماية الأكسبرتات وكل ما تكتشف طريقة لفك الحماية تكتشف طريقة لحماية أخري وتوجد طرق أخري سرية لا يعرفها الا المبرمجين اللذين عملوا الأكسبرتات مثل الأكسبرتات الشبيهة بأكسبرت فاب تربو ولا يعرفها المبرمجين الأخرين لأنها تأتي بناء علي فكرة بسيطة أحيانا وأحيانا توجد بها ثغرات.
ولكن الأكسبرتات الموجودة لوحدها بدون ملف دي ال ال ستفك ولا مفر من حمايتها والمسألة مسألة وقت
شكرا اخي الكريم:eh_s(7):
كان قصدى تحويل صيغة mq4 الى ex4
يعنى حماية الاكسبرت بحيث لا يستطيع برنامج ex4_to_mq4 كسره
Forex EA Generator عندى برنامج
ولاكنه معروف البرنامج مساعد للبرمجه ولاكن حاولت انسخ الاكواد من برنامج الميتاتريدر وما عرفت المهم شكرا على تجاوبك
أنا لا أريد أن أركز كثيرا علي حماية الأكسبرتات لأن الشرح سيكون سلاح ذو حدين يعني سيستفيد منه أصحاب الحماية وسيستفيد أصحاب فك الأكسبرتات ايضا:asvc: وبالتالي يصبح الشرح بلافائدة ولا جدوي من حماية الأكسبرتات بتلك الطرق وانا أرتب قريبا علي موضوع الشبكات العصبية والأكسبرتات سيكون أنفع من موضوع الحماية