النتائج 3,991 إلى 4,005 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 11-06-2013, 06:04 PM #3991
رد:موضوع مخصص للأسئلة البرمجية
هل هذه الدالة صحيحة
هي تحسب عدد الاوامر سل ستوب SELL Stop
كود PHP:// number of pending sell stop
int ordersSellStop(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && magic==OrderMagicNumber()||OrderMagicNumber()==magic&&OrderType() == OP_SELLSTOP){
cnt++;
}
}
}
return(cnt);
}
وشكرا لكم مسبقا
- 11-06-2013, 06:22 PM #3992
- 11-06-2013, 07:34 PM #3993
رد:موضوع مخصص للأسئلة البرمجية
كود PHP:[PHP]
int ordersSellStop()
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++)
{
int type=OrderType();
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(type==OP_SELLSTOP)
{
cnt++ ;
}
}
return(cnt);
}
لما اغير في اكوادك ولكن بدل من ان يقارن الماجيك نمبر ونوع العملة جعلته بسيط للتوضيح فقط لك
فقط ضعه في اسكريبت وافتح عدد من العقود المعلقة باي استوب وسيل استوب وسيل ليميت وباي ليمت وضع استدعاي للدالة في comment
وراقب النتيجة على الشارت وغير ما تريد بشيئ جديد حتى تبني ملاحظاتك وتتوصل الى شيئ جديد
لكن اعتقد ان الاكواد التي انت افقتها مأخوذه من اكسبيرت وتريد التأكد منها صحيح ؟ فان كان صحيح فلا تعتمد على تفكير غيرك حاول ان تبني برنامج بنفسك دون أخذ ولصق من أكواد الاخرين لان المبرمج لابد ان يبني برنامجة معتمدا على تفكيره
- 11-06-2013, 07:54 PM #3994
رد:موضوع مخصص للأسئلة البرمجية
هذه دالة لتعديل هدف وستوب آخر صفقة شراء وقس عليها في البيع ، وضعت لك علامة ؟؟؟ هنا تضع مايناسب اكسبيرتك .
كود PHP:void BuyOrderModify()
{
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == ?????)
{
double price = Ask;
if (true == false)
{
price = OrderOpenPrice();
}
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), price - BuyStoploss*?????, price + BuyTakeprofit*????, 0, White);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
}
كود PHP:extern int BuyStoploss = 20;
extern int BuyTakeprofit = 30;
كود PHP:BuyOrderModify();
كود PHP:#include <stdlib.mqh>
#include <WinUser32.mqh>
- 11-06-2013, 07:59 PM #3995
رد:موضوع مخصص للأسئلة البرمجية
شكرا جزيلا لك
انا بالفعل اخذت الكود من اكسبيرت اخر
وحاليا اقوم بالعمل على اول اكسبيرت ابرمجه
بالنسبة لفحص شرط وجود سيل ستوب ينتظر حتى يتفعل او يغلق لكي يتم تعليق امر جديد
هل يكفي وضع شرط التحقق في دالة start لكي يبقى الشرط متحققا ام ان هناك
دالة من نوع تكراري ؟
وشكرا جزيلا لك مرة أخرى
وجزاك الله كل خير
- 11-06-2013, 08:03 PM #3996
رد:موضوع مخصص للأسئلة البرمجية
- 11-06-2013, 08:11 PM #3997
- 11-06-2013, 11:00 PM #3998
رد:موضوع مخصص للأسئلة البرمجية
قمت بعمل دالة
تقوم بالتالي
ارجاع قيمة سعر الافتتاح للصفقة للعملة الحالية المفتوحة سواء كانت شراء او بيع
كود PHP:double openedPosPrice(){
double openprice;
if (ordersCount(OP_BUY) > 0 || ordersCount(OP_SELL)> 0){
for(int i =0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() &&OrderType()<2){
openprice = OrderOpenPrice();
}
}
return(openprice);
}
}
وشكرا لكمآخر تعديل بواسطة Learn4X ، 11-06-2013 الساعة 11:02 PM
- 12-06-2013, 01:08 AM #3999
- 12-06-2013, 01:30 AM #4000
رد:موضوع مخصص للأسئلة البرمجية
إستخدم الأمر coment أو print لعرض أسعار الخطوط على الشارت
كود PHP:for( i=1;i<=20;i++)
{
double LineL=ObjectGet("Li"+i,OBJPROP_PRICE1);
Print(LineL);
بالنسبه لطريقة إستدعاء الخطوط فهي صحيحه لا توجد بها مشاكل لذلك غالبا الخطأ في جزء آخر من الكود
- 12-06-2013, 05:32 AM #4001
رد:موضوع مخصص للأسئلة البرمجية
بارك الله فيك أستاذي الكريم
للأسف لم تظهر أسعار الخطوط على الشارت
والأسعار بالباكتيست تظهر فقط لمرة واحدة وهي خاصة بالمؤشر
كل ما أريده من الاكسبيرت أن يضع أمرين BuyStop و SellStop بالخط بمجرد أن يلمسه السعر وهكذا في كل ملامسة لأي خط من خطوط المؤشر
المشكلة أنه يضع فقط بخط الوسط N أما باقي الخطوط لا يضع الأمرين
مؤشر الخطوط بالمرفقات للمراجعة
كود لجزء من الشروط لخطوط H
كود PHP:void OncePerBar()
{
if (BarTime < Time[0])
{
// we have a new bar opened
BarTime = Time[0]; // keep the new bar open time
TechnicalAnalysis();
}
}
void TechnicalAnalysis()
{
for(int i=1;i<=20;i++)
{
double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
Print(LineH);
if ((Open[1]<=LineH&&Close[1]>=LineH) || (Open[1]>=LineH&&Close[1]<=LineH))
{
LimitOpenOrders();
}
}
}
void LimitOpenOrders()
{
int count = 0;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol())
if (OrderMagicNumber() == MagicNo)
{
count++;
}
}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
if (count < OpenOrdersLimit)
{
IfOrderDoesNotExist1();
IfOrderDoesNotExist2();
}
}
void IfOrderDoesNotExist1()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() != MagicNo)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
if (exists == false)
{
SellOrderH();
}
}
void IfOrderDoesNotExist2()
{
bool exists = false;
for (int i=OrdersTotal()-1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() != MagicNo)
{
exists = true;
}
}
else
{
Print("OrderSelect() error - ", ErrorDescription(GetLastError()));
}
if (exists == false)
{
BuyOrderH();
}
}
كود PHP:void BuyOrderH()
{
for( int i=1;i<=20;i++)
{
double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
Print(LineH);
double price = (NormalizeDouble(LineH, NDigits) + (SellStep*PipValue*Point));
double SL = price - Stoploss*PipValue*Point;
if (Stoploss == 0) SL = 0;
double TP = price + Takeprofit*PipValue*Point;
if (Takeprofit == 0) TP = 0;
int Tries;
int ticket = -1;
if (ECNBroker)
{
ticket = OrderSend(Symbol(), OP_BUYSTOP, Lots, price, 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_BUYSTOP, Lots, price, Slippage, SL, TP, "Kira-h", MagicNo, 0, Blue);
}
}
void SellOrderH()
{
for( int i=1;i<=20;i++)
{
double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
Print(LineH);
double price = (NormalizeDouble(LineH, NDigits) - (SellStep*PipValue*Point));
double SL = price + Stoploss*PipValue*Point;
if (Stoploss == 0) SL = 0;
double TP = price - Takeprofit*PipValue*Point;
if (Takeprofit == 0) TP = 0;
int Tries;
int ticket = -1;
if (ECNBroker)
{
ticket = OrderSend(Symbol(), OP_SELLSTOP, Lots, price, Slippage, 0, 0, "Kira-h", MagicNo, 0, Red);
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_SELLSTOP, Lots, Bid, Slippage, SL, TP, "Kira-h", MagicNo, 0, Red);
}
}
كود PHP:extern int TotalProfitPips=30;
extern int TotalLossPips=99999;
كود PHP:void CheckPipsProfit()
{
double TT,W;
for(int i=OrdersTotal()-1; i >= 0; i--)
{
OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
{
if(OrderType()==OP_BUY)
{
W=((MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT));
if (Point==0.00001 || Point==0.001) W=((MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT))/10;
TT=TT+W;
}
else if(OrderType()==OP_SELL)
{
W=((OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT));
if (Point==0.00001 || Point==0.001) W=((OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT))/10;
TT=TT+W;
}
}
}
Comment("Profit= ",TT);
while(OrdersTotal()>0 && ((TT>=TotalProfitPips) || (TT<=(TotalLossPips*(-1)))))
{
for(i=OrdersTotal()-1; i >= 0; i--)
{
OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slippage);
else if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slippage);
else OrderDelete(OrderTicket());
}
}
}
آخر تعديل بواسطة kira-h ، 12-06-2013 الساعة 05:41 AM
- 12-06-2013, 08:13 AM #4002
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله
كنت حابب اعرف الكود البرمجي اللازم لعمل اكسبرت من اختراق عدد 2 مؤشر بولينجر كالتالي :
أن يكون السعر قد اخترق مؤشر البولينجر الأول الخط الأعلي له
عند ملامسة السعر للخط الأعلي لمؤشر البولينجر الثاني والذي يكون دائما أعلى المؤشر الأول علشان Deviation أكبر منه لان الأول 2 والثاني 3 الدخول بيع شرط أن يكون مؤشر cci اعلىمن 100
عند ملامسة السعر للخط السفلي لمؤشر البولينجر الثاني والذي يكون دائما أسفل المؤشر الأول علشان Deviation أكبر منه لان الأول 2 والثاني 3 الدخول شراء شرط مؤشر cci أقل من - 100
عدم فتح أي صفقات لنفس العملة طالما توجد صفقات فعالة
يا ريت من الأخوة المبرمجين المساعدده في كيفية التعامل مع المؤشرات وتفعيل صفقات البيع والشراء من خلال اختراق أو ملامسة أحد هذه الخطوط للمؤشراء سواء أكانت مؤشرات داخل الميتاتريدر أو مؤشر خارجي يرسم خطوط
جزاكم الله خيرا
- 12-06-2013, 06:25 PM #4003
السلام عليكم
كيف ازيل الكود الذى يجعل الاكسبيرت يتعرف على نوع المنصه اذا كانت خماسية او رباعية بحيث استطيع كتابه هدف اقل من النقطة الواحدة
مثلا انا كتبت فى الاكسبيرت ان الهدف نقطة فو الاكسبيرت لايتعرف على نوع المنصة ستحسب على منصة رباعية بنقطة اما على الخماسية واحد من عشره من النقطة وهذا هو ما اريد
والسؤال مره اخرى هو كيف ازيل او اين يوجد او ما هو الكود الذى يجعل الاكسبيرت يتعرف على نوع المنصة اذا كانت رباعية او خماسية
وشكرا
- 12-06-2013, 06:26 PM #4004
- 12-06-2013, 07:32 PM #4005
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM