السلام عليكم ورحمة الله وبركاتة
الف شكر لك يا اخى
كان فية غلطة انا بعملها
اسف انى ضيعت وقتك
والف شكر ليك ابو يوسف
Printable View
السلام عليكم ورحمة الله أستاذ أسامة :eh_s(7):
لدي سؤال أخر لو تسمح لي
بخصوص إكسبريت موضوع https://forum.arabictrader.com/t140771.html
الإكسبريت يفتح صفقاته حسب step
بعد وضعه على الشارت وفرضا ان السعر صعد بقيمة step سيفتح صفقة شراء A وإذا وصل إلى tp سيفتح صفقة شراء B أيضا وهكذا
وفي حال فتحت صفقة الشراء الأولى A ومن ثم عكس السعر بقيمة step ستفتح صفقة شراء أخرى B بلوت مضاعف
وإذا نزل السعر أيضا بقيمة step سيفتح صفقة شراء أخرى C بلوت مضاعف أيضا وهكذا
هدف صفقة A هو profit_factor
أما هدف الصفقة B هو (عدد العمليات المفتوحة * البروفت فاكتور) + سعر إفتتاح اخر عملية وهي A
(MODE_TRADES)
هنا يتغيير tp الصفقة A إلى Tp الصفقة B
وهدف الصفقة c هو أيضا بنفس المعادلة (عدد العمليات المفتوحة * البروفت فاكتور) + سعر إفتتاح اخر عملية وهي B
(MODE_TRADES)ََ
وهنا يتغير Tp صفقة الصفقة B إلى TP الصفقة C
طلبي هو طريقة تغيير tp كل صفقة..... في رأي ربما يجب إستخدام شروط الدخول يعني مثلا إذا تحققت شروط دخول الصفقة c سنغير Tp أخر الصفقات B و A إلى tp الصفقة c لاكن كيف :asvc: ؟
أرجو التوضيح وبارك الله فيك أستاذي الكريم :eh_s(7):
الله يعينك يا شير إنت وأستاذ أسامة
والله أنا هبطت وأنا بقراء السؤال
:)
أنا أسف على أسألتي الكتير يا أستاذ أسامة
بس أنا بحاول أتعلم عن طريق التطبيق المباشر
والحمد لله في إسبوع واحد إستفادت منك كتير
( زمانك بتقول لنفسك معقولة كل الأسئلة دي في إسبوع ده حاسس إنه بقاله سنة بيسأل :) )
السؤال الأول
السؤال التاني:
أنا دلوقتي عايز الإكسبيرت
يفتح مثلا عقد شراء وهيكون هدفه 50 نقطة
لو عكس السعر يبرد كل 50 نقطة
وفي الحالة دي يكون أهداف التبريد ( نقطة دخول العقد الرئيسي ) وفي نفس الوقت العقد الرئيسي يخرج على صفر
ونفس الكلام في البيع
الله يكرمك عدل على طول على الإكسبيرت عشان أعرف المكان إللي بيوضع فيه كل حاجة
مرفق
السلام عليكم
ماهو كود للاضافة تعليق على مؤشر خارج الشارت
بحيث يظهر التعليق في المؤشر الذي اريده اسفل الشارت
وكيف اجد كود لتحريك النص اوالتعليق الذي اريده
من الأمر Comment
وشكرا
كود:Comment("Programmed by MR.dollar"+"\n"+"منتدى المتداول العربي"+"\n"+"www.arabictrader.com/vb");
double orderopen_time,TimeT;
extern int Shift_UP_DN = 0;
extern int Adjust_Side_to_side = 20;
لأ يجب أن تقوم بضبطه
راجع الدوال الخاصة بإغلاق الصفقات
CloseBuyOrdersHiddenSL , CloseSellOrdersHiddenTP , CloseSellOrdersHiddenSL CloseBuyOrdersHiddenTP ,
يجب أن تضيف شرط
جرب ضبطه وأخبرني بمحاولتككود PHP:if(UseLineTP)TP=TP_L;
if(UseLineSL)SL=SL_L;
مثال أولا سأحتاج إلى معرفة آخر توقيت فتح صفقة بحيث أبدأ من بعد هذا التوقيت بحساب الفرص التالية التي ظهرت
ثم أقوم بعمل دالة تحسب عدد الشروط التي تحققت وكان المفروض أن تفتح صفقة بشرط أن يكون وقت تحقق الشرط بعد توقيت آخر فتح صفقةكود PHP:datetime LastOpenedOrder(){
for(int i=OrdersHistoryTotal();i>0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderOpenTime());
}
}
return(0);
}
ثم أضع الشرط قبل فتح الصفقهكود PHP:int FakeOpened(){
int Opened;
for(int i=1;i<Bars;i++){
double ma=iMA(NULL,0,14,0,MODE_EMA,PRICE_CLOSE,i);
if(Time[i]<LastOpenedOrder())return(Opened);
if(Close[i]<=ma1&&Close[i]>ma1){
Opened++;
}
}
return(Opened);
}
بنفس الكود يمكنك إضافة شروط آخر مثلا أن تتأكد أولا أن الصفقة خاسره حتى يحسب أن الأمر تم فتحهاكود PHP:if(FakeOpened()>2)
منتظر الإجابة يا أستاذ أسامة
أنا مش بستعجلك
أنا قصدي عشان لو ما كنتش شوفت السؤال
:)
وعليكم السلام ورحمه الله وبركاته
بسم الله الرحمن الرحيم
لمعرفة قمة التنكن سن في شمعة معينه هل اقوم باستدعاء هذه الداله
ام اقوم باستدعاء مؤشر الاشيموكو ؟كود PHP:double Tenk(int period,int i){
double high,low;
high=iHigh(NULL,period,iHighest(NULL,period,MODE_HIGH,Tenkan,i));
low =iLow (NULL,period,iLowest (NULL,period,MODE_LOW ,Tenkan,i));
double Tenk =(high+low)/2;
return(Tenk);}
1 ايهما افضل ؟
2 ايهما اسرع؟
3 ايهما اخف ؟
بارك اللة فيكم وشكرا لكم اخوكم ابو يوسف
سوف تستخدم نفس الداله لكن ستضيف لها شروط إغلاق أخرى
مثال :
كود PHP:
void PartialClose()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
int tick=OrderTicket();int T=OrderType();double P=OrderOpenPrice();double L=OrderLots();double p.=OrderTakeProfit();
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (T==OP_BUY&&Bid>(P+TakeProfit1*point)&&L==GlobalVariableGet("Lots"+Symbol()+Period()+tick))
{
OrderModify(tick,OrderOpenPrice(),P+StopLossAfterPartial*point,p.,0);
OrderClose(tick,NormalizeDouble(PercentClose1*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2),NormalizeDouble(Bid,Digits),3*Q);
GlobalVariableSet("Lots"+Symbol()+Period()+tick,L-NormalizeDouble(PercentClose1*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2));
}
if (T==OP_BUY&&Bid>(P+TakeProfit2*point)&&L==GlobalVariableGet("Lots"+Symbol()+Period()+tick))
{
OrderModify(tick,OrderOpenPrice(),P+StopLossAfterPartial*point,p.,0);
OrderClose(tick,NormalizeDouble(PercentClose2*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2),NormalizeDouble(Bid,Digits),3*Q);
GlobalVariableSet("Lots"+Symbol()+Period()+tick,L-NormalizeDouble(PercentClose2*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2));
}
if (T==OP_BUY&&Bid>(P+TakeProfit3*point)&&L==GlobalVariableGet("Lots"+Symbol()+Period()+tick))
{
OrderModify(tick,OrderOpenPrice(),P+StopLossAfterPartial*point,p.,0);
OrderClose(tick,NormalizeDouble(PercentClose3*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2),NormalizeDouble(Bid,Digits),3*Q);
}
if (T==OP_SELL&&Ask<(P-TakeProfit1*point)&&L==GlobalVariableGet("Lots"+Symbol()+Period()+tick))
{
OrderModify(tick,P,P-StopLossAfterPartial*point,p.,0);
OrderClose(tick,NormalizeDouble(PercentClose1*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2),NormalizeDouble(Ask,Digits),3*Q);
GlobalVariableSet("Lots"+Symbol()+Period()+tick,L-NormalizeDouble(PercentClose1*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2));
}//////
if (T==OP_SELL&&Ask<(P-TakeProfit2*point)&&L==GlobalVariableGet("Lots"+Symbol()+Period()+tick))
{
OrderModify(tick,P,P-StopLossAfterPartial*point,p.,0);
OrderClose(tick,NormalizeDouble(PercentClose2*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2),NormalizeDouble(Ask,Digits),3*Q);
GlobalVariableSet("Lots"+Symbol()+Period()+tick,L-NormalizeDouble(PercentClose2*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2));
}//////
if (T==OP_SELL&&Ask<(P-TakeProfit3*point)&&L==GlobalVariableGet("Lots"+Symbol()+Period()+tick))
{
OrderModify(tick,P,P-StopLossAfterPartial*point,p.,0);
OrderClose(tick,NormalizeDouble(PercentClose3*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2),NormalizeDouble(Ask,Digits),3*Q);
}//////
}
}
}
وعليكم السلام ورحمة الله وبركاته
يمكنك عمل داله تعود بقيمة الهدف لآخر صفقة تم فتحها مثال
ثم تقوم بعمل دالة تقارن بين الهدف لجميع الصفقات السابقة والهدف لآخر صفقة وتقوم بعمل مودفاي لباقي الأوامركود PHP:double GetLastTP(int type)
{
for (int cnt = OrdersTotal() ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() &&OrderType()==type)
{
return(OrderTakeProfit());
break;
}
}
return(0);
}
كود PHP:void ModifyNewTP(int type)
{
for (int cnt = OrdersTotal() ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() &&OrderType()==type)
{
if(OrderTakeProfit()!=GetLastTP(type))
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),GetLastTP(type),0);
}
}
}
سوف تقوم بعمل دالة لمعرفة سعر دخول العقد الأساسي
ودالة لعمل مودفاي للأوامر للهدف الجديدكود PHP:double GetFirstOrderPrice(int type)
{
for (int i=0;i<=OrdersTotal();i++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && OrderType()==type)
{
return(OrderOpenPrice());
}
}
return(0);
}
ثم تضع الشرطكود PHP:void ModifyNewTP(int type)
{
for (int cnt = OrdersTotal() ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() &&OrderType()==type)
{
if(OrderTakeProfit()!=GetFirstOrderPrice(type))
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),GetFirstOrderPrice(type),0);
}
}
}
مرفق الإكسبرت بعد التعديلكود PHP:if(orderstotal()>1){
ModifyNewTP(OP_BUY);ModifyNewTP(OP_SELL);
}
وعليكم السلام ورحمة الله وبركاته
حتى تقوم بوضع تعليق على مؤشر في نافذة مستقلة تستخدم
بالنسبة للأمر comment فلا يمكن تحديد مكان الكومنت فهو تلقائيا يوضع في أعلى يسار الشارت إلا إذا إستخدمت طبعا المسافة أو الإنتقال إلى سطر جديد n\كود PHP:IndicatorShortName
لذلك يمكنك أن تستخدم الداله objectcreate راجع المؤشر المرفق كمثال
ألف شكر أستاذ أسامة
الله يعينك ويقويك