اقتباسك لمشاركتى خطأ اخى
Printable View
آسف ان اخطأت اخي
السلام عليكم
المرجو التصحيح
جربت كود الأخ وضاح ولم ينجح
وأيضا ما العمل لو نريد مثلا ربح 10 نقاط بعد نقطة البريك ايفن؟
كود:double Av_TotalPrices()
{
if(_Digits==5||_Digits==3)int Q=10;else Q=1;
int Buy_Trades,Sell_Trades,Net_Trades;
double Buy_Size,Buy_Price,Buy_Profit,Sell_Size,Sell_Price,Sell_Profit,
Net_Lots,Net_Result,Average_Price,stepips,
Pip_Value=MarketInfo(Symbol(),MODE_TICKVALUE)*Q,
Pip_Size=MarketInfo(Symbol(),MODE_TICKSIZE)*Q;
for(int i=0;i<OrdersTotal();i++)
{
int ord=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
{
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo)
{
if(OrderType()==OP_BUY)
{
Buy_Trades++;
Buy_Price+=OrderOpenPrice()*OrderLots();
Buy_Size+=OrderLots();
Buy_Profit+=OrderProfit()+OrderSwap()+OrderCommission();
}
if(OrderType()==OP_SELL)
{
Sell_Trades++;
Sell_Size+=OrderLots();
Sell_Price+=OrderOpenPrice()*OrderLots();
Sell_Profit+=OrderProfit()+OrderSwap()+OrderCommission();
}
}
}
if(Buy_Price>0)Buy_Price/=Buy_Size;
if(Sell_Price>0)Sell_Price/=Sell_Size;
Net_Trades=Buy_Trades+Sell_Trades;
Net_Lots=Buy_Size-Sell_Size;
Net_Result=Buy_Profit+Sell_Profit;
if(Net_Trades>0&&Net_Lots!=0)
{
stepips=(Net_Result/(MathAbs(Net_Lots*MarketInfo(Symbol(),MODE_TICKVALUE)))*MarketInfo(Symbol(),MODE_TICKSIZE));
if(Net_Lots>0)Average_Price=Bid-stepips;
if(Net_Lots<0)Average_Price=Ask+stepips;
}
if(Net_Trades>0&&Net_Lots==0)
{
stepips=(Net_Result/((MarketInfo(Symbol(),MODE_TICKVALUE)))*MarketInfo(Symbol(),MODE_TICKSIZE));
Average_Price=Bid-stepips;
}
}
return(Average_Price);
}
السلام عليكم
لدي اكسبريت تجريبي (ابتدائي)
يحتوي على شرط شراء (ترو)
وشرط للبيع (فالس)
المطلوب اضافتين بعد اذنكم
• الطلب الأول: اذا كان المتغير continuego = True
فإن الاكسبريت يستمر في فتح الصفقات على حسب الشروط
وإذا كان continuego = False فانه لا يكمل التداول إذا لم يكن هناك أي صفقات مفتوحة
extern bool continuego = True;
• الطلب الثاني: ان الاكسبريت يغلق جميع الصفقات المفتوحة والمعلقة (الخاصة بالاكسبريت) إذا وصل الربح الى القيمة المسجلة في Newequitty
مثلا اذا كان الرصيد في الحساب 1000 فانه يغلق جميع الصفقات اذا اصبح الرصيد 1100 دولار
extern int Newequitty = 1100;
مرفق الاكسبريت والكود
وشكرا جزيلا
كود
كود PHP:
extern bool modetrade = true ;
extern double lots1 = 0.1;
extern int stoplos1 = 300;
extern int takeprofet1 = 500;
extern int multipli = 2;
extern int magicnompers = 123456;
extern bool continuego = True;
extern int Newequitty = 1100;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
//--- شرط البيع
if(orderTotalAll(magicnompers)==0 && modetrade == False )
{
int ticket=OrderSend (Symbol(),OP_SELL,lots1,Bid,3,Bid+(stoplos1*Point),Bid-(takeprofet1*Point),"sell",magicnompers,0,clrRed);
}
//-- شرط الشراء
if(orderTotalAll(magicnompers)==0 && modetrade == true )
{
int ticket=OrderSend (Symbol(),OP_BUY,lots1,Ask,3,Ask-(stoplos1*Point),Ask+(takeprofet1*Point),"buy",magicnompers,0,clrRed);
}
}
//+------------------------------------------------------------------+
//--- كود عدم تكرار الصفقات
int orderTotalAll(int magic) {
int count = 0;
for (int pos = 0; pos < OrdersTotal(); pos++) {
if (OrderSelect(pos, SELECT_BY_POS, MODE_TRADES))
if ( OrderSymbol()==Symbol() && OrderMagicNumber() == magic ) count++;
} return (count);}
باقي شوي وتخرج من الملة :)اقتباس:
لدي اكسبريت تجريبي (ابتدائي)
يحتوي على شرط شراء (ترو)
وشرط للبيع (فالس)
سيتم الاطلاع اخياقتباس:
السلام عليكم
المرجو التصحيح
جربت كود الأخ وضاح ولم ينجح
وأيضا ما العمل لو نريد مثلا ربح 10 نقاط بعد نقطة البريك ايفن؟
كود
اليك الكود مصحح--تعديلات بسيطة:
بسيطة ناتج البريك ايفن اضف عليه 10 نقاط اذا العملية شراءاقتباس:
وأيضا ما العمل لو نريد مثلا ربح 10 نقاط بعد نقطة البريك ايفن؟
او اخصم منه 10 نقاط اذا العملية بيع.
التحول الجنسي او الحالة في الوسط سهلة -- كلها سكين ثم ابدأ حز . . . .:)
ولكن كيف تصير كائن فضائي؟
--
البرمجة "حنبليا" لاتقبل ترو وفولس
==
نأتي لردك:
اعتقد اخي هذه مسائل مكررةاقتباس:
• الطلب الأول: اذا كان المتغير continuego = True
فإن الاكسبريت يستمر في فتح الصفقات على حسب الشروط
وإذا كان continuego = False فانه لا يكمل التداول إذا لم يكن هناك أي صفقات مفتوحة
extern bool continuego = True;
• الطلب الثاني: ان الاكسبريت يغلق جميع الصفقات المفتوحة والمعلقة (الخاصة بالاكسبريت) إذا وصل الربح الى القيمة المسجلة في Newequitty
مثلا اذا كان الرصيد في الحساب 1000 فانه يغلق جميع الصفقات اذا اصبح الرصيد 1100 دولار
extern int Newequitty = 1100;
مرفق الاكسبريت والكود
وشكرا جزيلا
سابقا كان عندي رغبة ان هذه الامور التي تتكرر نستخدم معها طريقة "تركيب المعدات"-- قوالب برمجية جاهزة لكل حالة مثلا 1) طلباتك هنا 2) التريلنق ستوب 3) الخ
مقتقطعة من خبير باسل, اضفها على الكود اعلاه واجعل EQUITY_MAXIMUM متغير خارجي.اقتباس:
مثلا اذا كان الرصيد في الحساب 1000 فانه يغلق جميع الصفقات اذا اصبح الرصيد 1100 دولار
كود PHP:
if(AccountEquity()>EQUITY_MAXIMUM)
{
for( int j=OrdersTotal();j>=0;j--)
{
if(OrderSelect(j, SELECT_BY_POS,MODE_TRADES))
{//yy
if(OrderType()==OP_SELL||OrderType()==OP_BUY)
tic=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrAqua);
}//YY
}
}
مسائل مكررة
التكرار يفيد الشطار