النتائج 9,436 إلى 9,450 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 01-01-2019, 09:06 PM #9436
- 01-01-2019, 09:16 PM #9437
وعليكم السلام ورحمة الله وبركاته
بالنسبه للمشكله الأولى فيمكنك عمل متغير تكتب به جميع الأزواج التي تريد عدم نسخها وضع بينهم علامة مميزه مثلا فاصله ,
كود PHP:string not_copy_symbols="EURUSD,USDCHF,USDJPY";
كود PHP:
string not_copy_array[];
StringSplit(to_split,StringGetCharacter(",",0),not_copy_array);
حل آخر واسهل
بدلا من إستخدام المقارنه == يمكنك إستخدام الداله StringFind للبحث في نص معين بالتالي يمكنك كتابة أكثر من عمله في نفس المتغير
كود PHP:string NotCopy_List="EURUSD,USDCHF,USDJPY";
if(StringFind(NotCopy_List,symbol,0)>=0)continue;
- 02-01-2019, 02:45 PM #9438
- 02-01-2019, 05:44 PM #9439
- 03-01-2019, 12:07 AM #9440
السلام عليكم ورحمة الله
هذا اجتهاد لرسم خطوط مع مستويات الفيبو ولكن في بعض الازواج الخطوط لا تكون دقيقه مع مستويات الفيبو بفارق عدة نقاط
اين الخطأ جزاكم الله خير
كود PHP:
double UP=ObjectGet("FiboUp",OBJPROP_PRICE1);
double DOW=ObjectGet("FiboDn",OBJPROP_PRICE1);
double AA=ObjectGet("FiboIn",OBJPROP_PRICE1);
double SP=MathAbs(UP-AA)/pt;
int SP1=(int)SP/4;
double DOW1=DOW+(SP1*2*pt);
double DOW_0=DOW+(SP1*4*pt);
double DOW_50=DOW+(SP1*6*pt);
- 04-01-2019, 07:12 PM #9441
لـو سمحت ممكن أعرف المشكلة فى الكود دة:
كود PHP:
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property indicator_chart_window
input int NumOfMAPeriod = 3;
int init()
{
return(0);
}
int start()
{
//---
int limit;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- the last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- main loop
for(int i=0; i<limit; i++)
{
Print("test= ",test(NumOfMAPeriod));
}
return(0);
}
double test(int number){
double qr[];
double re = 0;
for(int i=0;i<number;i++)
{
qr[i] = 5;
}
for(int i=0;i<number;i++)
{
re += qr[i];
}
return(re);
}
بيدينى خطأ:
كود PHP:array out of range
فى السطر اللى فية:
كود PHP:qr[i] = 5;
- 06-01-2019, 08:29 PM #9442
تعديل الهدف إذا كان الاستوب أكبر منه
السلام عليكم ورحمة الله وبركاته، تحياتي للجميع
قمت بعمل شروط لإضافتها إلى إكسبرت
هدف هذه الشروط البحث عن أي صفقة يتم فتحها من خلال الإكسبرت ويكون الهدف فيها أقل من الاستوب
ثم تعديل الهدف لتجعله مساوي للاستوب
أرجو من الخبراء مراجعتها لمعرفة إذا كان بها أي أخطاء برمجية
وشكرًا جزيلا لكم
مع ملاحظة أن:
TotalOrders
LastOrderInfo
هي دوال خارج دالة start
كود PHP:double tp;
double sl;
double takeprofite;
double stoploss;
//----------------------------
//
//----------------------------
if(TotalOrders(OP_BUY)== 1){
tp = LastOrderInfo("TP") - LastOrderInfo("Price"); // عدد نقاط البروفيت
sl = LastOrderInfo("Price") - LastOrderInfo("SL"); // عدد نقاط الاستوبلوز
if (tp < sl)
{
takeprofite = LastOrderInfo("Price") + sl;
stoploss = LastOrderInfo("SL");
modify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
}
}
//----------------------------
//
//----------------------------
if(TotalOrders(OP_SELL)==1){
tp = LastOrderInfo("TP") - LastOrderInfo("Price") * (-1); // عدد نقاط البروفيت
sl = LastOrderInfo("Price") - LastOrderInfo("SL") * (-1); // عدد نقاط الاستوبلوز
if (tp < sl)
{
takeprofite = LastOrderInfo("Price") - sl;
stoploss = LastOrderInfo("SL");
modify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
}
}
- 07-01-2019, 01:19 AM #9443
كود معدل
كود معدل
كود PHP:double tp;
double sl;
double takeprofite;
double stoploss;
double tpMulti = 1.5;
//----------------------------
//
//----------------------------
if(TotalOrders(OP_BUY)== 1){
tp = LastOrderInfo("TP") - LastOrderInfo("Price"); // عدد نقاط البروفيت
sl = LastOrderInfo("Price") - LastOrderInfo("SL"); // عدد نقاط الاستوبلوز
if (tp < sl)
{
takeprofite = LastOrderInfo("Price") + (sl*tpMulti);
stoploss = LastOrderInfo("SL");
modify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
}
}
//----------------------------
//
//----------------------------
else if(TotalOrders(OP_SELL)==1){
tp = LastOrderInfo("TP") - LastOrderInfo("Price") * (-1); // عدد نقاط البروفيت
sl = LastOrderInfo("Price") - LastOrderInfo("SL") * (-1); // عدد نقاط الاستوبلوز
if (tp < sl)
{
takeprofite = LastOrderInfo("Price") - (sl*tpMulti);
stoploss = LastOrderInfo("SL");
modify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
}
}
else {
takeprofite = LastOrderInfo("TP");
stoploss = LastOrderInfo("SL");
modify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
}
- 08-01-2019, 05:43 PM #9444
هذا مثال لدالة تحسب عدد الصفقات المفتوحه
كود PHP:int TotalOrders(int type=-1)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&(OrderType()==type||type==-1)){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if(TotalOrders()<MaxOpenTrades)
- 08-01-2019, 05:45 PM #9445
- 08-01-2019, 05:47 PM #9446
- 08-01-2019, 05:49 PM #9447
- 08-01-2019, 06:39 PM #9448
تعديل بروفيت الصفقة إذا كان أقل من الاستوب لوز
شكرًا لحسن ردك مستر دولار الغالي
هذا هو كود دالة ستارت السابق مع بعض التعديل
كود PHP:/*
//-----
//تعديل الهدف في حال ما إذا كان قيمة الهدف أقل من قيمة الاستوب لوز
//---------------------------------------------
double tp;
double sl;
double takeprofite;
double stoploss;
bool mmodify;
double tpMulti = 1.5;
//----------------------------
//
//----------------------------
if(TotalOrders2(OP_BUY)== 1){
tp = LastOrderInfo2("TP") - LastOrderInfo2("Price"); // عدد نقاط البروفيت
sl = LastOrderInfo2("Price") - LastOrderInfo2("SL"); // عدد نقاط الاستوبلوز
if (tp < sl)
{
takeprofite = LastOrderInfo2("Price") + (sl*tpMulti);
stoploss = LastOrderInfo2("SL");
mmodify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
}
}
//----------------------------
//
//----------------------------
else if(TotalOrders2(OP_SELL)==1){
tp = LastOrderInfo2("TP") - LastOrderInfo2("Price") * (-1); // عدد نقاط البروفيت
sl = LastOrderInfo2("Price") - LastOrderInfo2("SL") * (-1); // عدد نقاط الاستوبلوز
if (tp < sl)
{
takeprofite = LastOrderInfo2("Price") - (sl*tpMulti);
stoploss = LastOrderInfo2("SL");
mmodify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
}
}
else {
takeprofite = LastOrderInfo2("TP");
stoploss = LastOrderInfo2("SL");
mmodify = OrderModify(ticket,OrderOpenPrice(),stoploss,takeprofite,0);
}
*/
أولا: دالة استدعاء بيانات آخر صفقة مفتوحة
كود PHP:double LastOrderInfo2(string info)
{
for(int i = OrdersTotal(); i >= 0; i--)
{
bool select = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
if (info=="Type") return(OrderType());
else if (info=="Lots") return(OrderLots());
else if (info=="Price") return(OrderOpenPrice());
else if (info=="TP") return(OrderTakeProfit());
else if (info=="SL") return(OrderStopLoss());
}
}
return(0);
}
كود PHP:int TotalOrders2(int type)
{
int cnt=0;
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderSymbol() == Symbol() && MagicNumber == OrderMagicNumber() && (OrderType() == type))
{
cnt++;
}
}
}
return(cnt);
}
حاولت تجربته بهذه الطريقة مع بعض التعديلات، لكن لا أدري أين الخلل، مع ملاحظة أن الصفقة المراد تنفيذ الأمر عليها كانت صفقة معلقة (لكن تم تفعيلها)
والهدف من هذا الكود (هناك بعض الصفقات المعلقة يحصل عليها جاب فتفتح على سعر غير السعر المحدد لتفتح عنده، وبهذا تكون قيمة نقاط البروفيت أقل من قيمة نقاط الاستوب، فأردت إضافة هذا الشرط عشان لو حصل كده يقوم الإكسبرت بتعديلها)
أرجو التوجيه، شكرًا لحسن تعاونكم مرة أخرى..
- 10-01-2019, 01:44 PM #9449
السلام عليكم ورحمة الله ،استفسار بعد إذنكم ، هل اللغة البرمجية MLQ4 تصلح لمنصات العملات الرقمية مثل منصة Binance على سبيل المثال؟
- 10-01-2019, 04:40 PM #9450
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM