النتائج 5,311 إلى 5,325 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 19-05-2014, 07:32 PM #5311
- 19-05-2014, 08:08 PM #5312
- 19-05-2014, 08:18 PM #5313
- 19-05-2014, 09:06 PM #5314
السلام عليكم عليكم
اريد ان اعمل اكسبريت يعمل على ثلاث ازواج من العملات في نفس الوقت ولكل عمله تيك بروفت وستوب لوز وحتى شروط معينة
هل يوجد كود ولا اكسبرت سابق لكي اتعلم منهآخر تعديل بواسطة moha_kokokoo ، 19-05-2014 الساعة 09:12 PM
- 19-05-2014, 10:47 PM #5315
ما هي الطريقه الصحيحه عند تحويل بيانات الدقيقه الى شموع اسبوعيه اوشهريه ؟؟؟
قرات من قبل انه يتم عن طريق الضرب 10080 ولكن منطقيا هذا خطا والصح الضرب 7200 لان الاسبوع في عالم الفوركس فقط 5 ايام ونفس الفكره كذلك لشموع الشهر ..ارجوا تصحيح المعلومه الخاطئه وما هو الاصح؟
- 19-05-2014, 11:27 PM #5316
- 20-05-2014, 12:13 AM #5317
- 20-05-2014, 12:14 AM #5318
- 20-05-2014, 12:15 AM #5319
- 20-05-2014, 08:44 AM #5320
- 20-05-2014, 10:54 AM #5321
كان لدي سؤال ونسيتم الانتباه له وهذا هو
سؤال خطر ببالي فكرة برمجية
وهي
نفرض عندي كود لوجيك
extern bool Test=true;
المتغير Test يقبل قيمة افتراضية true
من واجهة الاكسبيرت بعد التنفيذ يظهر ال Test=true اذا اخترت false بشكل يدوي لتحقق شرط معين وتم النفيذ اريد ان تتغير Test من حالة false التي ادخلتها بشكل يدوي الى الحالة الافتراضية الاصلية true ولكن من خلال البرنامج وليس من خلا المستخدم ؟
يعني لنفترض ان Test=false داخل دالة شرطية وعند تنفيذها وقبل الخروج من الدالة الشرطية تتحول Test= true ثم تتغير Test الى true ويحدث التغيير من داخل البرنامج ويظهر في واجهة الاكسبيرت
ارجو ان يكون السؤال مفهوم والسبب انه نفذت اسكبيرت عند الوصول الى شرط معين يغلق الاكسبيرت من Auto trading بدل ان يبقى ينفذ الشرط ويرجع عن طريق return(0) لكن كانت اريد ان تكون العملية اكثر أمانا لان الاكسبيرت يستعيد بدوال DLL و هنا كنت اريد ان تتغير واجهة المتغير المنطقى الى القيمة الافتراضية وتظهر على واجهة الاكسبيرت وكانني غيرتها يدوي
- 20-05-2014, 01:13 PM #5322
اهلا أخي وليد على بال يرد عليك استاذنا أسامة ، الجزئية الأولى للمتغيرات اليدوية والجزئية الثانية OnInit() يقرأها مرة واحدة لتختزن في الذاكرة ويتعامل مع الذاكرة ولايمكن تغيير المدخلات اليدوية بدون تدخل يدوي وجزئية OnDeinit ينفذ مافيها عند الخروج . لكن يمكنك برمجيا التحويل بين فالس ثرو برمجيا كماتريد دون تغيير الجزء اليدوي الظاهر .
- 20-05-2014, 01:37 PM #5323
اهلا بك
لم تصلك فكرتي
نفترض
extern bool Test=true
هذا متغير خارجي
في داخل دالة Start او on tick
يكون عندنا عمليات ومن ضمن العمليات هناك دالة شرطية ليكن
if(!Test)
{
----
----
Test=true
}
هنا Test كونها متغير خارجي خارج نطاق الدلة on tick فهي تحتفظ بقيمتها الجديدة بعد خروجها من الدلة on Tick وبالتالي ترجع قيمة Test الى true
لكن في واجهة الاكسبيرت بعد التغيير او الاختيار من true الى false وتحقيق الشرط لن تتغير في المظهر الخارجي وتبقى false على الرغم ان المتغير الخارجي من داخل العمليات تغيرت قيمته او حالته
هنا السؤال اريد كما تغيرت قيمة او حالة Test داخل البرنامج ان تؤثر على الاختيار الخارجي فلا يجعلني اغير الحالة مرة اخرى يدويا وهنا
يعني وكأنك حذفت الاكسبيرت واعدت وضعه مرة ثانية على الشارت يعني Reset لحالة وضع Test
- 20-05-2014, 02:13 PM #5324
- 20-05-2014, 03:32 PM #5325أستاذ مستر دولار أرجو أن تكون في تمام الصحة والعافية وجزاك الله خيرا
كما نلاحظ من الصورة بالمرفقات أن زاوية الترند الأحمر (بإسم 00001-) هي 350 درجة وزاوية الترند الأصفر (بإسم 0001-) هي 30 درجة يعني ان زاوية الترند الأحمر أكبر من زاوية الترند الأصفر 11 مرة تقريبا
وانا عملت شرط الدخول أكبر 10 مرات يعني تحقق أول شرط الدخول
كود الاكسبيرت :
كود PHP://+------------------------------------------------------------------+
//| test.mq4 |
//| [email protected] |
//| kira-h |
//+-------------------DO NOT REMOVE THIS HEADER----------------------+
#property copyright "Copyright © 2014, Programmed by kira-h"
#property link "[email protected]"
#include <stdlib.mqh>
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
//| Exported variables |
//+------------------------------------------------------------------+
extern double Lots=0.1;
extern double Stoploss=30;
extern double Takeprofit=30;
extern int Slippage=5;
extern int MagicNo=0;
//+------------------------------------------------------------------+
//| Local variables |
//+------------------------------------------------------------------+
double PipValue=1; // this variable is here to support 5-digit brokers
int NDigits=4; // used mostly for NormalizeDouble in Flex type blocks
//+------------------------------------------------------------------+
//| Expert init |
//+------------------------------------------------------------------+
int init()
{
NDigits=Digits;
}
//+------------------------------------------------------------------+
//| Expert start |
//+------------------------------------------------------------------+
int start()
{
if(NDigits==3||NDigits==5)PipValue=10;
TechnicalAnalysis();
}
void TechnicalAnalysis()
{
double TrendValue=ObjectGetValueByShift("-00001",1);
double priceB1=ObjectGet("-0001",OBJPROP_PRICE1);
double priceB2=ObjectGet("-0001",OBJPROP_PRICE2);
double TimeB1=iBarShift(Symbol(),0,ObjectGet("-0001",OBJPROP_TIME1),false);
double TimeB2=iBarShift(Symbol(),0,ObjectGet("-0001",OBJPROP_TIME2),false);
double price_diffB=((priceB2-priceB1)/(PipValue*Point));
double time_diffB=(TimeB2-TimeB1);
double AngleB=MathArctan(price_diffB/time_diffB);
double priceS1=ObjectGet("-00001",OBJPROP_PRICE1);
double priceS2=ObjectGet("-00001",OBJPROP_PRICE2);
double TimeS1=iBarShift(Symbol(),0,ObjectGet("-00001",OBJPROP_TIME1),false);
double TimeS2=iBarShift(Symbol(),0,ObjectGet("-00001",OBJPROP_TIME2),false);
double price_diffS=((priceS2-priceS1)/(PipValue*Point));
double time_diffS=(TimeS2-TimeS1);
double AngleS=MathArctan(price_diffS/time_diffS);
if(AngleS>(10*AngleB))
{
if(Close[1]>TrendValue&&Close[0]<=TrendValue)
{
LimitOpenOrdersB();
}
}
}
void LimitOpenOrdersB()
{
int count=0;
for (int i=OrdersTotal()-1; i>=0; i--)
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo)
{
count++;
}
}
else
{
Print("OrderSend() error - ",ErrorDescription(GetLastError()));
}
if (count<1)
{
BuyOrder();
}
}
void BuyOrder()
{
double SL=Ask-Stoploss*PipValue*Point;
if (Stoploss==0)SL=0;
double TP=Ask+Takeprofit*PipValue*Point;
if (Takeprofit==0)TP=0;
int Tries;
int ticket=-1;
if (true)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"Kira-h",MagicNo,0,Red);
if(ticket>-1&&Tries<1000)
{
OrderSelect(ticket,SELECT_BY_TICKET);
OrderModify(ticket,OrderOpenPrice(),SL,TP,0,Red);
Tries++;Sleep(1000);
}
}
else
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"Kira-h",MagicNo,0,Red);
}
//+------------------------------------------------------------------+
//| Expert deinit |
//+------------------------------------------------------------------+
int deinit()
{
}
كود:if(AngleB<90&&AngleS>270)
تحياتي وتقديريآخر تعديل بواسطة kira-h ، 20-05-2014 الساعة 03:47 PM
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM