النتائج 4,186 إلى 4,200 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 21-07-2013, 07:09 PM #4186
- 22-07-2013, 05:32 AM #4187
- 22-07-2013, 05:41 AM #4188
- 23-07-2013, 02:05 AM #4189
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم اخي ماستر دولار
ارجوا منك ملاحضة الخطأ في الجورنال ودكر سبب هدا الخطأ
مرفق دالة الشراء ودالة البيع.
كود PHP:spread=Ask-Bid;
SL=High[1]+(2*point)+spread;
TP=sellprice-(High[1]-Low[1])-spread;
while(IsTradeContextBusy())Sleep(1000);
OrderSend(Symbol(),OP_SELL,lot,Bid,3*Q,SL,TP," ",MagicNumber,0,Green);
Time0=Time[0];
كود PHP:spread=Ask-Bid;
SL=Low[1]-(2*point);
TP=buyprice+(High[1]-Low[1])+spread;
while(IsTradeContextBusy())Sleep(1000);
OrderSend(Symbol(),OP_BUY,lot,Ask,3*Q,SL,TP," ",MagicNumber,0,Green);
Time0=Time[0];
و الغريب انه لا يرتكب بعض هده الاخطاء في بعض الازواج
- 23-07-2013, 02:26 AM #4190
- 23-07-2013, 01:51 PM #4191
استاذ جميل هل من طريقة لارسال notification لما اى مؤشر يعطى تنبيه ؟؟؟ لانى لاحظن انها تشتغل فقط مع فتح صفقات بالاكسبرت ولكنى اريدها عن اعطاء تنبية لاى مؤشر هل هذا ممكن ؟؟
- 24-07-2013, 05:12 AM #4192
- 24-07-2013, 05:19 AM #4193
- 26-07-2013, 07:33 PM #4194
رد:موضوع مخصص للأسئلة البرمجية
من فضلك أخي MR.dollar أريد تعدل هدا السكريبت ليقوم بمضاعفة حجم اللوت في كل أربع صفقت خاسرة.
كود 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);
}
//+------------------------------------------------------------------+
- 27-07-2013, 05:26 AM #4195
رد:موضوع مخصص للأسئلة البرمجية
قم بعمل دالة لمعرفة عدد الصفقات الخاسره المتتاليه
كود PHP:int LostOrdersNum()
{
int Loss;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)Loss++;
else return(Loss);
}
}
return(Loss);
}
كود PHP:double LastOrderLots()
{
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
return(OrderLots());
}
}
return(0);
}
كود PHP:if(LostOrdersNum()==4)newlot=LastOrderLots()*2;
- 27-07-2013, 06:00 PM #4196
- 30-07-2013, 05:25 AM #4197
- 31-07-2013, 01:12 AM #4198
- 31-07-2013, 06:03 AM #4199
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله وبركاته
أنا عندي مشكلة في دالة تغلق البيندينج اوردر حيث انها لا تغلق اول بيندنج اوردر وتغلق اي بينديج بعد كده بدون مشاكل
لذلك كتبت اكسبيرت صغير يفتح 2 بيندينج أوردر ....بعد كل صفقة نفذت الدالة.....ستجد انها تغلق الصفقة الثانية وأما الصفقة الاولى تبقى مفتوحة ولا يتم اغلاقها .....أريد معرفة السبب لو سمحتم
- 01-08-2013, 04:58 PM #4200
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم وكل عام انتم بخير
سؤال برمجى
وارجو المساعدة
يوجد اكسبيرت
اول مايشتغل على الشارت يفتح صفقات
علشان اكيد الشرط متوفر
انا عايز طريقة تجعل الاكسبيرت لا يفتح صفقات غير بعد عدد معين من الشموع انا تحكم فيه
وهذه الطريقة تكون كل مايشتغل الاكسبيرت على الشارت يحدث ذلك
والف مليون شكر على المساعدة
وكل عام وانتم بخير
واستاذى الكريم مستر دولار يكون بخير وصحة واحسن حال
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM