النتائج 4,006 إلى 4,020 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 12-06-2013, 09:21 PM #4006
- 12-06-2013, 09:21 PM #4007
- 13-06-2013, 01:37 AM #4008
رد:موضوع مخصص للأسئلة البرمجية
طيب أفضل حل الآن قم بإضافة كود المؤشر إلى الإكسبرت مباشرة
مثال
كود PHP:double Price;
if (!Set_Price_Manual)
{
if (Apply=="o" || Apply=="O") Price=Open[iBarBegin];
else if (Apply=="c" || Apply=="C") Price=Close[iBarBegin];
else if (Apply=="h" || Apply=="H") Price=High[iBarBegin];
else if (Apply=="l" || Apply=="L") Price=Low[iBarBegin];
else Price=(Close[iBarBegin] + Low[iBarBegin] + High[iBarBegin])/3;
}
else if (Set_Price_Manual) Price=Start_Price;
double NLine=Price;
double HigherLines[];
double LowerLines[];
ArrayResize(HigherLines,no_of_Higher_Lines);
ArrayResize(no_of_Lower_Lines,LowerLines);
for (int i=0;i<no_of_Higher_Lines;i++)
{
HigherLines[i]=Price+(i*Pips*Point);
}
for (int j=0;j<no_of_Lower_Lines;j++)
{
LowerLines[i]=Price-(j*Pips*Point);
}
بالنسبه لدالة حساب الربح فهي صحيحه نعم
- 13-06-2013, 01:41 AM #4009
رد:موضوع مخصص للأسئلة البرمجية
وعليكم السلام ورحمة الله وبركاته
تختلف حسب المبرمج وطريقة كتابته للكود فلا يوجد طريقة ثابته
الأسهل بالنسبه لك فما أنك تريد أن تجعل الهدف 0.1 نقطه فيمكنك كتابتها بهذا الشكل في المتغير الخارجي للهدف
لكن طبعا في الغالب سوف تجد أنه لا يمكن إلا كتابة أرقام صحيحه في خانة الهدف لذلك قم بتعديلها بدلا من جعله
كود PHP:extern int TakeProfit=0;
كود PHP:extern double TakeProfit=0;
- 13-06-2013, 07:08 AM #4010
السلام عليكم ورحمة الله.
اخي مستر دولار عندي اضافه فكره على إكسبرت أوامر معلقة مع المضاعفات
لماذا لايتم اضافه المناقصات عكس المضاعفات .يعني اذا كان العقد الاول 8 يكون العقد الثاني 7 والثالث 6 وهكذا او الاول 8 والثاني 4 والثالت 2 وهكذا؟
- 13-06-2013, 11:42 AM #4011
- 13-06-2013, 07:45 PM #4012
رد:موضوع مخصص للأسئلة البرمجية
تم دمج كود المؤشر مع الاكسبيرت بدون أخطاء في الكمبايل وللأسف لا يفتح أوامر بخطوط H و L
لكن خطرت ببالي فكرة للتأكد من استدعاء الخطوط
عملت شرط لكل خط
يعني H1 له شرط ; و H2 له شرط ..... وهكذا والمحصلة 41 شرط ل 82 دالة امر معلق
والنتيجة اشتغل الاكسبيرت بكفاءة وفتح الأوامر على جميع الخطوط كما هو مطلوب
إذن نستنتج ان الاكسبيرت يستطيع استدعاء قيم المؤشر
والخطأ بالتأكيد يكمن في المتتالية الرياضية للخطوط i :
كود PHP:for(int i=1;i<=20;i++)
{
double LineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
double LineL=ObjectGet("Li"+i,OBJPROP_PRICE1);
كود PHP:for(int i=1;i<=20;i++)
{
double LineH=ObjectGet("H"+i,OBJPROP_PRICE1);
double LineL=ObjectGet("L"+i,OBJPROP_PRICE1);
بانتظارك أستاذي الكريم،...اتعبناك معنا بارك الله فيك على مجهودك الرائع
تحياتي من القلب يازعيم
آخر تعديل بواسطة kira-h ، 13-06-2013 الساعة 07:49 PM
- 13-06-2013, 09:37 PM #4013
- 13-06-2013, 10:02 PM #4014
- 14-06-2013, 01:22 AM #4015
ماهو الكود المطلوب ليفتح الاكسبيرت صفقة فى نفس اتجاه الصفقه الاولى كلما عكس السعر 10 نقاط
وشكرا مقدما
- 14-06-2013, 02:55 AM #4016
- 14-06-2013, 02:56 AM #4017
- 14-06-2013, 03:03 AM #4018
رد:موضوع مخصص للأسئلة البرمجية
سوف تحتاج لعمل دالة تقوم بمعرفة سعر فتح آخر صفقه
كود PHP:double LastOpenPrice()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
double price=OrderOpenPrice();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()==type)
{
return(price);
}
}
}
كود PHP:double LastOrderType()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
int type=OrderType();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()==type)
{
return(type);
}
}
}
كود PHP:if(LastOrderType()==OP_BUY&&LastOpenPrice()-Bid>=10*Point)
{
// open buy order
}
if(LastOrderType()==OP_SELL&&Ask-LastOpenPrice()>=10*Point)
{
// open sell Order
}
- 14-06-2013, 04:27 AM #4019
رد:موضوع مخصص للأسئلة البرمجية
آخر تعديل بواسطة kira-h ، 14-06-2013 الساعة 04:33 AM
- 14-06-2013, 08:13 PM #4020
رد:موضوع مخصص للأسئلة البرمجية
برجاء المساعدة من خبراء البرمجة
هل هناك ما يشير فى هذا الكود الى ان الاكسبيرت يقوم بقراءة الهيستورى ويضع صفقاته بناءا عليه
كود PHP:int init() {
int li_0;
gt_unused_428 = Time[0];
gt_unused_432 = Time[0];
g_digits_584 = Digits;
if (g_digits_584 == 3 || g_digits_584 == 5) {
gd_524 = 10.0 * Point;
gd_532 = 10;
} else {
gd_524 = Point;
gd_532 = 1;
}
int l_ord_total_4 = OrdersTotal();
if (li_0 == 0 && l_ord_total_4 > 0) {
for (int l_pos_8 = 0; l_pos_8 < l_ord_total_4; l_pos_8++) {
if (OrderSelect(l_pos_8, SELECT_BY_POS)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell) {
li_0 = NormalizeDouble(OrderLots() / lots, (MarketInfo(Symbol(), MODE_MINLOT) == 0.01) + 1);
break;
}
}
}
}
int l_hist_total_12 = OrdersHistoryTotal();
if (li_0 == 0 && l_hist_total_12 > 0) {
for (l_pos_8 = 0; l_pos_8 < l_hist_total_12; l_pos_8++) {
if (OrderSelect(l_pos_8, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell) {
li_0 = NormalizeDouble(OrderLots() / lots, (MarketInfo(Symbol(), MODE_MINLOT) == 0.01) + 1);
break;
}
}
}
}
if (li_0 > 0) gd_632 = li_0;
return (0);
}
int start() {
double ld_8;
double ld_16;
g_ord_total_600 = OrdersTotal();
if (breakevengain > 0.0) {
for (int l_pos_0 = 0; l_pos_0 < g_ord_total_600; l_pos_0++) {
OrderSelect(l_pos_0, SELECT_BY_POS, MODE_TRADES);
if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell) {
if (OrderType() == OP_BUY) {
if (NormalizeDouble(Bid - OrderOpenPrice(), g_digits_584) < NormalizeDouble(breakevengain * gd_524, g_digits_584)) continue;
if (NormalizeDouble(OrderStopLoss() - OrderOpenPrice(), g_digits_584) >= NormalizeDouble(breakeven * gd_524, g_digits_584)) continue;
OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() + breakeven * gd_524, g_digits_584), OrderTakeProfit(), 0, Blue);
return (0);
}
if (NormalizeDouble(OrderOpenPrice() - Ask, g_digits_584) >= NormalizeDouble(breakevengain * gd_524, g_digits_584)) {
if (NormalizeDouble(OrderOpenPrice() - OrderStopLoss(), g_digits_584) < NormalizeDouble(breakeven * gd_524, g_digits_584)) {
OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(OrderOpenPrice() - breakeven * gd_524, g_digits_584), OrderTakeProfit(), 0, Red);
return (0);
}
}
}
}
}
if (trailingstop > 0.0 && maxtrades > 10) {
for (int l_pos_4 = 0; l_pos_4 < g_ord_total_600; l_pos_4++) {
OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES);
if (OrderType() <= OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell) {
if (OrderType() == OP_BUY) {
if (!(NormalizeDouble(Ask, g_digits_584) > NormalizeDouble(OrderOpenPrice() + trailingstart * gd_524, g_digits_584) && NormalizeDouble(OrderStopLoss(), g_digits_584) < NormalizeDouble(Bid - (trailingstop +
trailingstep) * gd_524, g_digits_584) || OrderStopLoss() == 0.0)) continue;
OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Bid - trailingstop * gd_524, g_digits_584), OrderTakeProfit(), 0, Blue);
return (0);
}
if (NormalizeDouble(Bid, g_digits_584) < NormalizeDouble(OrderOpenPrice() - trailingstart * gd_524, g_digits_584) && NormalizeDouble(OrderStopLoss(), g_digits_584) > NormalizeDouble(Ask +
(trailingstop + trailingstep) * gd_524, g_digits_584) || OrderStopLoss() == 0.0) {
OrderModify(OrderTicket(), OrderOpenPrice(), NormalizeDouble(Ask + trailingstop * gd_524, g_digits_584), OrderTakeProfit(), 0, Red);
return (0);
}
}
}
}
if (trailingstop > 0.0 && maxtrades == 1) {
g_count_616 = 0;
g_count_608 = 0;
g_count_612 = 0;
for (g_pos_628 = 0; g_pos_628 < g_ord_total_600; g_pos_628++) {
OrderSelect(g_pos_628, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy || OrderMagicNumber() == magicsell && OrderCloseTime() == 0) {
g_count_616++;
g_ord_profit_556 = OrderProfit();
if (OrderType() == OP_BUY) {
g_ticket_500 = OrderTicket();
g_ord_open_price_452 = OrderOpenPrice();
g_datetime_436 = OrderOpenTime();
g_ord_stoploss_468 = OrderStopLoss();
g_ord_takeprofit_484 = OrderTakeProfit();
gi_unused_620 = OrderProfit();
g_count_608++;
}
if (OrderType() == OP_SELL) {
g_ticket_504 = OrderTicket();
g_ord_open_price_460 = OrderOpenPrice();
g_datetime_440 = OrderOpenTime();
g_ord_stoploss_476 = OrderStopLoss();
g_ord_takeprofit_492 = OrderTakeProfit();
gi_unused_624 = OrderProfit();
g_count_612++;
}
}
}
if (NormalizeDouble(g_ord_takeprofit_484 - Bid, g_digits_584) > trailingstart * gd_524 && g_count_608 > 0) OrderModify(g_ticket_500, g_ord_open_price_452, g_ord_stoploss_468, NormalizeDouble(g_ord_takeprofit_484 - trailingstop * gd_524, g_digits_584), 0, Blue);
if (NormalizeDouble(Bid - g_ord_takeprofit_492, g_digits_584) > trailingstart * gd_524 && g_count_612 > 0) OrderModify(g_ticket_504, g_ord_open_price_460, g_ord_stoploss_476, NormalizeDouble(g_ord_takeprofit_492 + trailingstop * gd_524, g_digits_584), 0, Red);
}
if (basketpercent) {
ld_8 = profit * (AccountBalance() / 100.0);
ld_16 = loss * (AccountBalance() / 100.0);
gd_444 = AccountEquity() - AccountBalance();
if (gd_444 >= ld_8 || gd_444 <= (-1.0 * ld_16)) {
for (g_pos_564 = g_ord_total_600 - 1; g_pos_564 >= 0; g_pos_564--) {
OrderSelect(g_pos_564, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy && OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, slippage * gd_524);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == magicsell && OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, slippage * gd_524);
}
return (0);
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM