النتائج 1 إلى 4 من 4
الموضوع: ابحث عن هذا الاكسبرت فضلا
- 23-09-2024, 04:09 AM #1
ابحث عن هذا الاكسبرت فضلا
السلام عليكم
ابحث عن اكسبرت يقوم بتعليق امرعكسي لاى عملية مفتوحة ويتم اغلاقها سواء اغلقت يدويا او بتارجت
مع اضافة هدف للامر العكسى
شاكر تعاونكم
تحياتى
- 23-09-2024, 02:13 PM #2
اذهب الى chatgpt و اعطه هذه الفكرة بالانجليزية و سوف يبرمجها لك في 3 ثواني و يعطيك الاكسبيرت جاهز.
- 23-09-2024, 05:24 PM #3
فارس أخوي تحياتي
حسب كلامك جربت أطلب منه عمل اكسبيرت يظهر مجمل الربح والخسارة اليومية والاسبوعية والشهرية على الشارت - كتب الاكسبيرت وحررته في الميتاتريدر ولكن عند عمل كومباين يعطيني اشارة خطا بان الاسبوع غير معرف
[COLOR=var(--color-distinctive-lack-of-hue)]make a metatrader 4 expert to show on the chart account total profit and loss for the day and the week and the month
[/COLOR]
ChatGPT
[COLOR=var(--color-distinctive-lack-of-hue)]To create a MetaTrader 4 (MT4) Expert Advisor (EA) that displays the total profit and loss for the day, week, and month on the chart, you can use the following MQL4 code. This EA will create an object on the chart showing these details.
Here’s a simple example of how you can implement it:
mql4
//+------------------------------------------------------------------+
//| ProfitLossDisplay.mq4 |
//| Copyright 2024, Company Name |
//| https://www.example.com |
//+------------------------------------------------------------------+
#property strict
// Global variables for profit and loss
double dailyProfitLoss, weeklyProfitLoss, monthlyProfitLoss;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Create a timer to update the display
EventSetTimer(60); // Update every minute
return (INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
// Remove objects on deinitialization
ObjectDelete("AccountPL");
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
// Update Profit and Loss values
CalculateProfitLoss();
// Display the total Profit and Loss
DisplayProfitLoss();
}
//+------------------------------------------------------------------+
//| Function to calculate Profit and Loss |
//+------------------------------------------------------------------+
void CalculateProfitLoss()
{
double totalProfit = 0;
double totalLoss = 0;
double groupProfit = 0;
int totalOrders = OrdersTotal();
// Loop through all orders to calculate daily, weekly, and monthly profit/loss
for(int i = 0; i < totalOrders; i++)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderType() == OP_BUY || OrderType() == OP_SELL)
{
double orderProfit = OrderProfit() + OrderSwap() + OrderCommission();
totalProfit += orderProfit;
// Check the order closing time against the current day, week, and month
datetime closeTime = OrderCloseTime();
if (TimeDay(closeTime) == TimeDay(TimeCurrent())) dailyProfitLoss += orderProfit;
if (TimeWeek(closeTime) == TimeWeek(TimeCurrent())) weeklyProfitLoss += orderProfit;
if (TimeMonth(closeTime) == TimeMonth(TimeCurrent())) monthlyProfitLoss += orderProfit;
}
}
}
// Update overall profit/loss
dailyProfitLoss = totalProfit;
weeklyProfitLoss = totalProfit;
monthlyProfitLoss = totalProfit;
}
//+------------------------------------------------------------------+
//| Function to display Profit and Loss on chart |
//+------------------------------------------------------------------+
void DisplayProfitLoss()
{
string text = StringFormat("Daily P/L: %.2f\nWeekly P/L: %.2f\nMonthly P/L: %.2f",
dailyProfitLoss, weeklyProfitLoss, monthlyProfitLoss);
// Create or update the text object on the chart
if(!ObjectFind(0, "AccountPL"))
{
ObjectCreate(0, "AccountPL", OBJ_LABEL, 0, 0, 0);
ObjectSetInteger(0, "AccountPL", OBJPROP_XSIZE, 200);
ObjectSetInteger(0, "AccountPL", OBJPROP_YSIZE, 50);
ObjectSetInteger(0, "AccountPL", OBJPROP_COLOR, clrWhite);
ObjectSetInteger(0, "AccountPL", OBJPROP_FONTSIZE, 12);
}
// Set the text property
ObjectSetString(0, "AccountPL", OBJPROP_TEXT, text);
ObjectSetInteger(0, "AccountPL", OBJPROP_XDISTANCE, 10);
ObjectSetInteger(0, "AccountPL", OBJPROP_YDISTANCE, 50);
ObjectSetInteger(0, "AccountPL", OBJPROP_SELECTED, 0);
}
//+------------------------------------------------------------------+
حاولت الرجوع له لتصحيح الخطأ ولكن كانت تظهر أخطاء إضافية في كل مرة هل لديك فكرة كيفية معالجة ذلك ؟؟
[/COLOR]
- 25-09-2024, 09:49 PM #4