انا مبتداء في برمجة اكسبيرتات التداول ,
اريد ان اعرف ما هي الدالة التي استطيع ان اعرف بها حالة الشمعة السابقة او الحالية , يعني هي شمعة صعود ام هبوط
و كيف اعرف حجم او طول الشمعة
و شكرا
Printable View
انا مبتداء في برمجة اكسبيرتات التداول ,
اريد ان اعرف ما هي الدالة التي استطيع ان اعرف بها حالة الشمعة السابقة او الحالية , يعني هي شمعة صعود ام هبوط
و كيف اعرف حجم او طول الشمعة
و شكرا
إذا كان الإغلاق أكبر من الإفتتاح فهذا يعني أن الشمعه صاعده وإذا كان الإغلاق أقل من الإفتتاح فهذا يعني أن الشمعه هابطه
وبالنسبه لحجم الشمعه فتحسب الفرق بين الإغلاق و الإفتتاح
مثال
كود PHP:if(Close[1]>Open[1])//pull candle
if(Close[1]<Open[1])// bear candle
int CandleSize=MathAbs(Close[1]-Open[1])/Point;
أخي MR.dollar أريد تصمي سكريبت يقوم . بفتح صفقات في مجومعة من النقاط أقوم بتحديدها بنفسي وأيضا بتحديد الستوب لوس وتاك بروفيت لكل صفقة على حدى .
مثال
يقوم بدخول في صفقة bay limit في النقطة 1.3420 و take profit هو 1.3500 و sell stop هو 1.3400
يقوم بدخول في صفقة bay stop في النقطة 1.3500 و take profit هو 1.3600 و sell stop هو 1.3480
السلام عليكم
لو سمحتم من يعطيني دالة لاستدعاء سعر أول صفقة شراء :hands:
وأول صفقة بيع
كل منهما على حدة وشكراا :asvc:
غير هذا السطر في الدالة
بهذا الكودكود PHP:for(int i=OrdersTotal()-1;i>=0;i--)
كود PHP:for(int i=0;i<=OrdersTotal();i++)
دالة فتح الصفقه وأوامر الهدف و الأستوب
وباقي الأوامر ستكون بطريقه مشابهه OP_BUYSTOP , OP_SELLSTOP , OP_SELLLIMITكود PHP:double OpenPrice=1.3420;
if(StopLoss==0){SL=0;}else{SL=OpenPrice-StopLoss*point;}
if(TakeProfit==0){TP=0;}else{TP=OpenPrice+TakeProfit*point;}
OrderSend(Symbol(),OP_BUYLIMIT,Lots,NormalizeDouble(OpenPrice,Digits),3,SL,TP,"EA",MagicNumber,0,Blue);
اساتذتنا لو ممكن دالة الستوب المتحرك :asvc:
جزاكم الله خيراا
تفضل الدالة كما هي في اكسبيرتاتي
كود PHP:void TrailingStopp()
{
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
{
double takeprofit = OrderTakeProfit();
if (OrderType() == OP_BUY && Ask - OrderOpenPrice() > TrailingStop*points)
{
if ((OrderStopLoss() < Ask-(TrailingStop+TrailingStep)*points) || (OrderStopLoss()==0))
{
if (TrailingProfit != 0) takeprofit = Ask+(TrailingProfit + TrailingStop)*points;
bool ret1 = OrderModify(OrderTicket(), OrderOpenPrice(), Ask-TrailingStop*points, takeprofit,0, White);
if (ret1 == false)
Print(" OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
if (OrderType() == OP_SELL && OrderOpenPrice() - Bid > TrailingStop*points)
{
if ((OrderStopLoss() > Bid+(TrailingStop+TrailingStep)*points) || (OrderStopLoss()==0))
{
if (TrailingProfit != 0) takeprofit = Bid-(TrailingProfit + TrailingStop)*points;
bool ret2 = OrderModify(OrderTicket(), OrderOpenPrice(), Bid+TrailingStop*points, takeprofit, 0, White);
if (ret2 == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
}
}
else
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
السلام عليكم استاذى الكريم
مستر دولار
كل عام وانت بخير
ارجو المساعدة
هذه الدالة تعمل على تحريك الهدف مع صفقات التعزيز
وبعد التحديث الاخير
لا تعمل
ارجو المساعدة
وجزاك الله خير
كود PHP://////////////////////////////////////تحريك التيك بروفيت مع كل صفقة تعزيز جديدة
double LastOrderTPB(){
for(int i=OrdersTotal()-1; i>=0; i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY){
return(OrderTakeProfit());
}
}
return(0);
}
void BuyOrderModify()
{
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), 0, LastOrderTPB(), 0, White);
}
}
}
double LastOrderTPS(){
for(int i=OrdersTotal()-1; i>=0; i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_SELL){
return(OrderTakeProfit());
}
}
return(0);
}
void SELLOrderModify()
{
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), 0, LastOrderTPS(), 0, White);
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
وكمان فى مشكلة فى دالة التريلنج استوب والبريك ايفن
شكل التحديث الجديد
غير طريقة : OrderModify
السلام عليكم ورحمة الله وبركاته
أساتذتي الكرام اتمنى أن تكونو في أفضل صحة وحال
أريد دالة تحقق هدف الشراء كما بالمثال بالصورة أسفلة،
توضيح : A و B و C و D و E هي اشارات دخول وخروج عكسي
F الهدف الرقمي بالدولار لصفقة الشراء
اللوت أساسي على جميع الصفقات، لا يوجد مضاعفات
تحياتي وتقديري
السلام عليكم
اريد رسم خط راسى يمر بنقطة التقاطع
هل يوجد دالة تحدد مكان التقاطع بالنسبة للزمن ؟
انا جربت استخدم دالة ObjectGetShiftByValue ولكن التقاطع مستقبلى فرقم الشمعة بالسالب ودالة ITime لاتقبل الشمعة بالسالب
جرت استخدم الرقم بالموجب واجيب الفرق وارجع اجمع تانى بس مبتبقاش مظبوطة لو التقاطع بعيد شوية عن الشمعة الحالية