النتائج 3,511 إلى 3,525 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 23-03-2013, 07:59 AM #3511
رد:موضوع مخصص للأسئلة البرمجية
مستر دولار السلام علكيم ورحمة الله وبركاته
حبيبي الغالي ممكن تساعدني في الفكرة دي
عندي امر باي مع تيك بروفت 50 نقطة وستوب لوز زيرو
بدل استوب لوز عايزه يعمل هدج بعد خسارة 20 نقطة
وكل ما فتحت امر جديد باي او سيل احط تيك بروفت 50 نقطة وافتح هدج بعد خسارة 20 نقطة
والهدج ايضا يكون تيك بروفت 50 نقطة وستوب لوز زيرو
واذا ربح احد العقود يقوم باقفال عقد الهدج بتاعه اللي فتحناه بدل الستوب لوز
ولو ربح الهدج يقوم باقفال العقد الاصلي بتاعه
انا اعرف افتح هدج بعد خسارة 20 نقطة
بس ما عرفت اربط بين العقدين عشان اقفلهم مع بعض خصوصا لما يكون عندي عقود كثيرة مفتوحة
عايز كل عقدين مرتبطين مع بعض اقفلهم مع بعض في حالة لو واحد فيهم ربحآخر تعديل بواسطة محمد بن حامد ، 23-03-2013 الساعة 08:28 AM
- 23-03-2013, 05:48 PM #3512
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم
رجاء اريد داله لو تحرك السعر عدد نقط معينة مثلا فى خلال عدد ثوانى معينة ان يفتح مثلا امر شراء
ولكم جزيل الشكر
- 24-03-2013, 12:58 AM #3513
- 24-03-2013, 06:30 AM #3514
رد:موضوع مخصص للأسئلة البرمجية
هو الحقيقة لم ابدأ باكسبرت استطيع ان ارفقه هي بداية فكرة عمل اكسبرت
وبدأتها بتعليق امر سيل ستوب في نفس الوقت الذي اضع الامر الاصلي
ولكن المشكلة انه لو ربح الامر الاصلي فاني لا اعرف الامر المعلق المرادف له لاقوم بالغائه
او لو تفعل الامر المعلق وربح فاني لا اعرف الامر الاصلي لاغلقه او اعدل فيه
كود PHP:
if(TP==0){double BUY_TP=0;}else{BUY_TP=Ask+BUY_TP*Point;}
if(SL==0){double BUY_SL=0;}else{BUY_SL=Ask-SL*Point;}
if(ApplyHedgeInsteadOfSL == true)
{
double SelToHedgBuy_Price = BUY_SL; BUY_SL = 0;
}
int successOrder = OrderSend(Symbol(),OP_BUY ,Lots,Ask,3,BUY_SL,BUY_TP,"",MagicNumber,0,Blue );
if(ApplyHedgeInsteadOfSL == true)
{
successOrder = OrderSend(Symbol(),OP_SELLSTOP ,Lots,SelToHedgBuy_Price,3,0,BUY_TP,BuyTicketNbr,MagicNumber,0,Red );
}
وهناك طريقة اخرى
وهي ان افتح الهدج في الوقت الذي تكون الخسارة قد تجاوزت فعليا 20 نقطة
ولكن ايضا نفس المشكلة وهي لو ربح احد العقدين ، لا اعرف العقد المرتبط معه لكي اغلقه في نفس الوقت
والحقيقة انه لا يوجد امر يوضح ان الامر قد اغلق بواسطة التيك بروفت
ولا يوجد طريقة لمعرفة ذلك الا اذا اغلقت العقد برمجيا حينما يصل الى الربح المحدد يعني بدون استخدام خاصية التيك بروفت
ونفس الحكاية لا اعرف العقد المرتبط معه
كود PHP:if(ApplyHedgeInsteadOfSL == true)
{
// ck for buy orders and open hedge sell order
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType() == OP_BUY )
{
double profit = Bid-OrderOpenPrice();
double SelToHedgBuy_TP = OrderOpenPrice() - TP*Point;
SelToHedgBuy_Price = NormalizeDouble(OrderOpenPrice()-SL*Point,Digits);
}
if(profit<=-SL*Point && countSellOrdersSamePrice(Symbol(),SelToHedgBuy_Price)==0)
{
int successOrder1 = OrderSend(Symbol(),OP_SELL ,Lots,Bid,3,0,SelToHedgBuy_TP,"",MagicNumber,0,Red );
}
}
}
كود PHP:int countSellOrdersSamePrice(string currency , double Price)
{
int total=OrdersTotal();
int SellOrderSamePrice=0;
for(int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==currency && OrderType()==OP_SELL && NormalizeDouble(OrderOpenPrice(),Digits)==NormalizeDouble(Price,Digits))
{
SellOrderSamePrice ++;
}
}
return(SellOrderSamePrice);
}
آخر تعديل بواسطة محمد بن حامد ، 24-03-2013 الساعة 06:59 AM
- 24-03-2013, 07:52 PM #3515
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم و رحمة الله و بركاته
المرجو من أحد الإخوة المبرمجين تعديل كود المؤشر التالي و هو للأخ كينجو الله يشافيه و يفرج عنه و هو مؤشر القنوات للأخ الكريم د.جمال ممدوح المشكل هو أن المؤشر يرسم قناة الشارت اليومي التي ترسم بين فواصل الشهر بيوم قبل الشهر و الخطأ موجود فقط في القناة الثانية التي ترسم لمدة شهرين : و نريد أن نضيف أخي قناة ثالثة على جميع الفرمات أي الساعة و الأربع ساعات و اليومي. تحياتي أخواني وجزاكم الله خيرا
- 24-03-2013, 11:06 PM #3516
- 25-03-2013, 02:02 AM #3517
رد:موضوع مخصص للأسئلة البرمجية
وعليكم السلام
مثلا أريد فتح صفقة عندما يتحرك السعر صعودا 10 نقاط في خلال 5 ثواني والعكس في حالة البيع
مثال
كود PHP:static double LastPrice=Bid;
static datetime FirstTime;
if(Bid>LastPrice)
{
if(Up==0)FirstTime=TimeCurrent();
LastPrice=Bid;
Up++;
Dn=0;
}
if(Bid<LastPrice)
{
if(Dn==0)FirstTime=TimeCurrent();
LastPrice=Bid;
Dn++;
Up=0;
}
if(Up>=10&&TimeCurrent()-FirstTime<=5)
{
// buy signal
}
if(Dn>=10&&TimeCurrent()-FirstTime<=5)
{
//sell signal
}
- 25-03-2013, 04:13 AM #3518
رد:موضوع مخصص للأسئلة البرمجية
أحد الطرق التي أستخدمها عندما أحاول ربط أمرين معا بحيث يغلقوا في نفس الوقت بعد ذلك هو ربط رقم التيكيت للأمر الأول بالكومنت في الرقم الثاني بالظبط كما وضعت أنت في الكود
كود PHP:if(TP==0){double BUY_TP=0;}else{BUY_TP=Ask+BUY_TP*Point;}
if(SL==0){double BUY_SL=0;}else{BUY_SL=Ask-SL*Point;}
if(ApplyHedgeInsteadOfSL == true)
{
double SelToHedgBuy_Price = BUY_SL; BUY_SL = 0;
}
int successOrder = OrderSend(Symbol(),OP_BUY ,Lots,Ask,3,BUY_SL,BUY_TP,"",MagicNumber,0,Blue );
if(ApplyHedgeInsteadOfSL == true)
{
successOrder = OrderSend(Symbol(),OP_SELLSTOP ,Lots,SelToHedgBuy_Price,3,0,BUY_TP,successOrder,MagicNumber,0,Red );
}
مثال
كود PHP:bool IsOtherOrderClosed(string comm,int tick)
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
string comment=OrderComment();int ticket=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(comm==""&&ticket==comm)return(false);
if(comm!=""&&comment==tick)return(false);
}
}
return(true);
}
كود PHP:for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
string comment=OrderComment();int ticket=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(IsOtherOrderClosed(comment,ticket))
{
if(OrderType()>OP_SELL)OrderDelete(ticket);
else OrderClose(ticcket,OrderLots(),OrderClosePrice(),3);
}
}
}
- 25-03-2013, 04:14 AM #3519
- 25-03-2013, 04:16 AM #3520
رد:موضوع مخصص للأسئلة البرمجية
سوف تقوم بعمل داله لمعرفة عدد الصفقات المفتوحه للعمله
مثال
كود PHP:int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if(orderscnt()<maxtrade)
- 25-03-2013, 07:34 AM #3521
السلام عليكم ..
اخى اسامه منذ 3 ايام وانا اراسلك ولا جواب ..
فضلا المتابعه مشكورا ..
- 25-03-2013, 12:12 PM #3522
مشكووووور جدا اخي الحبيب اسامة
سأستخدم هذه الطريقة ان شاء الله
بارك الله فيك
- 25-03-2013, 02:09 PM #3523
- 25-03-2013, 05:33 PM #3524
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله وبركاته
ويوفقنا جميعا اللهم آمين
أستاذي الكريم
كيف يمكن برمجة المضاعفات بغرض التعويض فقط؟
مثال
لنفترض الستوب لوس التابث 20 نقطة والهدف في أول صفقة 20 نقطة
أول صفقة بلوت 0.1 بهدف 20 نقطة عادي
المضاعفة الأولى بلوت 0.2 بهدف 10 نقطة
المضاعفة التانية بلوت 0.4 بهدف 15 نقطة
المضاعفة الثالثة بلوت 0.8 بهدف 17.5 نقطة
المضاعفة الرابعة بلوت 1.6 بهدف 18.8 نقطة
المضاعفة الخامسة بلوت 3.2 بهدف 19.4 نقطة
وهكذا ...
لأنه كلما قل الهدف (ولو جزء من النقطة) كلما زادت نسبة احتمال الربح وقلت عدد المضاعفات
أي التعويض السريع والخروج من دوامة المضاعفات بسرعة
هل يوجد مثل هذا الكود ؟!!
إذا يوجد فما هو التعديل المطلوب بكود المضاعفات العادية بطريقة برنامج Forex EA Generator 4
كود:double CurrentLots = 1; bool FirstLotsMgm = true; datetime BarTime = 0; int Count82 = 0; int init() { Sleep(30000); NDigits = Digits; if (false) ObjectsDeleteAll(); // clear the chart CurrentLots = Lots; Comment(""); // clear the chart }
كود:{ double profit = 0; int cnt = OrdersHistoryTotal(); for (int i=cnt-1; i >= 0; i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; if ((OrderType() == OP_BUY || OrderType() == OP_SELL) && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo) { profit = OrderProfit(); CurrentLots = OrderLots(); // take lots from the last order break; } } if (profit > 0) // had profit { CurrentLots = CurrentLots * LotsMpOnProfit + 0; if (LotsResetOnProfit) CurrentLots = Lots; } else if (profit < 0) // had loss { CurrentLots = CurrentLots * LotsMpOnLoss + 0; if (LotsResetOnLoss) CurrentLots = Lots; } if (CurrentLots > MaxLots) { CurrentLots = Lots; } double lotvalue = CurrentLots; if (lotvalue < MarketInfo(Symbol(), MODE_MINLOT)) // make sure lot is not smaller than allowed value { lotvalue = MarketInfo(Symbol(), MODE_MINLOT); } if (lotvalue > MarketInfo(Symbol(), MODE_MAXLOT)) // make sure lot is not greater than allowed value { lotvalue = MarketInfo(Symbol(), MODE_MAXLOT); }
واعذرني على كثرة طلباتي مليش غير ربنا ثم أنت والحمد لله
- 25-03-2013, 08:59 PM #3525
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM