جزاك الله خير اخي جميل وغفر الله لك ولوالديك ,,,
سوف اقوم بالتجربه إن شاء الله يضبط :012:
Printable View
السلام عليكم ورحمة الله وبركاتة
وظيفة تحريك التريلينج استوب
ما المقصود بالكود التاليكود://----//
void MoveTrailingStop()
{
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*pt,Digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*pt,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(Bid-TrailingStop*pt,Digits))||(OrderStopLoss()==0))
{
bool mm=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*pt,Digits),OrderTakeProfit(),0,Blue);
}
}
}
else
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*pt,Digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*pt,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)>(NormalizeDouble(Ask+TrailingStop*pt,Digits)))||(OrderStopLoss()==0))
{
bool mnm=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*pt,Digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
//----//
كود:OrderType()<=OP_SELL
اشكرك كثيرا استاذي جميل
لفد قمت بازالتها
كما ازالة else ووضع مكانها if order type open sell
هل الكود الان صحيح ام به خطاء
كود://----//
void MoveTrailingStop()
{
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*pt,Digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*pt,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(Bid-TrailingStop*pt,Digits))||(OrderStopLoss()==0))
{
bool mm=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*pt,Digits),OrderTakeProfit(),0,Blue);
}
}
}
if(OrderType()==OP_SELL)
{
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*pt,Digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*pt,Digits))
{
if((NormalizeDouble(OrderStopLoss(),Digits)>(NormalizeDouble(Ask+TrailingStop*pt,Digits)))||(OrderStopLoss()==0))
{
bool mnm=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*pt,Digits),OrderTakeProfit(),0,Red);
}
}
}
}
}
}
//----//
السلام عليكم ورحمة الله وبركاتة
شباب سؤال كيف بحول مؤشر ديمارك الى اكسبيرت :)
المؤشر مرفق
ادخل على خصائص المؤشر وقوم بتفعيل خاصيه TakeLines حتى يتم توضيح الاهداف
الملف المرفق 433976
كما نلاحظ عند تفعيل takelines تظهر خطوط زرقاء منقطه وهي اهداف كسر الخط الازرق
وخطوط حمراء منقطه وهي اهداف كسر الخط الاحمر
الاستوب يكون نصف الهدف
كيف نعرف انه تم الكسر ؟ وكيف نعرف ايضا ماهي الاهداف التي يضعها المؤشر ؟؟
من خلال البحث وجدت اكسبيرت ديمارك ولكن باهداف محدده وليس باهداف واضحه كما يضعها المؤشر لانه ممكن تعمل على فريمات مختلفه وكل كسر يختلف هدفه
السلام عليكم
اواجه مشكلتين في داله توقيت الفتح لاخر صفقه
الاولى ان الداله لاتعمل الا بعد صفقتين
الثانيه عندما استخدما في الستوب لوز بالشكل التالي وهي تحدث عنما يكون فتح واغلاق الصفقه في نفس الشمعه فهي تعطي سعر بعيد جدا اما الحلات الاخرى فتعمل جيدا
كود:
int barshift=iBarShift(Symbol(),0,LastopenOrderTime(),false);
double low=Low[iLowest(Symbol(),0,MODE_LOW,barshift,0)];
double high=High[iHighest(Symbol(),0,MODE_HIGH,barshift,0)];
datetime LastopenOrderTime(){
for(int i=OrdersHistoryTotal();i>0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderOpenTime());
}
}
return(0);
}
لسلام عليكم طلب مؤشر KorHarmonics الجديد حيث المؤشر القديم لايعمل عندي ارجو المساعدة
عليكم السلام
مرفق اصدار يعمل بدون مشاكل ,,,
هذا منتدى خاص بالمؤشر هنا
http://tradingarsenal.com/korharmoni...r-releases-32/
لدي سؤال ياشباب ,,,
كيف اعمل اكسبيرت اذا ظهرت اشارة شراء يدخل واذا ظهرت اشارة بيع ايضا يدخل
كنا نستخدم عدد الصفقات المفتوحه من نفس نوع ماجيك نمبر ونقول للاكسبيرت اذا لايوجد صفقات مفتوحه ادخل كذا ..
لكن انا ارغب اذا ظهرت اشارة شراء بيدخل او هدف او استوب اذا ظهرت اشارة بيع وصفقه شراء مفتوحة يدخل صفقة بيع او هدف او استوب
كمثال :
تقاطع ستوكاستك تحت مستوى 20 هنا بندخل شراء بهدف واستوب وحجم لوت بنسبه مخاطرة لنفرض حجم لوت 1
وكانت صفقة الشراء مفتوحة وظهرت لدينا صفقة بيع تقاطع فوق مستوى 80 مفروض بتاخذ نفس حجم لوت الصفقه مفتوحة حاليا بنفس ماجيك نمبر وهنا لدينا الحجم 1 ندخل بيع ايضا
بمعنى يكون الدخول مره واحدة حسب نوع الصفقة شراء او بيع ولوت في اول صفقه يتم احتسابه بنسبة مئويه للمخاطرة لكن العقد التالي ولدينا صفقة مفتوحة بتاخذ حجم لوت الصفقة المفتوحة
تستخدم نفس الداله ولكن نوع الصفقه
كود:int TotalOrders(int type)
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type){
cnt++;
}
}
}
return(cnt);
}
(if (TotalOrders(OP_BUY)<1
open buy=====
(if (TotalOrders(OP_SELL)<1
OPEN SEEL
جزاك الله خير اخي الحبيب
كيف بجعل الصفقه الثانيه بتاخذ حجم لوت الصفقه الاولى المفتوحه ؟
بمعنى لو دخلت العقد الاول بمخاطرة 1% وظهرت صفقه ثانية كيف تجعلها تدخل بنفس حجم لوت ؟
مثل داخل دالة حساب حجم المخاطرة اذا كانت صفقة تحمل نفس ماجيك نمبر ومفتوحة حاليا تقوم باعادة حجم لوت المفتوح ..
او تقوم باعادة حجم لوت المخاطرة اذا وضعت له 1 % والاستوب 25 اذا ضرب الاستوب تكون خسرت 1 %
شكرا لك
سؤال اخر ماقبل الغداء :0016:
في هذا المؤشر ماعرفت كيف اوصل للدخول مع السهم بمعنى مجرد اغلاق شمعه وظهر سهم بدخل
لم استطيع الوصول للاسهم لانه غير موجود لهم خصائص !!!
تحتاج داله لحساب حجم اللوت بناء على الاستوب لوز
سيفتح الصفقه الاخرى بنفس الحجم بما انها لم تغلق بعدكود:
double LotManage(int stoploss)
{
double percent = (AccountBalance() * RiskPercent) /100;
double lot;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==100000)lot=(percent/stoploss)/10;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==10000)lot=(percent/stoploss)/1;
if(MarketInfo(Symbol(),MODE_LOTSIZE)==1000)lot=(percent/stoploss)/0.1;
if(lot<MarketInfo(Symbol(),MODE_MINLOT))lot=MarketInfo(Symbol(),MODE_MINLOT);
if(lot>MarketInfo(Symbol(),MODE_MAXLOT))lot=MarketInfo(Symbol(),MODE_MAXLOT);
return (lot);
}
بامكانك معرفة حجم لوت الصفقه المفتوحه
كود:double LastLot(){
for(int i=OrdersTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderLots());
}
}
return(0);
}
السهم يظهر عند تقاطع المؤشرين بالاسفل
كود:
double buy=iCustom(NULL,0,"Amjadepp_OPEN",0,1);
double sell=iCustom(NULL,0,"Amjadepp_OPEN",1,1);
double buy1=iCustom(NULL,0,"Amjadepp_OPEN",0,2);
double sell1=iCustom(NULL,0,"Amjadepp_OPEN",1,2);
ثم في شروط البيع والشراء
كود:if (buy>sell &&buy1<sell1)===open buy
if (sell>buy&&sell1<buy1)===open sell