السلام عليكم ورحمة الله وبركاته
أخواني واخواتي الكرام
أتمنى ايجاد هذا الكود وهو معرفة المكسب أو الخسارة لجميع العقود المفتوحة للعملة معينة سواء كانت بيع ام شراء بواسطة المجك نبمر...
وجزاكم الله خير
وتقبلوا تحياتي
أخوكم حماد حجازي
Printable View
السلام عليكم ورحمة الله وبركاته
أخواني واخواتي الكرام
أتمنى ايجاد هذا الكود وهو معرفة المكسب أو الخسارة لجميع العقود المفتوحة للعملة معينة سواء كانت بيع ام شراء بواسطة المجك نبمر...
وجزاكم الله خير
وتقبلوا تحياتي
أخوكم حماد حجازي
تفضل أخي الكريم وحمدا لله على السلامة
كود PHP:
double MyOrdersProfit(int Magic)
{
double p=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol())
{
p=p+OrderProfit();
}
}
return(p);
}
الله يسلمك يارب وشكراً لمساعدتك ولاكن للأسف لم يعمل عندي؟؟؟
لقيت هذا الكود حيث يقوم بحساب المكسب والخسارة ولاكن للان لم يعمل عندي
كود PHP:
int CalculateCurrentOrders()
{
int orders;
openProfit=0;
openLoss=0;
for(int i=0;i<OrdersTotal();i++) {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic_No_1 && OrderMagicNumber()==Magic_No_2 ) {
orders++;
if (OrderProfit()>0) openProfit+=OrderProfit(); else openLoss+=-OrderProfit();
}
}
return(orders);
}
بالنسبة للكود الذي أرفقته أنا يجب وضعه آخر الكود عندك .
ويتم استدعاء هذه الوظيفة كأي وظيفة أخرى وهي تعود لك بقيمة الربح أو الخسارة لجميع الصفقات .
وهي تحتاج لمدخل واحد هو الماجيك نمبر .
جرب الآن وقل لي
الأكسبيرت عندي له 2 مجك نمبر
الأول = Magic_No_1
الثاني = Magic_No_2
والمعادلة تكون كالأتي للعقود الخاصة ب Magic_No_1
أريد دمج المجك نبمر الأخر كيفكود PHP:
double MyOrdersProfit(int Magic_No_1)
{
double p=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic_No_1 && OrderSymbol()==Symbol())
{
p=p+OrderProfit();
}
}
return(p);
}
وهل هي p = تحديد المكسب والخسارة ؟؟؟
ارجو المساعدة وجزاك الله خير
لا داعي لتعديل كود الوظيفة التي أعطيتك إياها .
بل يكفي تنفيذها مرتين لكل ماجيك نمبر .
والوظيفة تعطيك المحصلة النهائية التي قد ربحا أو خسارة حسب نتائج الصفقات .
وهذا الكود يعطيك طريقة الاستخدام
كود PHP:
double win;
win=MyOrdersProfit(Magic_No_1)+MyOrdersProfit(Magic_No_2);
ملاحظة :
في حال أن اكسبيرتك يعمل على أكثر من نوع عملة غير عملة الشارت فيجب إلغاء شرط أن تكون العملة هي عملة الشارت من الكود نفسه .
شكراً لك أخ وضاح وهذا كود فيه جميع المعلومات عن الحساب
SellOrders = صفقات البيعكود PHP:
int SellOrders, BuyOrders;
double BuyLots, SellLots;
double LowestBuy = 999, HighestBuy = 0.00001, LowestSell = 999, HighestSell = 0.00001;
double Profit = 0, BuyProfit = 0, SellProfit = 0, PosBuyProfit = 0, PosSellProfit = 0;
int HighestBuyTicket, LowestBuyTicket, HighestSellTicket, LowestSellTicket;
double HighestBuyProfit, LowestBuyProfit, HighestSellProfit, LowestSellProfit;
for (Order = OrdersTotal() - 1; Order >= 0; Order--)
{
if (OrderSelect(Order, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_No_1 || OrderMagicNumber() == Magic_No_2 )
{
Profit = OrderProfit() + OrderSwap() + OrderCommission();
if (OrderType() == OP_BUY)
{
if (OrderOpenPrice() >= HighestBuy)
{
HighestBuy = OrderOpenPrice();
HighestBuyTicket = OrderTicket();
HighestBuyProfit = Profit;
}
if (OrderOpenPrice() <= LowestBuy)
{
LowestBuy = OrderOpenPrice();
LowestBuyTicket = OrderTicket();
LowestBuyProfit = Profit;
}
BuyOrders++;
if (BuyOrders > MaxBuys) MaxBuys = BuyOrders;
BuyLots += OrderLots();
BuyProfit += Profit;
if (Profit > 0) PosBuyProfit += Profit;
}
if (OrderType() == OP_SELL)
{
if (OrderOpenPrice() <= LowestSell)
{
LowestSell = OrderOpenPrice();
LowestSellTicket = OrderTicket();
LowestSellProfit = Profit;
}
if (OrderOpenPrice() >= HighestSell)
{
HighestSell = OrderOpenPrice();
HighestSellTicket = OrderTicket();
HighestSellProfit = Profit;
}
SellOrders++;
if (SellOrders > MaxSells) MaxSells = SellOrders;
SellLots += OrderLots();
SellProfit += Profit;
if (Profit > 0) PosSellProfit += Profit;
}
}
}
}
double TotalProfit = BuyProfit + SellProfit;
double TotalOrders = BuyOrders + SellOrders;
double TotalLot = BuyLots + SellLots;
BuyOrders = صفقات الشراء
TotalOrders = مجموع الصفقات الشراء والبيع معاً
BuyLots = عقود الشراء
SellLots = عقود البيع
TotalLot = مجموع العقود الشراء والبيع معاً
BuyProfit = الربح أو خسارة الشراء
SellProfit = الربح أو خسارة البيع
TotalProfit = مجموع الربح أو الخسارة لكل الصفقات الشراء والبيع معاً
والكثير سوف تكتشفونه في هذا الأكود
وتقبلوا فائق احترامي وتقديري
أخوكم حماد حجازي
وكل عام وانتم بخير:icon26: