النتائج 3,841 إلى 3,855 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 14-05-2013, 05:27 AM #3841
- 14-05-2013, 09:01 PM #3842
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم
في بعض الأحيان لا يستطيع الاكسبيرت عمل OrderModify بسبب تهنج سيرفر الشركة ECN أو بطء النت ... ثم تبقى الصفقة بدون هدف وستوب!!!
كود PHP:int ticket = -1;
if (ECNBroker)
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "Kira-h", MagicNo, 0, Blue);
else
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, SL, TP, "Kira-h", MagicNo, 0, Blue);
if (ticket > -1)
{
if (ECNBroker)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
عملت حل مؤقت حتى الان بإخفاء الهدف والستوب عن البروكر لكن نتيجتها غير دقيقة وربما لن يتفعل أمر الاغلاق الأوتوماتيكي... وأقع في نفس الفخ
تحياتي إخوانيآخر تعديل بواسطة kira-h ، 14-05-2013 الساعة 09:04 PM
- 14-05-2013, 10:54 PM #3843
رد:موضوع مخصص للأسئلة البرمجية
يمكنك مثلا تعديلها بالشكل ده
كود PHP:
int Tries;
int ticket = -1;
if (ECNBroker){
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "Kira-h", MagicNo, 0, Blue);
if(ticket>-1 && Tries<10){
OrderSelect(ticket, SELECT_BY_TICKET);
OrderModify(ticket, OrderOpenPrice(), SL, TP, 0, Blue);
Tries++;Sleep(1000);
}
}
else
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, SL, TP, "Kira-h", MagicNo, 0, Blue);
-----------------
وحاول تتأكد أيضا من أنه لايوجد اخطاء في التيك بروفت أو الإستوب لوز
يعني لو الإستوب أو التيك بروفت إللي إنت مستخدمه صغير تأكد من المنصة تقبله أم لا
- 14-05-2013, 11:22 PM #3844
- 15-05-2013, 12:26 AM #3845
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم
هلا مستر دولار
مرفق سكربت الاخ وضاح عطار لاصطياد اي تغير سريع 2 بيب والدخول عكس الاتجاة لقنص ا بيب(مع حفظ الحقوق له)
نريد عمل بعض التغييرات الصغيرة له لقنص اي خبر علي اي عملة بنفس السرعة والخروج بنفس السرعة الفائقة وهي ما تميز هذا الاسكربت والذي يعمل كاكسبرت علي العمله الموضوع عليها
نريد كود برمجي ل Trade buy & trade sell ولكن ليس 2 بيب (كما بالاسكبرت)ستكون الدالة الخاصة بهم عبارة عن سرعة تحرك السعر بمعني لو وضع كل منهما مثلا5 سيكون تحرك السعر عبارة عن 5 بيب في الثانية (اكبر من او يساوي)وسيكون الدخول في نفس الاتجاة (لقتص الخبر او تدخل الكبار) وسيتم وضع شرط جديد هو شرط الخروج step Close trade لو وضع 5 (اقل من 5 بيب في الثانية ) يتم الخروج من الصفقة
المتغيرات الخارجية كما هي
مع تغيير دالتي الدخول (لها علاقة بالزمن)
واضافة دالة الخروج
شكرا مستر دولارآخر تعديل بواسطة fxsmartsniper ، 15-05-2013 الساعة 12:30 AM
- 15-05-2013, 05:58 AM #3846
- 16-05-2013, 02:09 PM #3847
السلام عليكم
كيف يمكنني ربط ملف اكسيل بالمنصة لتاخذ منها بعض البيانات مثل الهاي واللو......
- 16-05-2013, 08:41 PM #3848
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم
-------------
أستاذ أسامة حاولت أعمل دالة للبريك إيفن ولكنها تكون على أساس الربح بالدولار وليس النقط
بمعني لو وصل الربح لـ 200 دولار ( لمجمل عقود البيع والشراء) يضع الإكسبيرت الإستوب لجميع العمليات عند النقطة التي تحقق ربح 50 دولار
---------------------------------
قدرت الحمد لله إني أستنتج المعادلات ( وطبعا إتبهدلت فيها )
-------------------
وبالرغم من أني أرى المعادلات صحيحة والنقطة النهائية المستخدمة كإستوب لوز او تيك بروفت صحيحة أيضا
لكن الإكسبيرت يفشل في وضعها ولا أعرف السبب
مرفق الإكسبيرتآخر تعديل بواسطة xcv114 ، 16-05-2013 الساعة 08:51 PM
- 16-05-2013, 09:30 PM #3849
رد:موضوع مخصص للأسئلة البرمجية
مثلا
كود PHP:static int PipsUp,PipsDn;
static int LastPrice=Bid;
static datetime LastTime=TimeCurrent();
if(LastPrice>Bid)
{
PipsUp++;
PipsDn0=0;
LastPrice=Bid;
}
if(LastPrice<Bid)
{
PipsUp=0;
PipsDn++;
LastPrice=Bid;
}
bool BuySignal,SellSignal;
if(TimeCurrent()-LastTime<2)
{
if(PipsUP>=5)
{
BuySignal=true;
PipsUp=0;
LastTime=TimeCurrent();
}
if(PipsDn>=5)
{
SellSignal=true;
PipsDn=0;
LastTime=TimeCurrent();
}
}
else
{
LastTime=TimeCurrent();
PipsUp=0;
PipsDn=0;
}
if(BuySignal)
{
//buy order
}
if(SellSignal)
{
//sell order
}
إذا كلما تحرك السعر لأعلى يحسب النقطه ثم إذا كانت الحركه أكبر من أو تساوي 5 نقاط والفرق بين آخر توقيت وبين التوقيت الحالي أقل من 2 ثانيه أي 1 ثانيه أو أقل يتم فتح الصفقه
- 17-05-2013, 02:28 AM #3850
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم أستاذ أسامه
أريد أن يحسب الإكسبيرت في عدد الصفقات المغلقة كلما كانت آخر صفقة مغلقه على خساره يتم حساب لوت الصفقه القادمه بمضاعفات عن طريق داله سويتش تحسب اللوت بناءا على عدد الصفقات المغلقه .. و عندما تكون آخر صفقه رابحه يبدأ بالحساب من جديد في عدد الصفقات المغلقة ليبدأ بحساب اللوت من جديد .
قمت بعمل داله تحسب عدد الصفقات المغلقه
كود PHP:int closedorderno(){
int cnt=0;
for(int i =OrdersHistoryTotal();i>=0;i--){
if( OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) ){
if(OrderSymbol()==Symbol()&& MagicNumber==OrderMagicNumber() ){
cnt++;
}
}
}
return(cnt);
}
كود PHP:string last()
{
for(int i=OrdersHistoryTotal();i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY && OrderClosePrice()>=OrderOpenPrice() ) return("profit");
if(OrderType()==OP_BUY && OrderClosePrice()<=OrderOpenPrice() ) return("loss");
if(OrderType()==OP_SELL && OrderClosePrice()<=OrderOpenPrice()&& Time0!=Time[0]) return("profit");
if(OrderType()==OP_SELL && OrderClosePrice()>=OrderOpenPrice()&& Time0!=Time[0]) return("loss");
}
}
return("none");
}
كود PHP:double new(){
double newLot;
double A=closedorderno();
if(A==1)newLot=Lot2;
if(A==2)newLot=Lot3;
if(A==3)newLot=Lot4;
if(A==4)newLot=Lot5;
if(A==5)newLot=Lot6;
if(A==6)newLot=Lot7;
if(A==7)newLot=Lot8;
if(A==8)newLot=Lot9;
if(A==9)newLot=Lot10;
if(A==10)newLot=Lot11;
if(A==11)newLot=Lot12;
if(A==12)newLot=Lot13;
if(A==13)newLot=Lot14;
if(A==14)newLot=Lot15;
return(newLot);
}
كود PHP:if (last()=="loss"){Lots=new();}else if(last()=="profit" || (last()!="profit" && last()!="loss") ) {Lots=Lot1;}
انا وجدت حلا بتغيير الماجيك بعد كل ربحكود PHP:if (last()=="profit")MagicNumber++ ;
و جزاك الله خيرا .
- 17-05-2013, 05:31 AM #3851
- 17-05-2013, 05:34 AM #3852
رد:موضوع مخصص للأسئلة البرمجية
- 17-05-2013, 06:04 AM #3853
رد:موضوع مخصص للأسئلة البرمجية
وعليكم السلام ورحمة الله وبركاته
دائما إذا كنت تستخدم الحلقه والداله OrderSelect للبحث عن صفقات معينه وإذا كان باقي الكود طويل
قم بتعريف متغيرات تضع فيها بيانات الصفقه مثل
كود PHP:OrderSelect(t,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()== Symbol() && OrderMagicNumber()==MagicNumber){
int type=OrderType();double openprice=OrderOpenPrice();double takeprofit=OrderTakeProfit();
هذه ستحل المشكله
أيضا لديك خطأ في باقي الكود 130 فمثلا في أحد المرات كان البريك إيفن 1.6133
وعندما وصل السعر أقل من البريك إيفن المفروض سينفذ الشرط
كود PHP:if(type==OP_SELL ){
OrderModify(OrderTicket(),openprice,new,takeprofit,0,Blue);}
كود PHP:new=NormalizeDouble(BREAKEVEN(),digits)-TrailStep;
- 17-05-2013, 07:22 AM #3854
رد:موضوع مخصص للأسئلة البرمجية
الله يكرمك
الأن يعمل معي بطريقة صحيحة
-----------------
بالنسبة للجزئية الأخيرة ( الخطأ قد يكون بسبب الأعدادات الإفتراضية للمتغيرات الخارجية وهي ليست صحيحة )
----------
كود PHP:Profit_ByLots=200
If_Lots=0.5
TraillingPercent=0.25
على أنا يقوم الإكسبيرت بتحديد المجموع الكلي للربح بالدولار حسب المعادلة
كود PHP:USDProfit_MicroL=(Profit_ByLots/If_Lots)/100;
---------------------------------
-------
TraillingPercent=0.25
ودي عندما يصل الربح إلى 200 دولار سيضع الإستوب أو التيك بروفت عند النقطة التي تحقق 50 دولار
ووضعت شرط في إستارت
كود PHP:if(profit()> USD_ProfitTarget)UsdTrailling();
----------
أكيد الدالة مازالت محتاجة بعض الإضافات ولكن كنت في إنتظار أنا أرى أن الأكواد كلها تعمل بشكل صحيح قبل البدء في التدقيق
-------------------------------
بس بجد يا أستاذ أسامة لايوجد كلام يوفيك حقك
بارك الله فيك
- 17-05-2013, 10:16 AM #3855
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM