يعطيك الف عافية ، بالطبع يمكن استخدام هذا الكود على أي فريم أليس كذلك ؟
Printable View
في البداية أنت إستخدمت الدالتين start و OnTick في الإكسبرت وهذا خطأ
فيجب أن تستخدم واحده فقط في هذه الحاله فالداله start كأن ليس لها وجود
بالنسبه للشرط
فبالتأكيد الشرط true==false لن يتحقق أبدا فلا يمكن أن تصبح ترو = فولس فلن يتم تنفيذه أبداكود PHP:if(true==false&&FiveDigitBroker) PipValue=10;
أما بالنسبه للخطئ الرئيسي لديك
فالصحيح أنك ستضع شروط فتح الصفقه بداله الحلقه for حتى يقارن بين جميع الخطوطكود PHP:for (int i=1; i<=20; i++)
{
double LineB=ObjectGet("Bi"+i,OBJPROP_PRICE1);
double LineS=ObjectGet("Si"+i,OBJPROP_PRICE1);
//+---OR
/*double LineB=ObjectGet("B"+i,OBJPROP_PRICE1);
double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);*/
//+---OR
/*double LineB=ObjectGet("B+i",OBJPROP_PRICE1);
double LineS=ObjectGet("S+i",OBJPROP_PRICE1);*/
//+---OR
/*double LineB=ObjectGet("Bi",OBJPROP_PRICE1);
double LineS=ObjectGet("Si",OBJPROP_PRICE1);*/
//+---OR
/*double LineB=ObjectGet("Bi+i",OBJPROP_PRICE1);
double LineS=ObjectGet("Si+i",OBJPROP_PRICE1);*/
}
if((Open[0]<=LineB&&Close[0]>=LineB)||(Open[0]<=LineS&&Close[0]>=LineS))
{
LimitOpenOrdersB();
LimitOpenOrdersS();
}
ليصبح
كود PHP:void TechnicalAnalysis()
{
for (int i=1; i<=20; i++)
{
double LineB=ObjectGet("Bi"+i,OBJPROP_PRICE1);
double LineS=ObjectGet("Si"+i,OBJPROP_PRICE1);
//+---OR
/*double LineB=ObjectGet("B"+i,OBJPROP_PRICE1);
double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);*/
//+---OR
/*double LineB=ObjectGet("B+i",OBJPROP_PRICE1);
double LineS=ObjectGet("S+i",OBJPROP_PRICE1);*/
//+---OR
/*double LineB=ObjectGet("Bi",OBJPROP_PRICE1);
double LineS=ObjectGet("Si",OBJPROP_PRICE1);*/
//+---OR
/*double LineB=ObjectGet("Bi+i",OBJPROP_PRICE1);
double LineS=ObjectGet("Si+i",OBJPROP_PRICE1);*/
if((Open[0]<=LineB&&Close[0]>=LineB)||(Open[0]<=LineS&&Close[0]>=LineS))
{
LimitOpenOrdersB();
LimitOpenOrdersS();
}
}
}
جزاك الله خيرا أستاذي الكريم
وأخيرا اشتغل الاكسبيرت تمام
والدالة الصحيحة هي كالتالي :
جزاك الله خيرا في الدنيا والآخرةكود PHP:for (int i=1; i<=20; i++)
{
double LineB=ObjectGet("B"+i,OBJPROP_PRICE1);
double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);
//+---
:eh_s(7):
السلام عليكم
هذا الاكسبيرت يعطي تنبية عند توفر شروط البيع والشراء
لكنة لا يفتح صفقات
فقمت باضافة امر البيع والشراء واصبح هاكذاكود:
#property copyright "Abukareem"
#property link "Abukareem"
extern double StopLoss = 60;
//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//---- return orders volume
if(buys>0) return(buys);
else return(-sells);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------+++
void CheckForOpen()
{
double ma11,ma12,ma13,ma14,ma15,ma16,ma17,ma18,ma19,ma20,ma21,ma22,ma23,ma24,ma25;
double sl,tp;
RefreshRates();
ma11=iCustom(NULL,0,"SuperTrend",10,0,0);
ma12=iCustom(NULL,0,"SuperTrend",10,0,1);
ma13=iCustom(NULL,0,"SuperTrend",10,0,2);
ma14=iCustom(NULL,0,"TraderWawasan HA",240,0,1);
ma15=iCustom(NULL,0,"TraderWawasan HA",240,1,1);
ma16=iCustom(NULL,0,"TraderWawasan HA",240,3,1);
ma17=iCustom(NULL,0,"TraderWawasan HA",240,4,1);
ma18=iCustom(NULL,0,"TraderWawasan MACD 2",0,2,1);
ma19=iCustom(NULL,0,"TraderWawasan MACD 2",0,3,1);
ma20=iCustom(NULL,0,"TraderWawasan MACD",0,2,1);
ma21=iCustom(NULL,0,"TraderWawasan MACD",0,3,1);
ma22=iCustom(NULL,0,"TraderWawasan HADM",0,0,1);
ma23=iCustom(NULL,0,"TraderWawasan HADM",0,1,1);
ma24=iCustom(NULL,0,"TraderWawasan HADM",0,2,1);
ma25=iCustom(NULL,0,"TraderWawasan HADM",0,3,1);
//---- sell conditions
if(Minute()<=1 && Close[2]>ma13 && Close[0]<ma11 && ma14>ma15 && ma14>ma17 && ma16>ma15 && ma16>ma17 && ma19<0 && ma21<0 && ma22>ma23 && ma22>ma25 && ma24>ma23 && ma24>ma25)
{
if (ma11==2147483647.00000000)sl=(Bid+StopLoss*Point); else sl=MathCeil(ma11/Point)*Point;
Alert("SELL "+Symbol()," StopLoss ="+sl); return;
}
//---- buy conditions
if(Minute()<=1 && Close[2]<ma13 && Close[0]>ma11 && ma15>ma14 && ma15>ma16 && ma17>ma14 && ma17>ma16 && ma18>0 && ma20>0 && ma23>ma22 && ma23>ma24 && ma25>ma22 && ma25>ma24)
{
if (ma11==2147483647.00000000)sl=(Bid-StopLoss*Point); else sl=MathCeil(ma11/Point)*Point;
Alert("BUY "+Symbol()," StopLoss ="+sl); return;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++
}
void CheckForClose()
{
double DI11,DI12,DI13,DI14,Var1,Var2,ma14,ma15,ma16,ma17;
RefreshRates();
Var1=iCustom(NULL,0,"Stokastik",13,0,1);
Var2=iCustom(NULL,0,"Stokastik",13,0,2);
ma14=iCustom(NULL,0,"TraderWawasan HA",240,0,0);
ma15=iCustom(NULL,0,"TraderWawasan HA",240,1,0);
ma16=iCustom(NULL,0,"TraderWawasan HA",240,3,0);
ma17=iCustom(NULL,0,"TraderWawasan HA",240,4,0);
if(OrderType()==OP_BUY)
{
if (Var2>Var1 && ma14>ma15 && ma14>ma17 && ma16>ma15 && ma16>ma17)
Alert("Close Orders");
}
if(OrderType()==OP_SELL)
{
if (Var2<Var1 && ma15>ma14 && ma15>ma16 && ma17>ma14 && ma17>ma16)
Alert("Close Orders");
}
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------++
//+------------------------------------------------------------------+
//| Start function |
//+------------------------------------------------------------------+
void start()
{
//---- check for history and trading
if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//----
}
//+-------------------------------------------------------------------------------------------------------------------------------------------------------------++
فما رأى اساتذتي هل ما قمت به صحيح ام خطاءكود:
#property copyright "Abukareem"
#property link "Abukareem"
extern double Lot = 0.1;
extern double StopLoss = 700;
extern int TakeProfit = 400;
extern int MagicNumber = 12345;
//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}
//---- return orders volume
if(buys>0) return(buys);
else return(-sells);
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------+++
void CheckForOpen()
{
double ma11,ma12,ma13,ma14,ma15,ma16,ma17,ma18,ma19,ma20,ma21,ma22,ma23,ma24,ma25;
double sl,tp;
RefreshRates();
ma11=iCustom(NULL,0,"SuperTrend",10,0,0);
ma12=iCustom(NULL,0,"SuperTrend",10,0,1);
ma13=iCustom(NULL,0,"SuperTrend",10,0,2);
ma14=iCustom(NULL,0,"TraderWawasan HA",240,0,1);
ma15=iCustom(NULL,0,"TraderWawasan HA",240,1,1);
ma16=iCustom(NULL,0,"TraderWawasan HA",240,3,1);
ma17=iCustom(NULL,0,"TraderWawasan HA",240,4,1);
ma18=iCustom(NULL,0,"TraderWawasan MACD 2",0,2,1);
ma19=iCustom(NULL,0,"TraderWawasan MACD 2",0,3,1);
ma20=iCustom(NULL,0,"TraderWawasan MACD",0,2,1);
ma21=iCustom(NULL,0,"TraderWawasan MACD",0,3,1);
ma22=iCustom(NULL,0,"TraderWawasan HADM",0,0,1);
ma23=iCustom(NULL,0,"TraderWawasan HADM",0,1,1);
ma24=iCustom(NULL,0,"TraderWawasan HADM",0,2,1);
ma25=iCustom(NULL,0,"TraderWawasan HADM",0,3,1);
//---- sell conditions
if(Minute()<=1 && Close[2]>ma13 && Close[0]<ma11 && ma14>ma15 && ma14>ma17 && ma16>ma15 && ma16>ma17 && ma19<0 && ma21<0 && ma22>ma23 && ma22>ma25 && ma24>ma23 && ma24>ma25)
{
if (ma11==2147483647.00000000)sl=(Bid+StopLoss*Point); else sl=MathCeil(ma11/Point)*Point;
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+StopLoss,Bid-TakeProfit,"Abukareem",MagicNumber,0,Red);
}
//---- buy conditions
if(Minute()<=1 && Close[2]<ma13 && Close[0]>ma11 && ma15>ma14 && ma15>ma16 && ma17>ma14 && ma17>ma16 && ma18>0 && ma20>0 && ma23>ma22 && ma23>ma24 && ma25>ma22 && ma25>ma24)
{
if (ma11==2147483647.00000000)sl=(Bid-StopLoss*Point); else sl=MathCeil(ma11/Point)*Point;
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-StopLoss,Ask+TakeProfit,"Abukareem",MagicNumber,0,Blue);
}
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++
}
void CheckForClose()
{
double DI11,DI12,DI13,DI14,Var1,Var2,ma14,ma15,ma16,ma17;
RefreshRates();
Var1=iCustom(NULL,0,"Stokastik",13,0,1);
Var2=iCustom(NULL,0,"Stokastik",13,0,2);
ma14=iCustom(NULL,0,"TraderWawasan HA",240,0,0);
ma15=iCustom(NULL,0,"TraderWawasan HA",240,1,0);
ma16=iCustom(NULL,0,"TraderWawasan HA",240,3,0);
ma17=iCustom(NULL,0,"TraderWawasan HA",240,4,0);
if(OrderType()==OP_BUY)
{
if (Var2>Var1 && ma14>ma15 && ma14>ma17 && ma16>ma15 && ma16>ma17)
Alert("Close Orders");
}
if(OrderType()==OP_SELL)
{
if (Var2<Var1 && ma15>ma14 && ma15>ma16 && ma17>ma14 && ma17>ma16)
Alert("Close Orders");
}
}
//---------------------------------------------------------------------------------------------------------------------------------------------------------------++
//+------------------------------------------------------------------+
//| Start function |
//+------------------------------------------------------------------+
void start()
{
//---- check for history and trading
if(Bars<100 || IsTradeAllowed()==false) return;
//---- calculate open orders by current symbol
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
else CheckForClose();
//----
}
//+-------------------------------------------------------------------------------------------------------------------------------------------------------------++
بارك الله فيك مستر دولار وجعله الله في ميزان حسناتك وعفر الله لك ولوالديك
ولا تنسانى في تكملة الدورة التعليمية لتعلم البرمجة بلغة MQL4
فنحن والله ننتظرك بشغف
جعلك الله في عون اخوانك دائما وزادك من علمه
بارك الله فيك وفي رزقك وفي اهلك
السلام عليكم أستاذي الكريم مستر دولار
تحية طيبة وبعد
أستاذي الكريم قمت ببرمجة اكسبيرت بالمنتدى وواجهتنا مشكلة ليست لدي خبرة فيها وهي تتعلق بحسابات السنت
أرجو فضلا وكرما مراجعة مشاركة صاحب الموضوع على الرابط التالي :
https://forum.arabictrader.com/t1942...ml#post2806648
وفقنا الله وإياكم
لدي استفسار برمجى بالمشاركة القادمة أرجو المساعدة الكريمة كما تعودنا منك فضلا لا أمرا
فأنت google بالنسبة لنا :0016: ما شاء الله تبارك الله
تحياتي مستر دولار وبعد :
أريد أن أحدد المدة الزمنية بين فتح صفقة وصفقة أخرى لا يقل عن 30 ثانية (على جميع الصفقات على جميع العملات)
مثال :
لدينا اكسبيرت مفعل على 25 عملة، كل له ماجيك نمبر خاص به
الفترة التي تفصل بين دخول صفقة وصفقة أخرى لا يقل عن 30 ثانية وهو شرط يتم معاينته على جميع الأزواج وليس لكل زوج
كي نتفادى تحقق دخول صفقتين في وقت واحد (أقل من 30 ثانية)
تحية ود وتقدير
اهلا حسن ، تفضل دالة ترجع بالوقت لآخر صفقة على المنصة
وهذا الشرط تضعه قبل البيه والشراء : 05*60 يعني نصف دقيقة و 4*60 يعني اربع دقائق وعليها القياس .كود PHP:datetime LastOrderOpenTimee(){ for(int i=OrdersTotal()-1; i>=0; i--){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { return(OrderOpenTime()); } } return(0);}
كود PHP:if((Time[0]-LastOrderOpenTimee())<(0.5*60)) return;
السلام عليكم مبرمجين واعضاء ومشرفين المنتدى
هذا الاكسبيرت يعطي تنبية للشراء والبيع
لكنه لا يدخل صفقات . الرجاء توضيح كيف الغي التنبية واجعلة يدخل صفقات
وكذلك به تنبية modify order . اريد ان الغي التنبيهات واحولها لاوامر تنفيذ
بارك الله فيكم جميعا
كود:#property copyright "Abukareem"
#property link "abukareem"
//#include <Debug.mqh>
extern int MaxSL = 1100;
extern int MinSL = 400;
extern int MinMoveValue = 200;
extern double BBMaxOpenOrderDeviation = 1.5;
extern double BBSLDeviation = 1.0;
extern double BBScalpingDeviation = 3.0;
extern int SEFCPeriod = 12;
int buys=0;
int sells=0;
int ticket = -1; // valid when one ticket is opened
double orderSL;
double orderTP;
#define SLIPPAGE 2
#define ORDER_COMMENT "FPSS"
bool CalculateOpenOrders(string symbol) {
buys=0;
sells=0;
for (int i=0; i<OrdersTotal(); i++) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) break;
if (OrderCloseTime() != 0) continue;
if (StringFind(OrderComment(), ORDER_COMMENT) < 0) continue;
// if for tester only, all orders are ours
if (OrderSymbol()==Symbol()) {
if (OrderType()==OP_BUY) buys++;
if (OrderType()==OP_SELL) sells++;
ticket = OrderTicket();
orderSL = OrderStopLoss();
orderTP = OrderTakeProfit();
}
}
if (buys > 0 && sells > 0) {
Print("WARNING: opened both buy and sell orders");
ticket = -1;
}
return (buys>0 || sells>0);
}
datetime lastOrderCandle = 0;
void DoOpenOrder(int type, string typeS, double price, double sl, double tp) {
if (lastOrderCandle == Time[0]) {
return; // to protect Order/SL, Order/SL during one candle
}
lastOrderCandle = Time[0];
Alert("Trend change signalized, open "+typeS+" order, symbol: "+Symbol()+", price: "+price+", stoploss: "+sl, ", tp: "+tp + ", Comment: "+ORDER_COMMENT);
if (!IsTesting()) return;
int ot = OrderSend(Symbol(), type, MarketInfo(Symbol(), MODE_MINLOT), price, SLIPPAGE, sl, tp, ORDER_COMMENT, 0, 0, Yellow);
if (ot < 0) Print(GetLastError());
}
void DoCloseOrder(int type, string typeS, double price) {
static datetime lastCloseCandle = 0;
static int lastCloseTicket = -1;
if (Time[0] == lastCloseCandle && lastCloseTicket == ticket) return;
lastCloseTicket = ticket;
lastCloseCandle = Time[0];
lastOrderCandle = 0;
Alert("Trend change signalized, close "+typeS+" orders. Close price: "+price);
if (!IsTesting()) return;
for (int i=0; i<OrdersTotal(); i++) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) break;
if (OrderType() == type) {
if (!OrderClose(OrderTicket(), OrderLots(), price, SLIPPAGE, Orange)) {
Print("OrderClose", GetLastError());
}
}
}
}
void DoModifyOrder(int type, string typeS, double sl, double tp) {
//Debug("Modif1", ticket, type, sl, tp, orderSL, orderTP);
if (ticket < 0) return;
double minMove = Point*MinMoveValue;
if (MathAbs(sl-orderSL) < minMove && MathAbs(tp-orderTP) < minMove) return;
// if (lastOrderCandle == Time[0]) return; // do not modify in order period, ne have higher TP when (Ask/Bid+deviation)
// lastOrderCandle = Time[0]; // modify SL/TP once per period ??
Alert("Modify order: ", typeS, ", Move SL: ", sl, ", TP: ", tp);
if (!IsTesting()) return;
bool res = OrderModify(ticket, OrderOpenPrice(), sl, tp, 0, Yellow);
//Debug("Modify", type, ticket, sl, tp, res);
}
int init() {
//DebugOpen("", "FPS.dbg");
return(0);
}
void deinit() {
//DebugClose();
}
int start() {
if (Bars<100) {
return(0); // not enough data
}
// test for signal arrow, current signal, indicator has Signal=1 to draw arrows
int BBBuySignal = 0;
int BBSellSignal = 0;
double sl;
sl = iCustom(Symbol(), Period(), "BBand Stop Alert", BBSLDeviation, 2 /*buy arrow*/, 1);
if (sl != EMPTY_VALUE) { // buy arrow is at the lower band
BBBuySignal++;
// and the trend go on at leas in one sample, i.e. filter case when close price won't reach previous one a tall
if (Close[0] > Close[1]) {
BBBuySignal++;
}
} else {
sl = iCustom(Symbol(), Period(), "BBand Stop Alert", BBSLDeviation, 3 /*sell arrow*/, 1);
if (sl != EMPTY_VALUE) {
BBSellSignal++;
if (Close[0] < Close[1]) {
BBSellSignal++;
}
}
}
if (sl == EMPTY_VALUE) {
sl = iCustom(Symbol(), Period(), "BBand Stop Alert", BBSLDeviation, 0 /*buffer*/, 1); // previous sample not to be so strict
if (sl == EMPTY_VALUE) {
sl = iCustom(Symbol(), Period(), "BBand Stop Alert", BBSLDeviation, 1 /*buffer*/, 1);
}
}
double middle = iCustom(Symbol(), Period(), "BBand Stop Alert", BBSLDeviation, 6 /*middle trend */, 0);
double bbWidth = iCustom(Symbol(), Period(), "BBand Stop Alert", BBSLDeviation, 7 /*width */, 0);
// double tp = MathMax(BBScalpingDeviation*bbWidth, Point*MaxSL);
double tp = BBScalpingDeviation*bbWidth;
//Debug("middle/stp", sells, buys, BBBuySignal, BBSellSignal, Bid, middle, bbWidth, sl, tp, MathAbs(Bid-sl), MathAbs(Bid-sl) <= Point*MaxSL, MathAbs(Bid-sl) >= Point*MinSL, MathAbs(Bid-middle)<= BBMaxOpenOrderDeviation*bbWidth);
// trend detection may be anothe criterion
bool Bullish = iCustom(Symbol(), Period(), "SEFC084", SEFCPeriod, 1/* bull*/, 1) > 0; // is not bull then must be bear
if (CalculateOpenOrders(Symbol())) {
if ((Bid > sl /* in tester is applied on SL but has effect in manual mode */|| BBBuySignal >0) && sells > 0) {
DoCloseOrder(OP_SELL, "SELL", Ask);
sells = 0;
}
if ((Bid < sl || BBSellSignal >0) && buys > 0) {
DoCloseOrder(OP_BUY, "BUY", Bid);
buys = 0;
}
double sl2;
if (buys == 1) {
if (MathAbs(Bid-sl) < Point*MinSL) {
sl2 = orderSL;
}
else {
sl2 = MathMax(orderSL, sl);
}
DoModifyOrder(OP_BUY, "BUY", sl2, middle + tp);
}
if (sells == 1) {
if (MathAbs(Bid-sl) < Point*MinSL) {
sl2 = orderSL;
}
else {
sl2 = MathMin(orderSL, sl+Ask-Bid);
}
DoModifyOrder(OP_SELL, "SELL", sl2, middle - tp + Ask-Bid);
}
}
if (MathAbs(Bid-sl) <= Point*MaxSL && // do not open order when deviation is too high and price is already far from band
MathAbs(Bid-sl) >= Point*MinSL && // price is back in channel or channel is too narrow
MathAbs(Bid-middle)<= BBMaxOpenOrderDeviation*bbWidth // price is not too far, bounce danger
) {
if (BBBuySignal>1 && Bullish && buys == 0) {
DoOpenOrder(OP_BUY, "BUY", Ask, sl, middle + tp);
} else if (BBSellSignal>1 && !Bullish && sells == 0) {
DoOpenOrder(OP_SELL, "SELL", Bid, sl + Ask-Bid, middle - tp + Ask-Bid);
}
}
return(0);
}
شكرا على المساعدة الكريمة :eh_s(7):
وسؤال آخر لو سمحت
كيف يمكن أن أجعل الاكسبيرت ان لا يفتح أكثر من 20 صفقة في اليوم الواحد
عملت اول جزء كالتالي :
بقي لي إضافة شرط "في اليوم الواحد" 24 ساعةكود PHP://+------------------Limit Open All Orders--------------------------------+
int LimitOpenAllOrders1()
{
int count;
for (int i=OrdersTotal()-1; i>=0; i--)
OrderSelect(i,SELECT_BY_POS,MODE_TRADES)
if(OrderType()==OP_SELL&&OrderType()==OP_BUY)
{
count++;
}
return(count);
}
int LimitOpenAllOrders2()
{
int count;
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
if(OrderType()==OP_SELL&&OrderType()==OP_BUY)
{
count++;
}
return(count);
}
//+------------------Open Order1 CONDITIONS--------------------------------+
void Technical()
{
if ((LimitOpenAllOrders1()+LimitOpenAllOrders2())<30)
{
//////
}
}
بمعنى آخر كل يوم لا يفتح أكثر من 20 صفقة إجمالية على جميع العملات
جزاك الله خيرا