النتائج 1 إلى 4 من 4
- 09-04-2018, 06:36 PM #1
اريد دالة تفعل كل هذه الاشياء في وقت واحد
لنفترض اني دخلت في صفقت بيع لم اضع لها لا التيكت بروفيت ولا الستوب لوز
هبطت وانا رابح فيها لكني لم اغلقها اكمل القراءة فقط
ثم دخل صفقة بيع بلوت اقل من الاولى
الان اصبح لدي 2 صفقات
لنفترض الان عندي 10 صفقات بيع بحجم عقود متسلسلة
الان يا اخوتي ما اريده هو كالاتي
سعر دخول الصفقة الاولى
-
سعر دخول الصفقة الاخيرة وهي رقم 10
الناتج الان لنفترض انه 0.0350 نقطة
نقسم هذه النقاط على 100
ثم نضربها في قيمة اسمها فيبو بروفيت ونعطيها 37 (fibou_profit=37.0)
الان سيصبح عدد النقاط هو 0,01295
نضيف هذا الرقم الى الصفقة العاشرة والناتج هو موديفاي اوردر
اي ستوب لوس جماعي لكل الصفقات العشر
يا رب تكون فكرتي وضحت لكم بالنسبة
__________________________________________________ ___________________________________
ثانيا
لنفترض اني دخلت في صفقت شراء لم اضع لها لا التيكت بروفيت ولا الستوب لوز
هبطت وانا خاسر فيها لكني لم اغلقها اكمل القراءة فقط
ثم دخل صفقة شراء بلوت اكبر من الاولى
الان اصبح لدي 2 صفقات
لنفترض الان عندي 10 صفقات بيع بحجم عقود متسلسلة
الان يا اخوتي ما اريده هو كالاتي
سعر دخول الصفقة الاولى
- ناقص
سعر دخول الصفقة الاخيرة وهي رقم 10
الناتج الان لنفترض انه 0.0350 نقطة
نقسم هذه النقاط على 100
ثم نضربها في قيمة اسمها فيبو لوس ونعطيها 37 (fibou_loss=37.0)
الان سيصبح عدد النقاط هو 0,01295
نضيف هذا الرقم الى الصفقة الاخير والناتج هو موديفاي اوردر
اي ستوب لوس جماعي لكل الصفقات العشر
يا رب تكون فكرتي وضحت لكم ايضا يا اخوتي
__________________________________________________ __________________________________
ثالثا
لنفترض اني دخلت في صفقت شراء لم اضع لها لا التيكت بروفيت ولا الستوب لوز
صعدت وانا رابح فيها لكني لم اغلقها اكمل القراءة فقط
ثم دخلت صفقة شراء بلوت اقل من الاولى
الان اصبح لدي 2 صفقات
لنفترض الان عندي 10 صفقات بيع بحجم عقود متسلسلة
الان يا اخوتي ما اريده هو كالاتي
سعر دخول الاخير وهي رقم 10
- ناقص
سعر دخول الصفقة الاولى وهي رقم 1
الناتج الان لنفترض انه 0.0350 نقطة
نقسم هذه النقاط على 100
ثم نضربها في قيمة اسمها فيبو لوس ونعطيها 37
الان سيصبح عدد النقاط هو 0,01295
نطرح هذا الرقم الى الصفقة الاخيرة والناتج هو موديفاي اوردر
اي ستوب لوس جماعي لكل الصفقات العشر
يا رب تكون فكرتي وضحت لكم ايضا يا اخوتي
__________________________________________________ ________________________________________
رابعا
لنفترض اني دخلت في صفقت بيع لم اضع لها لا التيكت بروفيت ولا الستوب لوز
صعدت وانا خاسرفيها لكني لم اغلقها اكمل القراءة فقط
ثم دخل صفقة بيع بلوت اكبرمن الاولى
الان اصبح لدي 2 صفقات
لنفترض الان عندي 10 صفقات بيع بحجم عقود متسلسلة
الان يا اخوتي ما اريده هو كالاتي
سعر دخول الاخير وهي رقم 10
- ناقص
سعر دخول الصفقة الاولى وهي رقم 1
الناتج الان لنفترض انه 0.0350 نقطة
نقسم هذه النقاط على 100
ثم نضربها في قيمة اسمها فيبو لوس ونعطيها 37
الان سيصبح عدد النقاط هو 0,01295
نطرح هذا الرقم الى الصفقة الاخيرة والناتج هو موديفاي اوردر
اي ستوب لوس جماعي لكل الصفقات العشر
يا رب تكون فكرتي وضحت لكم ايضا يا اخوتي
__________________________________________________ __________________________________________
بالنسبة الى fibou_profit و fibou_loss انا من احددهما من الاعدادات كما ريد
يا رب تكون الفكرة وصلت وانا بدأت فيها لكن تضهر لي مشاكل ولا تعمل كلها مع بعضها يعني مثلا لو 10 شراء خاسرة و10 بيع رابحة
يضهر مستوى الاغلاق للصفقات الشراء فقط ولا يضهر الاغلاق لصفقات البيع او العكس يظهر مستوى اغلاق البيع ولا يظهر مستوى اغلاق الشراء وانا اريد ان يظهرا معا اذا تحققت كل الشروط وكانت الصفقات اكثر من 4 من نوع واحد
شكرا مقدما
- 10-04-2018, 08:03 PM #2
أرفق الكود الذي قمت بعمله وسوف أوضح لك الأخطاء بدلا من البدء من جديد
- 11-04-2018, 12:40 AM #3كود PHP:
void AvTakeProfit(int type)
{
double SLS=/*Av_Prices*/modify_sell_(OP_SELL);
double SLB=/*Av_Prices*/modify_buy_(OP_BUY);
double TPS=/*Av_Prices*/modify_sell_(OP_SELL);
double TPB=/*Av_Prices*/modify_buy_(OP_BUY);
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
bool s=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
double sl=OrderStopLoss(),
tp=OrderTakeProfit(),
op=OrderOpenPrice();
int tk=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic_number&&OrderType()==type)
{
if(OrderType()==OP_BUY)
{
if(NormalizeDouble(sl,Digits)!=NormalizeDouble(SLB,Digits)&&Bid>SLB/*Orderscnt(OP_BUY)>0 && buy1>Bid*/)bool m2=OrderModify(tk,op,SLB,tp,0,Red);operation();
if(NormalizeDouble(tp,Digits)!=NormalizeDouble(TPB,Digits)&&Bid<TPB/*Orderscnt(OP_BUY)>0 && buy1<Bid*/) m2=OrderModify(tk,op,sl,TPB,0,Red);operation();
}
if(OrderType()==OP_SELL)
{
if(NormalizeDouble(sl,Digits)!=NormalizeDouble(SLS,Digits)&&Ask<SLS/*Orderscnt(OP_SELL)>0 && sell1<Bid*/)bool m1=OrderModify(tk,op,SLS,tp,0,Blue);operation();
if(NormalizeDouble(tp,Digits)!=NormalizeDouble(TPS,Digits)&&Ask>TPS/*Orderscnt(OP_SELL)>0 && sell1>Bid*/) m1=OrderModify(tk,op,sl,TPS,0,Blue);operation();
}
}
}
}
كود PHP:double modify_sell_(int type)
{
double fibouloss2=fibouloss-5,fibouloss3=fibouloss-7,fibouloss4=fibouloss-10,fibouloss5=fibouloss-20;
double fibouprofit2=fibouprofit-5,fibouprofit3=fibouprofit-7,fibouprofit4=fibouprofit-10,fibouprofit5=fibouprofit-20;
if(Orderscnt(OP_SELL)<4 && Orderscnt(OP_SELL)>0)
{
double Price;
for(int i=0;i<=OrdersTotal();i++)
{
bool s=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic_number)
{
if(OrderType()==type)
{
Price+=OrderOpenPrice();
}
}
}
if(Orderscnt(type)>0 && Orderscnt(type)<=4 )return(Price/Orderscnt(type));else return(0);
}
if(Orderscnt(OP_SELL)>4 && sell1<Bid)
{
if(Orderscnt(OP_SELL)>=5 && Orderscnt(OP_SELL)<=7 && sell1<Bid){return(MathAbs(HighestPrice_bid(OP_SELL)-(((HighestPrice_bid(OP_SELL)-sell1)*fibouloss)/100)));}
else if(Orderscnt(OP_SELL)==8 && sell1<Bid ){return(MathAbs(HighestPrice_bid(OP_SELL)-(((HighestPrice_bid(OP_SELL)-sell1)*fibouloss2)/100)));}
else if(Orderscnt(OP_SELL)==9 && sell1<Bid ){return(MathAbs(HighestPrice_bid(OP_SELL)-(((HighestPrice_bid(OP_SELL)-sell1)*fibouloss2)/100)));}
else if(Orderscnt(OP_SELL)==10 && sell1<Bid){return(MathAbs(HighestPrice_bid(OP_SELL)-(((HighestPrice_bid(OP_SELL)-sell1)*fibouloss3)/100)));}
else if(Orderscnt(OP_SELL)==11 && sell1<Bid){return(MathAbs(HighestPrice_bid(OP_SELL)-(((HighestPrice_bid(OP_SELL)-sell1)*fibouloss4)/100)));}
else if(Orderscnt(OP_SELL)>=12 && sell1<Bid){return(MathAbs(HighestPrice_bid(OP_SELL)-(((HighestPrice_bid(OP_SELL)-sell1)*fibouloss4)/100)));}
else return(0);
}
else if(Orderscnt(OP_SELL)>4 && sell1>Bid)
{
if(Orderscnt(OP_SELL)>=5 && Orderscnt(OP_SELL)<=7 && sell1>Bid){return((((HighestPrice_bid(OP_SELL)-LowestPrice_bid(OP_SELL))/100)*fibouprofit)+LowestPrice_bid(OP_SELL));}
else if(Orderscnt(OP_SELL)==8 && sell1>Bid ){return((((HighestPrice_bid(OP_SELL)-LowestPrice_bid(OP_SELL))/100)*fibouprofit2)+LowestPrice_bid(OP_SELL));}
else if(Orderscnt(OP_SELL)==9 && sell1>Bid ){return((((HighestPrice_bid(OP_SELL)-LowestPrice_bid(OP_SELL))/100)*fibouprofit2)+LowestPrice_bid(OP_SELL));}
else if(Orderscnt(OP_SELL)==10 && sell1>Bid){return((((HighestPrice_bid(OP_SELL)-LowestPrice_bid(OP_SELL))/100)*fibouprofit3)+LowestPrice_bid(OP_SELL));}
else if(Orderscnt(OP_SELL)==11 && sell1>Bid){return((((HighestPrice_bid(OP_SELL)-LowestPrice_bid(OP_SELL))/100)*fibouprofit4)+LowestPrice_bid(OP_SELL));}
else if(Orderscnt(OP_SELL)>=12 && sell1>Bid){return((((HighestPrice_bid(OP_SELL)-LowestPrice_bid(OP_SELL))/100)*fibouprofit4)+LowestPrice_bid(OP_SELL));}
else return(0);
}else return(0);
}
double modify_buy_(int type)
{
double fibouloss2=fibouloss-5,fibouloss3=fibouloss-7,fibouloss4=fibouloss-10,fibouloss5=fibouloss-20;
double fibouprofit2=fibouprofit-5,fibouprofit3=fibouprofit-7,fibouprofit4=fibouprofit-10,fibouprofit5=fibouprofit-20;
if(Orderscnt(OP_BUY)<4 && Orderscnt(OP_BUY)>0)
{
double Price;
for(int i=0;i<=OrdersTotal();i++)
{
bool s=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic_number)
{
if(OrderType()==type)
{
Price+=OrderOpenPrice();
}
}
}
if(Orderscnt(type)>0 && Orderscnt(type)<=4 )return(Price/Orderscnt(type));else return(0);
}
if(Orderscnt(OP_BUY)<4 && Orderscnt(OP_BUY)>0){return(MathAbs((buy1-LastOrderCurrent("OpenPrice",OP_BUY))/Orderscnt(OP_BUY)));}
if(Orderscnt(OP_BUY)>4 && buy1>Bid)
{
if (Orderscnt(OP_BUY)>=5 && Orderscnt(type)<=7&& buy1>Bid){return(LowestPrice_bid(OP_BUY)+(((buy1-LowestPrice_bid(OP_BUY))*fibouloss)/100));}
else if (Orderscnt(OP_BUY)==8 && buy1>Bid){return(LowestPrice_bid(OP_BUY)+(((buy1-LowestPrice_bid(OP_BUY))*fibouloss2)/100));}
else if (Orderscnt(OP_BUY)==9&& buy1>Bid){return(LowestPrice_bid(OP_BUY)+(((buy1-LowestPrice_bid(OP_BUY))*fibouloss2)/100));}
else if (Orderscnt(OP_BUY)==10&& buy1>Bid){return(LowestPrice_bid(OP_BUY)+(((buy1-LowestPrice_bid(OP_BUY))*fibouloss3)/100));}
else if (Orderscnt(OP_BUY)==11&& buy1>Bid){return(LowestPrice_bid(OP_BUY)+(((buy1-LowestPrice_bid(OP_BUY))*fibouloss4)/100));}
else if (Orderscnt(OP_BUY)>=12&& buy1>Bid){return(LowestPrice_bid(OP_BUY)+(((buy1-LowestPrice_bid(OP_BUY))*fibouloss4)/100));}
else return(0);
}
else if(Orderscnt(OP_BUY)>4 && buy1<Bid)
{
if (Orderscnt(OP_BUY)>=5 && Orderscnt(type)<=7&& buy1<Bid){return((((buy1-LowestPrice_bid(OP_BUY))/100)*fibouprofit)+LowestPrice_bid(OP_BUY));}
else if (Orderscnt(OP_BUY)==8 && buy1<Bid){return((((buy1-LowestPrice_bid(OP_BUY))/100)*fibouprofit2)+LowestPrice_bid(OP_BUY));}
else if (Orderscnt(OP_BUY)==9&& buy1<Bid){return((((buy1-LowestPrice_bid(OP_BUY))/100)*fibouprofit3)+LowestPrice_bid(OP_BUY));}
else if (Orderscnt(OP_BUY)==10&& buy1<Bid){return((((buy1-LowestPrice_bid(OP_BUY))/100)*fibouprofit3)+LowestPrice_bid(OP_BUY));}
else if (Orderscnt(OP_BUY)==11&& buy1<Bid){return((((buy1-LowestPrice_bid(OP_BUY))/100)*fibouprofit4)+LowestPrice_bid(OP_BUY));}
else if (Orderscnt(OP_BUY)>=12&& buy1<Bid){return((((buy1-LowestPrice_bid(OP_BUY))/100)*fibouprofit4)+LowestPrice_bid(OP_BUY));}
else return(0);
}else return(0);
}
- 15-04-2018, 05:53 PM #4
السلام عليكم اخي الكريم
شيئ جميل جدا ان يضع المرء عصارة عملية تفكير طويلة بين يدي اخوانه للفائدة حياك الله اخي الكريم
ولكن يجب ان يكون بدون اخطاء للاستفادة منه وتنقيحة او تطويره .. انت قمت باجتزاء الدوال من برنامجك وبه العديد
من المتغيرات والدوال الاخرى المعرفة لديك والمجهولة بالنسبة لنا فما الفائدة اذا
تقبل مروري وبدون زعل