السلام عليكم ورحمة الله وبركاته
عندما يكون لدينا اكثر من صفقه شراء
اريد داله تحدد الصفقه ذات اكبر ربح
واخرى تحدد الصفقه ذات اكبر خساره
واذا كان مجموعهم اكبر من صفر يغلق الصفقين
Printable View
السلام عليكم ورحمة الله وبركاته
عندما يكون لدينا اكثر من صفقه شراء
اريد داله تحدد الصفقه ذات اكبر ربح
واخرى تحدد الصفقه ذات اكبر خساره
واذا كان مجموعهم اكبر من صفر يغلق الصفقين
السلام عليكم و رحمة والله تعالى و بركاته
من فضلكم كيف اكتب خطوط الدعم و المقاومة
و اريد ان يكونان متوازيان مثلا هناك خط دعم في 20 و المقاومة في 40 و خط الدعم لي اسفل 20 يكون 0
ممكن تعطوني دالة من فظلكم انا محتاج الكثير من الخطوط و لكن اريد معرفة كيفية اضافة الخط الاول فقط و انا سأتكفل بإضافة باقي الخطوط و شكرا جزيلا على مجهوداتكم
وعليكم السلام ورحمة الله وبركاته
الداله لرسم الخطوط على الشارت هي ObjectCreate
هذا مثال لدالة ترسم خطوط أفقيه على الشارت
كود PHP:void drawHLine(string name, double price,color _Color)
{
if(ObjectFind(name) == -1)
{
ObjectCreate(name, OBJ_HLINE, 0, 0,price);
ObjectSet(name, OBJPROP_COLOR, _Color);
ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name, OBJPROP_WIDTH, Line_Width);
}
else if(ObjectGet(name,OBJPROP_PRICE1)!=price)
{
ObjectDelete(name);
}
يمكنك عمل دالة لمعرفة عدد العقود التي فتحها في هذا اليوم
مثال
كود PHP:double TodayCurrentLots()
{
double lots;
for(int i=0;i<OrdersTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderOpenTime()>=iTime(Symbol(),1440,0))
{
lots+=OrderLots();
}
}
return(lots);
}
وعليكم السلام ورحمة الله وبركاته
هذا مثال لدالتين تحدد أكبر خسارة وأكبر مكسب
كود PHP:double MaxLossOrder()
{
double MaxLoss;
for(int i=0;i<OrdersTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<MaxLoss)MaxLoss=OrderProfit();
}
}
return(MaxLoss);
}
double MaxProfitOrder()
{
double MaxProfit;
for(int i=0;i<OrdersTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()>MaxProfit)MaxProfit=OrderProfit();
}
}
return(MaxProfit);
}
شباب قمت بعمل اوامر معلقه شراء وبيع مثلا عند السعر 1.25890 المفروض بمجرد وصول السوق لهذا السعر يتم الشراء والبيع
لكن المشكلة التي تظهر انه قبل الوصول لهذا المستوى بنقطه واحده تقريبا يتم الشراء فقط ولايتم البيع الا في حال وصول السعر له يتم البيع
هل يوجد حل لجعل السوق يشتري ويبيع من نفس السعر بنفس لحظة ؟ لانه ممكن يتفعل سعر الشراء قبل نقطة واحدة وينزل السوق ويبقى عقد البيع غير مفعل !!
وعليكم السلام ورحمة الله وبركاته
أعتقد أنك تتكلم عن الإسبريد المتغير
لا يمكن إلا إذا جعلت الهدف أو الاستوب أو الأمر المعلق أمر مخفي بحيث عندما يصل السعر إلى هذه النقطه يتم فتح الصفقه. الفكره في أن تحفظ قيمة الإسبريد الحالي في متغير خارجي وليكن مثلا 3 نقاط ثم تضيفها على سعر البيد عندما تدخل أوامر الشراء أو تغلق الأوامر على الهدف أو الاستوب لوز
السلام عليكم ورحمة الله وبركاته
ارجو تصحيح الداله لحساب التراجع فى الاكيوتى
كود:void HiddenTrailingEquity()
{
double MinEquity=0;
if(OrdersTotal()==0||MinEquity==0)MinEquity=AccountEquity();
double Profit=AccountEquity()-MinEquity;
if(Profit>=TrailingEquity&&(GlobalVariableGet("TS Profit")<Profit-TrailingEquity||GlobalVariableGet("TS Profit")==0))
{
GlobalVariableSet("TS Profit",Profit-TrailingEquity);
}
if(Profit<=GlobalVariableGet("TS Profit")&&GlobalVariableGet("TS Profit")!=0)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
bool closeB=OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
if(OrderType()==OP_SELL)
{
bool closeS=OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
GlobalVariableDel("TS Profit");
MinEquity=AccountEquity();
}
}
//+------------------------------------------------------------------+
//| buyStop.mq4 |
//| Copyright © 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property show_inputs // This key property for scripts brings up a popup window of the external variables.
extern double Lots = 0.01;
extern double LotExponent = 1;
extern double PipStep = 1;
extern int TotalTradeNumber = 20;
extern double value = 123.000;
extern int MagicNumber = 478;
extern int TradeReverse = 0;
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
int ticket;
int trades = 0;
double lotVal = 0.0;
if (TotalTrades() < TotalTradeNumber)
{
trades = TotalTradeNumber - TotalTrades();
}
else
{
return (0);
}
if (TradeReverse == 0)
{
for ( int i = 0; i < trades; i++)
{
lotVal = NormalizeDouble( Lots * MathPow(LotExponent, i), 2);
ticket=OrderSend(Symbol(),OP_BUYLIMIT,lotVal,value-(PipStep*10*Point*i),0,0,0,"some comment",MagicNumber,0,Green);
if(ticket<=0)
Print("Error = ",GetLastError());
else
{
Print("ticket = ",ticket);
while(IsTradeContextBusy())
Sleep(100);
}
}
}
return(0);
}
int TotalTrades()
{
int totalTrades = 0;
for (int trade = OrdersTotal() - 1; trade >= 0; trade--)
{
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol())
{
if (OrderMagicNumber() == MagicNumber)
{
if (OrderType() == OP_BUYLIMIT)
{
totalTrades++;
}
}
}
}
return (totalTrades);
}
//+------------------------------------------------------------------+
ممكن اضافة mm في السكربت في المشاركه السابقه للتعلم بلون مختلف
نظرا لوجود اخطاء معي
السلام عليكم
استاذى الكريم كل عام وانت بكل خير
لو عندى اكسبيرت يفتح صفقات شراء وبيع كثيره
هل ممكن يتم عمل تريلينج استوب مع كل صفقة ويتحرك التريلينج استوب مع صفقته فقط
ونفس الشئ فى البريك ايفن يكون لكل صفقة بريك ايفن بيه فقط
ولك الشكر والتقدير على المساعده
تحياتى لك