النتائج 4,126 إلى 4,140 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 08-07-2013, 05:35 AM #4126
نعم هذه الخاصية إسمها optimization وهي تعمل كما شرحها لك الأخ wadi جزاه الله خير
راجع هذا الموضوع
https://forum.arabictrader.com/t137105.html
- 08-07-2013, 08:26 AM #4127
رد:موضوع مخصص للأسئلة البرمجية
رائع أستاذي كعادتك متميز
بالكود الذي أرفقته حددت فقط ربح إجمالي للهيدج ولكن نحن نريد الاغلاق عند المستوى البيعي (أو الشرائي التاني) وبالتالي قمت بالتعديل كما يلي والحمد لله نجح بالباكتيست ويتم الكلوزباي كما أريد
كود PHP:if(((ProfitPips_B>250)&&(ProfitPips_S<-70.5))||((ProfitPips_B<-70.5)&&(ProfitPips_S>250)))
كود PHP:extern bool AddOrdersAfterClose=true;
كود:MR.dollar_Pending Orders EA V4.6
ومنه الاكسبيرت يقوم بوضع أمر معلق مكان الأمر الأول بينما لا يستطيع وضع الأمر المعلق التاني مكان الأمر المغلق بالكلوزباي
أظن أن الحل هو حدف دالة المضاعفات وحدف الوت من الأوامر المعلقة بدالتيكود:if(AddOrdersAfterClose){ AddBuy(); AddSell(); }
إذا هذا صحيح فالمرجو فضلا طرح مثال بسيط
وإذا غير صحيح فما هو الحل لتفعيل أمر معلق مكان أمر كلوزباي؟
في الأخير "رمضان مبارك" شهر الرحمه و الغفران شهر التوبه و الإيمان شهر الفضل و الإحسان شهر المحبه و السماح و إن أشاء الله كل عام و أنتم بالف خير
- 08-07-2013, 12:59 PM #4128
- 08-07-2013, 01:11 PM #4129
رد:موضوع مخصص للأسئلة البرمجية
http://docs.mql4.com/math/MathSqrt
هذا هو شرح للامر او الدالة وهو نفس الموقع الرئيسي للشركة الخاصة باللغة الذي اعتمد عليه ففيه جميع الاوامر التي تريدها
- 08-07-2013, 02:12 PM #4130
- 08-07-2013, 04:02 PM #4131
رد:موضوع مخصص للأسئلة البرمجية
تم بحمد الله حل المشكلة ويعمل جيدا بالباكتيست
أرجو التصحيح أستذي الغالي لربما يوجد خطأ لم أنتبه له
فقط قمت بتعديل بسيط ولأني لا أريد المضاعفات فلا يهم سوى اللوت الأساسي
كود PHP:void AddBuy(){
if(Q>ordersS(MagicNumberB)&&ordersS(MagicNumberB)>0){
for(int i=0;i<OrdersHistoryTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
if(OrderType()==OP_BUY)
{
int type=OrderType();double open=OrderOpenPrice();
}
}
{
if(Ask>open+3*point)
{
OrderSend(Symbol(),OP_BUYLIMIT,Lots,open,3,StopLoss,TakeProfit,"MR.dollar EA",MagicNumberB,0,Green);
}
if(Ask<open-3*point)
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,open,3,StopLoss,TakeProfit,":MR.dollar EA",MagicNumberB,0,Green);
}
}
}
}
هل بحدف الماجيك نمبر من الاكسبيرت أم بجعله عند القيمة 0 ؟
إذا كان بحدف الماجيك نمبر فالاكسبيرت النسخة الرابعة به 3 أنواع من الماجيك نمبر ومن الملاحظ أن النوعين الأخيرين S و B متعلقين بحسابات الأوامر المعلقة...
كود PHP:extern int MagicNumber=2533;
int MagicNumberS,MagicNumberB;
آخر تعديل بواسطة kira-h ، 08-07-2013 الساعة 04:30 PM
- 10-07-2013, 10:45 PM #4132
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله وبركاته
رمضان كريم وربنا يكرمنا واياكم بصيامه وقيامه
عندي هذا الكود
كود:if(OrdersTotal()<=1 && total(OP_BUY)+total(OP_BUYSTOP)==0) { if(Mac1>High[0]&&total(OP_BUYSTOP)==0) {open(OP_BUYSTOP,lot,Mac1,TakeProfit,StopLoss,DoubleToStr(total_histo_loss()+1,0)) ;} } if(OrdersTotal()<=1 && total(OP_SELL)+total(OP_SELLSTOP)==0) { if(Mac1<Low[0]&&total(OP_SELLSTOP)==0) {open(OP_SELLSTOP,lot,Mac1,TakeProfit,StopLoss,DoubleToStr(total_histo_loss()+1,0)) ;} }
- 10-07-2013, 11:28 PM #4133
- 11-07-2013, 12:13 AM #4134كود:
{OrderSend(Symbol(), OP_SELLSTOP, lot, Mac1, 30, StopLoss, TakeProfit," ", DoubleToStr(total_histo_loss()+1,0), 0, Blue);}
آخر تعديل بواسطة عبدالله الخليفي ، 11-07-2013 الساعة 12:15 AM
- 11-07-2013, 12:56 AM #4135
انا لاحظت خطأ في سطر ارسال الأوردر فصححته لك لكن ربما هناك اخطأ اخرى مثل هذا Mac1>High[0] فلايوجد هاي ثابت لشمعة الزيرو ، والثابت الوحيد لشمعة الزيرو هو سعر الأفتتاح ، ربما كان قصدك High[1] قم بتغييرها الى الشمعه 1 .
- 11-07-2013, 02:13 AM #4136
- 11-07-2013, 03:55 AM #4137
رد:موضوع مخصص للأسئلة البرمجية
بارك الله فيك وجزاك الله عنا كل خير
يعني عندما أقوم بوضع صفقة يدويا أكتب بالكومنتكود PHP:MR.dollar EA
كود PHP:OrderSend(Symbol(),OP_SELLLIMIT,newlot,Price,3,SL,TP,"MR.dollar EA",MagicNumberS,0,Red)
- 11-07-2013, 04:54 AM #4138
رد:موضوع مخصص للأسئلة البرمجية
كود PHP://+------------------------------------------------------------------+
//| |
//| |
//| www.arabictrader.com/vb |
//| |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "MR.dollarEA"
#property link "[email protected]"
extern bool DeleteOppositePending=false;
extern string S1=" Hamada Acc Settings";
extern double SL1_1=0.382;
extern double Lots1_S=0.1;
extern double SL2_1 =0.691;
extern double SL3_1 =1.1;
extern double Lots2_S=0.1;
extern double SL4_1=1.6;
extern double Lots3_S=0.1;
extern double SL5_1=2.51;
extern double Lots4_S=0.2;
extern double SL6_1=4.1;
extern double BL1_2=0.382;
extern double Lots1_B=0.1;
extern double BL2_2 =0.691;
extern double BL3_2 =1.1;
extern double Lots2_B=0.1;
extern double BL4_2=1.6;
extern double Lots3_B=0.1;
extern double BL5_2=2.51;
extern double Lots4_B=0.6;
extern double BL6_2=4.1;
datetime Time0;
double point;
int digits,Q;
extern int MagicNumber=2533;
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits<4){point=0.01;digits=2;}
else{point=0.0001;digits=4;}
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int Orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type)
{
cnt++;
}
}
return(cnt);
}
int start()
{
Comment("Programmed by MR.dollar"+"\n"+"Idea Created by Hamada Acc"+"\n"+"منتدى المتداول العربي"+"\n"+"www.arabictrader.com/vb");
double D6=iOpen(Symbol(),PERIOD_D1,6);
double D5=iOpen(Symbol(),PERIOD_D1,5);
double D4=iOpen(Symbol(),PERIOD_D1,4);
double D3=iOpen(Symbol(),PERIOD_D1,3);
double D2=iOpen(Symbol(),PERIOD_D1,2);
double D1=iOpen(Symbol(),PERIOD_D1,1);
double D0=iOpen(Symbol(),PERIOD_D1,0);
double DNL0 = MathLog ( D1 /D0);
double DNL1 = MathLog ( D1 /D2);
double DNL2 = MathLog ( D2 /D3);
double DNL3 = MathLog ( D3 /D4);
double DNL4 = MathLog ( D4 /D5) ;
double DNL5 = MathLog ( D5 /D6);
double SQR0 = DNL0 * DNL0;
double SQR1 = DNL1 * DNL1;
double SQR2 = DNL2 * DNL2;
double SQR3 = DNL3 * DNL3;
double SQR4 = DNL4 * DNL4;
double SQR5 = DNL5 * DNL5;
double DNLAVG = ( DNL0 + DNL1 + DNL2 + DNL3 + DNL4 +DNL5 ) / 7;
double SQRAVG = ( SQR0 + SQR1 + SQR2 +SQR3 +SQR4 + SQR5 ) / 7;
double CHR = SQRAVG - (DNLAVG * DNLAVG);
double Z= MathSqrt(CHR)*D0;
double SL1 = D0+(SL1_1* Z);
double SL2 = D0+(SL2_1* Z);
double SL3 = D0+(SL3_1* Z);
double SL4 = D0+(SL4_1* Z);
double SL5 = D0+(SL5_1* Z );
double SL6 = D0+(SL6_1* Z);
double BL1 = D0-(BL1_2* Z );
double BL2 = D0-(BL2_2* Z );
double BL3 = D0-(BL3_2* Z );
double BL4 = D0-(BL4_2* Z );
double BL5 = D0-(BL5_2* Z );
double BL6 = D0-(BL6_2* Z);
if(Orderscnt(OP_BUY)>0&&DeleteOppositePending)
{
DeletePendingOrders(OP_SELLLIMIT);
}
if(Orderscnt(OP_SELL)>0&&DeleteOppositePending)
{
DeletePendingOrders(OP_BUYLIMIT);
}
double SL,TP;
if(Time0!=iTime(Symbol(),1440,0)&&iVolume(Symbol(),1440,0)<2)
{
while(Orderscnt(OP_SELLLIMIT)>0)DeletePendingOrders(OP_SELLLIMIT);
while(Orderscnt(OP_BUYLIMIT)>0)DeletePendingOrders(OP_BUYLIMIT);
OrderSend(Symbol(),OP_BUYLIMIT,Lots1_B,NormalizeDouble(BL1,Digits),3*Q,BL6,SL1,"MR.dollar EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUYLIMIT,Lots2_B,NormalizeDouble(BL3,Digits),3*Q,BL6,BL1,"MR.dollar EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUYLIMIT,Lots3_B,NormalizeDouble(BL4,Digits),3*Q,BL6,BL2,"MR.dollar EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUYLIMIT,Lots4_B,NormalizeDouble(BL5,Digits),3*Q,BL6,BL4,"MR.dollar EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_SELLLIMIT,Lots1_S,NormalizeDouble(SL1,Digits),3*Q,SL6,BL1,"MR.dollar EA",MagicNumber,0,Red);
OrderSend(Symbol(),OP_SELLLIMIT,Lots2_S,NormalizeDouble(SL3,Digits),3*Q,SL6,SL1,"MR.dollar EA",MagicNumber,0,Red);
OrderSend(Symbol(),OP_SELLLIMIT,Lots3_S,NormalizeDouble(SL4,Digits),3*Q,SL6,SL2,"MR.dollar EA",MagicNumber,0,Red);
OrderSend(Symbol(),OP_SELLLIMIT,Lots4_S,NormalizeDouble(SL5,Digits),3*Q,SL6,SL4,"MR.dollar EA",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//+------------------------------------------------------------------+
void DeletePendingOrders(int type)
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==type)
{
OrderDelete(OrderTicket());
}
}
}
}
//+---------------------------------------------------------------------------------+
أنا شغال بإكسيبرت يعتمد على مؤشر يرسم مستويات متجددة كل يوم وكنت عايز الكود اللى يخلى الاكسبيرت يعلق الاوامر بعد الساعة 12 مساءً مع بداية اليوم الجديد ولا يلتفت للمستويات القديمة
ثانيا وضع امكانية اغلاق الصفقات المعلقة الخاسرة بعد نهاية اليوم ترو اور فلص
وجزاكم الله خيرا
- 11-07-2013, 04:56 AM #4139
رد:موضوع مخصص للأسئلة البرمجية
مرحبا أيها الاصدقاء . أحتاج تعديل لهدا السكريبت منفضلكم.
مهمت السكربت 1 : عدم إقفال أي صفقة رابحة من " 0 إلى 40 نقطة"
مهمت السكربت 2 : عدم إقفال أي صفقة خاسرة من " 0 إلى 39 نقطة"
وشكرا على المساعدة مسبقا .
كود PHP://+------------------------------------------------------------------+
//| This MQL is generated by Expert Advisor Builder |
//| http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |
//| |
//| In no event will author be liable for any damages whatsoever. |
//| Use at your own risk. |
//| |
//+------------------- DO NOT REMOVE THIS HEADER --------------------+
#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#property copyright "Expert Advisor Builder"
#property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 1.0;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 40;
extern bool UseTakeProfit = False;
extern int TakeProfit = 60;
extern bool UseTrailingStop = False;
extern int TrailingStop = 30;
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;
if (EachTickMode) Current = 0; else Current = 1;
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;
if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;
//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+
double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_CLOSE, Current + 1);
double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_OPEN, Current + 1);
double Buy2_1 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_CLOSE, Current + 2);
double Buy2_2 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_OPEN, Current + 2);
double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_CLOSE, Current + 1);
double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_OPEN, Current + 1);
double Sell2_1 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_CLOSE, Current + 2);
double Sell2_2 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_OPEN, Current + 2);
double CloseBuy1_1 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_CLOSE, Current + 1);
double CloseBuy1_2 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_OPEN, Current + 1);
double CloseSell1_1 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_CLOSE, Current + 1);
double CloseSell1_2 = iMA(NULL, 0, 5, 0, MODE_SMA, PRICE_OPEN, Current + 1);
//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+
//Check position
bool IsTrade = False;
for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+
if (CloseBuy1_1 < CloseBuy1_2) Order = SIGNAL_CLOSEBUY;
//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSEBUY&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&(
(EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close
//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+
if (CloseSell1_1 > CloseSell1_2) Order = SIGNAL_CLOSESELL;
//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+
if (Order == SIGNAL_CLOSESELL&&(OrderProfit()<0||OrderProfit()>=TakeProfit)&&
((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}
//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+
if (Buy1_1 > Buy1_2 && Buy2_1 <= Buy2_2) Order = SIGNAL_BUY;
if (Sell1_1 < Sell1_2 && Sell2_1 >= Sell2_2) Order = SIGNAL_SELL;
//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+
//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}
if (!EachTickMode) BarCount = Bars;
return(0);
}
//+------------------------------------------------------------------+
- 11-07-2013, 05:00 AM #4140
رد:موضوع مخصص للأسئلة البرمجية
كود PHP://+------------------------------------------------------------------+
//| |
//| |
//| www.arabictrader.com/vb |
//| |
//| [email protected] |
//+------------------------------------------------------------------+
#property copyright "MR.dollarEA"
#property link "[email protected]"
extern bool DeleteOppositePending=false;
extern string S1=" Hamada Acc Settings";
extern double SL1_1=0.382;
extern double Lots1_S=0.1;
extern double SL2_1 =0.691;
extern double SL3_1 =1.1;
extern double Lots2_S=0.1;
extern double SL4_1=1.6;
extern double Lots3_S=0.1;
extern double SL5_1=2.51;
extern double Lots4_S=0.2;
extern double SL6_1=4.1;
extern double BL1_2=0.382;
extern double Lots1_B=0.1;
extern double BL2_2 =0.691;
extern double BL3_2 =1.1;
extern double Lots2_B=0.1;
extern double BL4_2=1.6;
extern double Lots3_B=0.1;
extern double BL5_2=2.51;
extern double Lots4_B=0.6;
extern double BL6_2=4.1;
datetime Time0;
double point;
int digits,Q;
extern int MagicNumber=2533;
int init()
{
if(Digits==5||Digits==3)Q=10;
else Q=1;
if(Digits<4){point=0.01;digits=2;}
else{point=0.0001;digits=4;}
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int Orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type)
{
cnt++;
}
}
return(cnt);
}
int start()
{
Comment("Programmed by MR.dollar"+"\n"+"Idea Created by Hamada Acc"+"\n"+"منتدى المتداول العربي"+"\n"+"www.arabictrader.com/vb");
double D6=iOpen(Symbol(),PERIOD_D1,6);
double D5=iOpen(Symbol(),PERIOD_D1,5);
double D4=iOpen(Symbol(),PERIOD_D1,4);
double D3=iOpen(Symbol(),PERIOD_D1,3);
double D2=iOpen(Symbol(),PERIOD_D1,2);
double D1=iOpen(Symbol(),PERIOD_D1,1);
double D0=iOpen(Symbol(),PERIOD_D1,0);
double DNL0 = MathLog ( D1 /D0);
double DNL1 = MathLog ( D1 /D2);
double DNL2 = MathLog ( D2 /D3);
double DNL3 = MathLog ( D3 /D4);
double DNL4 = MathLog ( D4 /D5) ;
double DNL5 = MathLog ( D5 /D6);
double SQR0 = DNL0 * DNL0;
double SQR1 = DNL1 * DNL1;
double SQR2 = DNL2 * DNL2;
double SQR3 = DNL3 * DNL3;
double SQR4 = DNL4 * DNL4;
double SQR5 = DNL5 * DNL5;
double DNLAVG = ( DNL0 + DNL1 + DNL2 + DNL3 + DNL4 +DNL5 ) / 7;
double SQRAVG = ( SQR0 + SQR1 + SQR2 +SQR3 +SQR4 + SQR5 ) / 7;
double CHR = SQRAVG - (DNLAVG * DNLAVG);
double Z= MathSqrt(CHR)*D0;
double SL1 = D0+(SL1_1* Z);
double SL2 = D0+(SL2_1* Z);
double SL3 = D0+(SL3_1* Z);
double SL4 = D0+(SL4_1* Z);
double SL5 = D0+(SL5_1* Z );
double SL6 = D0+(SL6_1* Z);
double BL1 = D0-(BL1_2* Z );
double BL2 = D0-(BL2_2* Z );
double BL3 = D0-(BL3_2* Z );
double BL4 = D0-(BL4_2* Z );
double BL5 = D0-(BL5_2* Z );
double BL6 = D0-(BL6_2* Z);
if(Orderscnt(OP_BUY)>0&&DeleteOppositePending)
{
DeletePendingOrders(OP_SELLLIMIT);
}
if(Orderscnt(OP_SELL)>0&&DeleteOppositePending)
{
DeletePendingOrders(OP_BUYLIMIT);
}
double SL,TP;
if(Time0!=iTime(Symbol(),1440,0)&&iVolume(Symbol(),1440,0)<2)
{
while(Orderscnt(OP_SELLLIMIT)>0)DeletePendingOrders(OP_SELLLIMIT);
while(Orderscnt(OP_BUYLIMIT)>0)DeletePendingOrders(OP_BUYLIMIT);
OrderSend(Symbol(),OP_BUYLIMIT,Lots1_B,NormalizeDouble(BL1,Digits),3*Q,BL6,SL1,"MR.dollar EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUYLIMIT,Lots2_B,NormalizeDouble(BL3,Digits),3*Q,BL6,BL1,"MR.dollar EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUYLIMIT,Lots3_B,NormalizeDouble(BL4,Digits),3*Q,BL6,BL2,"MR.dollar EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUYLIMIT,Lots4_B,NormalizeDouble(BL5,Digits),3*Q,BL6,BL4,"MR.dollar EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_SELLLIMIT,Lots1_S,NormalizeDouble(SL1,Digits),3*Q,SL6,BL1,"MR.dollar EA",MagicNumber,0,Red);
OrderSend(Symbol(),OP_SELLLIMIT,Lots2_S,NormalizeDouble(SL3,Digits),3*Q,SL6,SL1,"MR.dollar EA",MagicNumber,0,Red);
OrderSend(Symbol(),OP_SELLLIMIT,Lots3_S,NormalizeDouble(SL4,Digits),3*Q,SL6,SL2,"MR.dollar EA",MagicNumber,0,Red);
OrderSend(Symbol(),OP_SELLLIMIT,Lots4_S,NormalizeDouble(SL5,Digits),3*Q,SL6,SL4,"MR.dollar EA",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
//+------------------------------------------------------------------+
void DeletePendingOrders(int type)
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==type)
{
OrderDelete(OrderTicket());
}
}
}
}
//+---------------------------------------------------------------------------------+
أنا شغال بإكسيبرت يعتمد على مؤشر يرسم مستويات متجددة كل يوم وكنت عايز الكود اللى يخلى الاكسبيرت يعلق الاوامر بعد الساعة 12 مساءً مع بداية اليوم الجديد ولا يلتفت للمستويات القديمة
ثانيا وضع امكانية اغلاق الصفقات المعلقة الخاسرة بعد نهاية اليوم ترو اور فلص
وجزاكم الله خيرا
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM