رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة ahmadwalwil
اخ كيرا هذا الكود المطلوب بتعرف متغيرين في الاعلى
bool Opensell=true
bool Openbuy=true
بتحط في شرط الشراء
if(openbuy==true
buy
openbuy=false
opensell=true
if(opensell==true
sell
opensell=false
openbuy=true
هي الفكره بس زبط الكود شوي لأني مش عارف اكتب بالتوفيق
بارك الله فيك أخي الكريم
حاولت تركيب الكود ولو اني مش فاهم حاجة :doh: وبيطلع لي أخطاء
طيب عملت التالي بالنسبة للشراء :
كود PHP:
void TechnicalAnalysis2x2()
{
bool buy=false;
bool sell=true;
if ((Close[1] > Open[1]) (buy==true))
{
;()BuyOrder
}
}
والعكس بالنسبة للبيع
والنتيجة أكيد مش هيفتح أي صفقة !!! وفعلا ده اللي حصل بالباكتيست
شرط عدم تكرار الصفقة لازم يكون بعد تنفيذ أول صفقة :Emoticon1:
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة kira-h
بارك الله فيك أخي الكريم
حاولت تركيب الكود ولو اني مش فاهم حاجة :doh: وبيطلع لي أخطاء
طيب عملت التالي بالنسبة للشراء :
كود PHP:
void TechnicalAnalysis2x2()
{
bool buy=false;
bool sell=true;
if ((Close[1] > Open[1]) && (buy==true))
{
;()BuyOrder
}
}
والعكس بالنسبة للبيع
والنتيجة أكيد مش هيفتح أي صفقة !!! وفعلا ده اللي حصل بالباكتيست
شرط عدم تكرار
نفس نوع الصفقة لازم يكون بعد تنفيذ أول صفقة :Emoticon1:
تعديل خطأ مطبعي بالكود (&&)
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة ahmadwalwil
اخ كيرا بتعرف المتغيرين مكان ما بتعرف الماجيك نمبر والمتغيرات العامه فوق مش في نفس الداله
bool buy=true
bool sell =true
والداله بتصير كالاتي
void TechnicalAnalysis2x2()
{
if(buy==true)
{
BuyOrder();
buy=false;
sell=true;
}
if(sell==true)
{
SellOrder();
buy=true;
sell=false;
}
}
ونشالله يزبط معاك
للأسف لم ينجح، بيطلع أخطاء في الكود
شكرا جزيلا أخي الكريم
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة mostafa400
أخى الكريم أ / أسامة
هذه الدالة تقوم بحساب عدد العملات المفتوحة فإذا كان هناك عقود لليورو مفتوحة وعقود للين الناتج هيكون 2 عملة مفتوحة المشكلة انه اذا تم فتح يورو ثم ين ثم يورو يكون ناتج الدالة 3 وليس 2 فأرجو المساعدة فى حل هذه المشكلة
وجزاك الله خيرا
كود:
int Real_Symb()
{
int N=-1; string S;
for( int cnt=0; cnt<=OrdersTotal(); cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if ( ( OrderType()==OP_BUY || OrderType()==OP_SELL) )
if ( OrderSymbol()!=S )
{
N++; S=OrderSymbol();
}
} return(N);
}
قمت بتحويل المتغير N إلى مصفوفه بحيث يحفظ جميع العملات التي يتم عدها بدلا من حفظ آخر عمله كما في الكود الحالي
وعند المقارنه فيقارن بين إسم العمله وجميع المصفوفه هل الإسم موجود أم لا
مثال
كود PHP:
int Real_Symb()
{
int N=0; string S[1];
for( int cnt=0; cnt<=OrdersTotal(); cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
bool SymbolCounted=false;
for(int i=0;i<ArraySize(S);i++)
{
if(S[i]==OrderSymbol())
{
SymbolCounted=true;
break;
}
}
if(SymbolCounted==false)
{
S[N]=OrderSymbol();
ArrayResize(S,ArraySize(S)+1);
N++;
}
}
}
return(N);
}
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة Jmeel
يتحقق الشرط اذا تفعل امر معلق بيع ستوب مثلا الى بيع والمطلوب أن يعلق امر معلق شراء وليس بيع واذا تفعل شراء معلق الى شراء المطلوب تعليق عقد بيع ، وهنا المشكلة ولأنه لو كان يعلق شراء بدل الشراء المفعل او بيع بدل البيع المفعل كان الأمر بالنسبة لي سهل من خلال دالة توازن بين الطرفين . اذا نظرت الة كود الأكسبيرت ابحث عن الحرف SSSSS سيكون بنفس المكان الذي اعنيه . تحياتي لك أستاذي .
مثال
إجعل تعليق الأمر المعلق له نفس رقم تيكيت الصفقه التي فتحت
مثلا لو تفعل أمر البيع والتيكيت له مثلا 5 قم بتعليق أمر معلق شراء الكومنت له رقم 5
بالتالي ستكون المقارنه في الشروط
إذا كان الصفقه المفتوحه التيكيت لها يقابله صفقه معلقه بنفس الكومنت فلا تفتح صفقه
مثال للداله
كود PHP:
int Ticket(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
return(OrderTicket());
}
return(-1);
}
bool IsOrderAdded(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()>OP_SELL&&StrToDouble(OrderComment())==Ticket(type))
return(true);
}
return(false);
}
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة fxsmartsniper
قمت مستر دولار بالتعديل في النسخة 4.2
ولا يوجد اي اخطاء ومع ذلك لايدخل صفقات بتحقق شروط التقاطع وفي مرة وحيدة دخل صفقة
برجاء مراجعة الكود في الاكسبرت
وهل ممكن عدم دخول صفقات ان خاصية الانزلاق او slippage غير موجودة ام هناك خطا بالفعل في التعديل؟
شكرا استاذنا الغالي & تحياتي
لا يوجد خطأ التعديل صحيح
بالنسبه ل slippage فهي موجوده في الكود
كود PHP:
int Ticket =OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,digits),3*Q,0,0,"MR.dollar EA",MagicNumber,0,Blue);}
ومحدده ب 3 نقاط طبعا يمكنك زيادتها إذا تريد
بالنسبه أنا جربت الإكسبرت وفتح الصفقات بشكل ممتاز عند كل تقاطع
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة kira-h
أستاذي العزيز
تقاطع الموفينج فقط كمثال وما ذكرته واضح
لكن هناك مؤشرات لا ينطبق عليها هذا الشرط أو حتى مقارنة الاغلاق والافتتاح مع المؤشر
إذن فالبديل هو أن نقول للاكسبيرت إذا ضربت هدف (أو ستوب) صفقة الشراء فلا تفتح صفقة أخرى إلا عند فرصة البيع ... وهكذا هل يوجد كود يفعل هذا ؟
شاكر سعة صدرك وربنا يجازيك كل خير
شكرا
نعم ستستخدم الكود السابق في المشاركه الأولى
مثال
كود PHP:
static string LastOrder;
if(LastOrder!="B")
{
//open buy
LastOrder="B";
}
if(LastOrder!="S");
{
//open sell
LastOrder="S";
}
طبعا مع وضع الشروط الرئيسيه للإكسبرت
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة ahmadwalwil
الف شكر استاذنا الفاضل على ردودك السريعه الله يعينك علينا لكا حقيقه انت مثل جوجل بالنسبه لنا هههههه الله يجزاك كل الخير ساجر الكود وإن شاء لله انو يكون كلو تمام
بارك الله فيك
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة ahmadwalwil
اخ كيرا بتعرف المتغيرين مكان ما بتعرف الماجيك نمبر والمتغيرات العامه فوق مش في نفس الداله
bool buy=true
bool sell =true
والداله بتصير كالاتي
void TechnicalAnalysis2x2()
{
if(buy==true)
{
BuyOrder();
buy=false;
sell=true;
}
if(sell==true)
{
SellOrder();
buy=true;
sell=false;
}
}
ونشالله يزبط معاك
السلام عليكم ورحمة الله وبركاته
ان شاء الله
تكتب كده مش زي ما انت كتبت والفرق كبير
ان شاء الله تعني اذا شاء او اراد الله
استغفر الله العظيم واتوب اليه