النتائج 8,176 إلى 8,190 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 18-04-2017, 08:57 PM #8176
السلام عليكم ورحمة الله وربكاته
جزاك الله خيرا على هذا الموضوع الرائع
لدي سؤال برمجي كيف نجعل الحلقة التالية مرتبطة بنوع الصفقات
كود PHP:for(int i=OrdersTotal()-5;i>=0;i--)
يعني مثلا أريد سعر صفقة الشراء الخامسة ولكن يوجد صفقتين بيع وبالتالي السعر الناتج سيكون لصفقة حسب ترتيب كل صفقات الشراء فقط بهذا المثال
مثلا دالة سعر الصفقة الخامسة حسب النوع
كود PHP:double LastPrice(int type)
{
for(int i=OrdersTotal()-5;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo&&OrderType()==type)
{
return(OrderOpenPrice());
}
}
return(0);
}
ستقوم الدالةكود PHP:LastPrice(OP_BUY)
أرجو حل مشكلة حلقة الترتيب تكون مرتبطة بنوع الصفقات جزاك الله خيرا أستاذي الفاضلآخر تعديل بواسطة femtogold4 ، 18-04-2017 الساعة 08:59 PM
- 18-04-2017, 09:06 PM #8177
- 18-04-2017, 09:47 PM #8178
- 18-04-2017, 10:54 PM #8179
- 19-04-2017, 03:55 PM #8180
أرفق الكود الذي قمت بعمله وسوف أوضح لك أين الخطأ
يمكنك أيضا كحل آخر عمل دالة مستقله تحسب شمعة فتح الصفقه وإذا كانت الصفقه فتحت في الشمعه السابقه يغلق الصفقه
مثال
كود PHP:void CheckOrdersToclose()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
int open_bar=iBarShift(Symbol(),0,OrderOpenTime(),false);
if(open_bar==1)
{
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3);
}
}
}
}
- 19-04-2017, 07:52 PM #8181
استفسار اخي اسامه
السلام عليكم ورحمة الله
كل الشكر والتقدير لك اخي اسامه ولكل القائمين على المنتدى
ولي استفسار اخي الحبيب حيث ان الموضوع سببه عدم الدقه اخي الحبيب ويحتاج تركيز
اولا قمت بعمل دالة لمعرفة سعر اخر صفقة حسب النوع وهي كالاتي
كود:double LastOrderPrice(int type) { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic&&OrderType()==type) { return(OrderOpenPrice()); } } return(0); }
كود:if (Ask==LastOrderPrice(OP_BUY)-80*point) {BuyOrder();}
لكن مع تغيير علامة == الى => يعمل بشكل مستمر ولكن الفرق المطلوب وهو 80 غير ثابت فأحيانا يكون 85 واحيانا 83 واحيانا يصل الى 90 يعني غير مستقر
أتوقع المشكله تكمن في الانزلاق السعري او ماشابه فارجوا اخي اسامه اذا لديك حل تفيدنا
حيث اني وجدت بعض الاكسبرتات الاجنبيه المغلقه الكود تعمل بشكل ثابت وبدون ادنى مشكله فما هو السبب لدي
مع العلم اني استخدمت اكثر من دالة لمعرفة السعر حسب النوع ونفس المشكله
وبارك الله فيك وعليك اخي الحبيب
- 19-04-2017, 08:47 PM #8182
وعليكم السلام ورحمة الله وبركاته
إذا إستخدمت == فأحيانا مع القفزات السعريه فعلا قد لا يتحقق الشرط بالتالي أحيانا تجده يعمل وأحيانا لا يعمل
الصحيح أنك تستخدم => والسبب في أن السعر لا يفتح من نفس النقطه تماما هو الحركه السعريه فعلا وليس له علاقة بالداله والحل لديك إذا كنت تريد فتح الصفقه على السعر تماما أن تضعه كأمر معلق على المسافه التي تريد تحديدها
- 19-04-2017, 10:07 PM #8183
اشكر لك ردك اخي الحبيب اسامه على ما تقدمه لنا من دعم
ولكن يظل سؤال كيف في الاكسبرتات الاجنبيه خصوصا الروسيه
اجد حل هذه المشكله بمعنى أنه يفتح بفارق ثابت مباشر وليس معلق
تابعت احدى الاكسبرتات فترة حتى اني قمت بطرح عمليات الدخول بين الصفقات
وكان الامر ثابت في كل مره لا اعلم كيف تم ذلك
=======================
طلب ثاني اخي الحبيب هل يوجد لديك دالة فرعية لكل من
max level martingale
level risk
بحيث يمكن التعلم عليهم والاستفاده منهم
وكل الشكر والتقدير لك اخي الحبيب واسف على الازعاج واشكر لك سعة صدرك
- 20-04-2017, 02:26 AM #8184
- 20-04-2017, 02:28 AM #8185
- 20-04-2017, 10:53 AM #8186
نقص فى شرط الدخول if
محاولة عمل اكسبيرت لاستدعاء سهم مؤشر والدخول شراء او بيع عند ظهور السهم(او توقيت ظهوره)
باستخدام مؤشر بسيط لتقاطع موفينجات واكسبيرت بسيط للاستاذ Mr.dollar
الهدف هو :استدعاء سهم المؤشر للدخول كغرض تعليمى فى الاساس ولامكانية تطبيقه وقت الحاجة
(انا اعرف انه يمكن ادخال شروط المؤشر فى الاكسبيرت ولكن ليس هذا هو الهدف)
مشكلة الاكسبيرت:
بمجرد وضعه على الشارت يقوم فعلا باستدعاء المؤشر(وهذا يظهر من تنبيه المؤشر بالرغم من عدم وجوده على الشارت)
ولكن....المشكلة انه بمجرد وضعه على الشارت ..يقوم بوضع الاوامر كلها مرة واحدة (max orders)
ولا يلتزم بتوقيت سهم الشراء او البيع وعندما الغى order يقو مباشرة بوضع غيره
فيبدو ان شرط if به نقص ما....وحاولت قراءة عدة اكسبيرتات واجرب بعض الشروط ولكن لم انجح
لو اممكن اصلاح شرط الدخول if ....والف شكر
مرفق المؤشر والاكسبيرت
كود PHP:#property copyright ""
#property link ""
extern int MaxTrades = 4;
extern double Lots = 0.01;
extern int StopLoss=200;
extern int TakeProfit=200;
extern int MagicNumber=2017;
//datetime Time0;
double point;
int digits;
int init()
{
//Time0=Time[0];
if(Digits<4) {point=0.01;digits=2;}
else{point=0.0001;digits=4;}
return(0);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS deinitialization function |
//+------------------------------------------------------------------+
void deinit() {
Comment("");
}
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);
}
//+------------------------------------------------------------------+
//| FUNCTION DEFINITIONS Start function |
//+------------------------------------------------------------------+
int start()
{
//int i=0;
////////for expirement or EMA_ Crossover_Arrow recall by this expert
double Buy_Arrow=iCustom(NULL,0,"EMA_ Crossover_Arrow",0,0);
double Sell_Arrow=iCustom(NULL,0,"EMA_ Crossover_Arrow",1,0);
//bool Buy_Arrow=iCustom(NULL,0,"EMA_ Crossover_Arrow",0,0);
//bool Sell_Arrow=iCustom(NULL,0,"EMA_ Crossover_Arrow",1,0);
///////////////////////////////////////////////////////////////////
/*double B=iCustom(NULL,0,"super_signals_v3",1,0);
double S=iCustom(NULL,0,"super_signals_v3",0,0);*/
/////////////////////////////
/*bool BuySignal=true;
bool SellSignal=true;
double Buy_Arrow=iCustom(NULL,0,"EMA_ Crossover_Arrow",0,0);
double Sell_Arrow=iCustom(NULL,0,"EMA_ Crossover_Arrow",1,0);
BuySignal=(Buy_Arrow!=EMPTY_VALUE && Buy_Arrow!=0);
SellSignal=(Sell_Arrow!=EMPTY_VALUE && Sell_Arrow!=0);*/
//Comment(S);
///////////////////////////////////////////////////////////////////
double SL,TP;
//if (Buy_Arrow!=EMPTY_VALUE){
if (Buy_Arrow ){
//if (BuySignal){
//if(Buy_Arrow<1000 && i==0){
if(orderscnt()<MaxTrades){
if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP," EA",MagicNumber,0,Blue);
PlaySound("Alert.wav");
}
}
/////////////////////
//if (Sell_Arrow!=EMPTY_VALUE) {
if (Sell_Arrow ){
//if (SellSignal){
//if(Sell_Arrow<1000 && i==0){
if(orderscnt()<MaxTrades){
if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP," EA",MagicNumber,0,Red);
PlaySound("Alert.wav");
}
}
///////////////
return(0);
}
//+---------------------------------------------------------------------------------+
- 20-04-2017, 10:33 PM #8187
قم بتعريف متغير لعد الصفقات من النوع الذي تريده
مثال
كود PHP:double LastPrice(int type)
{
int cnt;
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNo && OrderType()==type)
{
cnt++;
if(cnt>=5)
return(OrderOpenPrice());
}
}
return(0);
}
- 20-04-2017, 10:34 PM #8188
- 20-04-2017, 10:39 PM #8189
وعليكم السلام ورحمة الله وبركاته
قم بعمل دالة لمعرفة قيمة الزيجزاج حسب القمه أو القاع التي تريدها
مثال
كود PHP:double GetZigZag(int num)
{
int cnt++;
for(int i=0;i<Bars;i++)
{
double zz=iCustom(Symbol(),0,"ZigZag",12,5,3,0,i);
if(zz!=0)
{
cnt++;
if(cnt==num)return(zz);
}
}
return(0);
}
كود PHP:if(GetZigZag(1)>GetZigZag(2)&&GetZigZag(1)<GetZigZag(3)
{
}
- 21-04-2017, 03:07 PM #8190
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM