النتائج 1 إلى 7 من 7
الموضوع: رجاءا تصحيح و تعديل اكسبيرت
- 16-04-2018, 01:58 AM #1
رجاءا تصحيح و تعديل اكسبيرت
رجاء ا مرة اخرى هدا اكسبيرت اريد تصحيح اخطاء الكود التي تظهر عند compiliation
ومع كامل الشكر والتقدير لاهتمامكم وجد ممتن لمجهوداتكم اريد كدلك عند تشغيل الا كسبيرت ان يفتح صفقات على اليومي فقط ولا يفتحها كليا على باقي الفريمات
وشكرا مرة اخرى
- 16-04-2018, 02:55 AM #2كود PHP:
//+------------------------------------------------------------------+
//| forxylamdaba.mq4 |
//| 2018 forxytradie lamdaba |
//| |
//+------------------------------------------------------------------+
extern double Long_Entry_pdr = 5;
extern double Short_Entry_pdr = 5;
extern double Long_stop_pdr = 3;
extern double Short_stop_pdr = 3;
extern double Lots_Acc_Equity = 1;
extern double TrailingStopflexe_pdr = 70;
extern double TakeProfit = 70;
extern double Slippage = 3;
extern double TrailingStopflexe_pdrMode = true;
double TrailingStopflexe;
int Hour_between_Period = 24;
int Current_day,Previous_day;
int Previous_hour=0;
double Lots=1.0;
double yesterday_high=0;
double yesterday_low=0;
double yesterday_close=0;
double today_open=0;
double today_long_SL=0;
double today_short_SL=0;
double today_buy=0;
double today_sell=0;
double yesterday_range=0;
double Acc_Start_Equity;
string EAName = "lamdaba"; // identifies the EA
int uniqueMagic = 20060122; // Magic number of the trades
int IsPositionOpen=false;
//datetime Last_long_time=0, Last_short_time=0;
void CheckOpenOrders()
{
int total = OrdersTotal();
{
for(int i=total-1;i>=0;i--)
bool to=OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
bool result = false;
if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueMagic) || (OrderComment() == EAName)) ) // only look if myEA and symbol...
{
//Close opened long positions
if ( type == OP_BUY && OrderProfit()>0)
{
result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Green );
IsPositionOpen=false;
}
//Close opened short positions
if ( type == OP_SELL && OrderProfit()>0)
{
result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Red );
IsPositionOpen=false;
}
}
}
return;
}
void init()
{
Acc_Start_Equity=AccountEquity()/3;
Previous_day=Day();
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
//Short_Entry_pdr=Long_Entry_pdr;
Short_stop_pdr=Long_stop_pdr;
int ticket, total;
if (Previous_day!=Day() && DayOfWeek()>0 && DayOfWeek()<6)
{
yesterday_high= iHigh(NULL,PERIOD_D1,1);
yesterday_low= iLow(NULL,PERIOD_D1,1);
yesterday_close= iClose(NULL,PERIOD_D1,1);
today_open= iOpen(NULL,PERIOD_D1,0);
yesterday_range=(yesterday_high-yesterday_low);
/*
today_pivot= (yesterday_high+yesterday_low+yesterday_close)/3;
today_S1= 2*today_pivot-yesterday_high;
today_S2=
today_R1= 2*today_pivot-yesterday_high;
today_R2=
*/
today_buy= today_open+yesterday_range*(Long_Entry_pdr/100)+MarketInfo(Symbol(),MODE_SPREAD)*Point;
today_sell= today_open-yesterday_range*(Short_Entry_pdr/100);
TrailingStopflexe=yesterday_range*(TrailingStopflexe_pdr/100);
today_buy=MathRound(today_buy/Point)*Point;
today_sell=MathRound(today_sell/Point)*Point;
today_long_SL= today_buy-yesterday_range*(Long_stop_pdr/100);
today_short_SL= today_sell+yesterday_range*(Short_stop_pdr/100)+MarketInfo(Symbol(),MODE_SPREAD)*Point;
Lots= 0.1*MathCeil( (Lots_Acc_Equity/100)/( ((today_buy-today_long_SL)/Point)/(AccountFreeMargin()-Acc_Start_Equity)) );
if (Lots<0.1) Lots=0.1;
Print("Day: ",Day()," Order_Total : ",OrdersTotal()," Lots : ",Lots);
if (IsPositionOpen==true) CheckOpenOrders();
if (OrdersTotal()>0 && IsPositionOpen==false)
{
int totalorders = OrdersTotal();
for(int j=totalorders-1;j>=0;j--) // scan all orders and positions...
{
bool ret = OrderSelect(j, SELECT_BY_POS);
if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueMagic) || (OrderComment() == EAName)) )
{
int type = OrderType();
if ( type > 1 ) bool result = OrderDelete( OrderTicket() );
}
}
}
if (OrdersTotal()==0)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,today_buy,Slippage,today_long_SL,today_buy+Point*TakeProfit,EAName,uniqueMagic,0,Green);
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,today_sell,Slippage,today_short_SL,today_sell-Point*TakeProfit,EAName,uniqueMagic,0,Red);
IsPositionOpen=false;
}
Previous_day= Day();
}
else {Previous_day= Day();}
total = OrdersTotal();
for(int i=total-1;i>=0;i--)
{
ret = OrderSelect(i, SELECT_BY_POS);
type = OrderType();
result = false;
if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueMagic) || (OrderComment() == EAName)) ) // only look if myEA and symbol...
{
if(OrderType()==OP_BUY)
{
if(TrailingStopflexe==true && TrailingStopflexe > 0)
{
if(Bid - OrderOpenPrice() > Point * TrailingStopflexe) {
if(OrderStopLoss() < Bid - Point * TrailingStopflexe) {
ret = OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStopflexe, OrderTakeProfit(), 0, MediumSeaGreen);
return(0);
}
}
}
}
if(OrderType()==OP_SELL)
{
if(TrailingStopflexe==true && TrailingStopflexe > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStopflexe)) {
if((OrderStopLoss() > (Ask + Point * TrailingStopflexe)) || (OrderStopLoss() == 0)) {
ret = OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStopflexe, OrderTakeProfit(), 0, DarkOrange);
return(0);
}
}
}
}
if (( type == OP_BUY || type == OP_SELL) && IsPositionOpen==false) IsPositionOpen= true;
if (IsPositionOpen==true && type>1) result = OrderDelete( OrderTicket() );
}
}
return(0);
}
// the end.
- 16-04-2018, 03:33 PM #3
شكرا اخي على الرد والحمد لله الا كسبيرت لا يعطي اخطاء عند compiliation لكن اخي هل يمكن ان تعطيني ايه التغييرات اللي قمت بها حتي استفيد منها
- 16-04-2018, 05:22 PM #4
- 16-04-2018, 05:34 PM #5
مع احترامي لتقديرك والله العضيم اخي عملت طبع للكودات الاثنين و مقدر ت اعرف ايه اللي تغير وبدلت مجهود لاني لا افهم البرمجة كثيرا والشكر اليك مرة اخرى واستسمح على كثرة الاسئلة
- 17-04-2018, 12:50 AM #6
رقم سطر الخطا هل تصله بسرعة؟ هل تستطيع تحديده
- 17-04-2018, 02:16 AM #7
شكرا اخي على التوجيه وجدت كل الا خطاء وبطريقة سهلة جدا وانا الان جد متفهم لرد فعلك والتمس العدر منك و شكرا على المساعدة وجاز الله خيرا اعتدر منك مرة اخرى اخي