Необходимо получить максимальный баланс за несколько последних дней.
Действующая функция AccountBalance возвращает только баланс на текущую дату.
Я же хочу рассчитать торговый баланс на основе закрытых сделок (баланс от торговых операций), без поступлений и снятий.
Не работал раньше с закрытыми сделками и функциями времени.
Может кто уже решил этот вопрос - спасибо за комментарии.
Как код скорректировать, чтобы он показывал верные результаты.
Спасибо, видимо ошибка в работе с датой времени.
Интересная исходная строка:
d0=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));
Попробую отредактировать и переписать.
о боже, скоко быдлокода...
Один выложил, а второй это в цитате дублирует, так и весь форум засрать недолго
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Необходимо получить максимальный баланс за несколько последних дней.
Действующая функция AccountBalance возвращает только баланс на текущую дату.
Я же хочу рассчитать торговый баланс на основе закрытых сделок (баланс от торговых операций), без поступлений и снятий.
Не работал раньше с закрытыми сделками и функциями времени.
Может кто уже решил этот вопрос - спасибо за комментарии.
Как код скорректировать, чтобы он показывал верные результаты.
double GetMaksBalans(string sy="", int op=-1, int mn=-1)
{
double p1=0, p2=0, p3=0, p4=0, p5=0, p6=0, p7=0, p8=0, p9=0, p10=0, p11=0, p12=0, p13=0, p14=0, p15=0,
p16=0, p17=0, p18=0, p19=0, p20=0, p21=0, p22=0, p23=0, p24=0, p25=0, p26=0, p27=0, p28=0, p29=0, p30=0;
double Bal_1=0, Bal_2=0, Bal_3=0, Bal_4=0, Bal_5=0, Bal_6=0, Bal_7=0, Bal_8=0, Bal_9=0, Bal_10=0, Bal_11=0, Bal_12=0, Bal_13=0, Bal_14=0, Bal_15=0,
Bal_16=0, Bal_17=0, Bal_18=0, Bal_19=0, Bal_20=0, Bal_21=0, Bal_22=0, Bal_23=0, Bal_24=0, Bal_25=0, Bal_26=0, Bal_27=0, Bal_28=0, Bal_29=0, Bal_0=0;
int i, k=OrdersHistoryTotal();
int N=30;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
if (TimeCurrent()-N*24*60*60<OrderCloseTime())
{p30+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 30 дней
if (TimeCurrent()-(N-1)*24*60*60<OrderCloseTime())
{p29+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 29 дней
if (TimeCurrent()-(N-2)*24*60*60<OrderCloseTime())
{p28+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 28 дней
if (TimeCurrent()-(N-3)*24*60*60<OrderCloseTime())
{p27+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 27 дней
if (TimeCurrent()-(N-4)*24*60*60<OrderCloseTime())
{p26+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 26 дней
if (TimeCurrent()-(N-5)*24*60*60<OrderCloseTime())
{p25+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 25 дней
if (TimeCurrent()-(N-6)*24*60*60<OrderCloseTime())
{p24+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 24 дней
if (TimeCurrent()-(N-7)*24*60*60<OrderCloseTime())
{p23+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 23 дней
if (TimeCurrent()-(N-8)*24*60*60<OrderCloseTime())
{p22+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 22 дней
if (TimeCurrent()-(N-9)*24*60*60<OrderCloseTime())
{p21+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 21 дней
if (TimeCurrent()-(N-10)*24*60*60<OrderCloseTime())
{p20+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 20 дней
if (TimeCurrent()-(N-11)*24*60*60<OrderCloseTime())
{p19+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 19 дней
if (TimeCurrent()-(N-12)*24*60*60<OrderCloseTime())
{p18+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 18 дней
if (TimeCurrent()-(N-13)*24*60*60<OrderCloseTime())
{p17+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 17 дней
if (TimeCurrent()-(N-14)*24*60*60<OrderCloseTime())
{p16+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 16 дней
if (TimeCurrent()-(N-15)*24*60*60<OrderCloseTime())
{p15+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 15 дней
if (TimeCurrent()-(N-16)*24*60*60<OrderCloseTime())
{p14+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 14 дней
if (TimeCurrent()-(N-17)*24*60*60<OrderCloseTime())
{p13+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 13 дней
if (TimeCurrent()-(N-18)*24*60*60<OrderCloseTime())
{p12+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 12 дней
if (TimeCurrent()-(N-19)*24*60*60<OrderCloseTime())
{p11+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 11 дней
if (TimeCurrent()-(N-20)*24*60*60<OrderCloseTime())
{p10+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 10 дней
if (TimeCurrent()-(N-21)*24*60*60<OrderCloseTime())
{p9+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 9 дней
if (TimeCurrent()-(N-22)*24*60*60<OrderCloseTime())
{p8+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 8 дней
if (TimeCurrent()-(N-23)*24*60*60<OrderCloseTime())
{p7+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 7 дней
if (TimeCurrent()-(N-24)*24*60*60<OrderCloseTime())
{p6+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 6 дней
if (TimeCurrent()-(N-25)*24*60*60<OrderCloseTime())
{p5+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 5 дней
if (TimeCurrent()-(N-26)*24*60*60<OrderCloseTime())
{p4+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 4 дней
if (TimeCurrent()-(N-27)*24*60*60<OrderCloseTime())
{p3+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 3 дней
if (TimeCurrent()-(N-28)*24*60*60<OrderCloseTime())
{p2+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 2 дней
if (TimeCurrent()-(N-29)*24*60*60<OrderCloseTime())
{p1+=OrderProfit()+OrderCommission()+OrderSwap();} // прибыль за 1 дней
}
}
}
}
}
Max_Balans_30 = AccountBalance ();
Bal_0 = AccountBalance () - p1; GlobalVariableSet("Balans01", AccountBalance () - p1);
Bal_1 = AccountBalance () - p2; GlobalVariableSet("Balans02", AccountBalance () - p2);
Bal_2 = AccountBalance () - p3; GlobalVariableSet("Balans03", AccountBalance () - p3);
Bal_3 = AccountBalance () - p4; GlobalVariableSet("Balans04", AccountBalance () - p4);
Bal_4 = AccountBalance () - p5; GlobalVariableSet("Balans05", AccountBalance () - p5);
Bal_5 = AccountBalance () - p6; GlobalVariableSet("Balans06", AccountBalance () - p6);
Bal_6 = AccountBalance () - p7; GlobalVariableSet("Balans07", AccountBalance () - p7);
Bal_7 = AccountBalance () - p8; GlobalVariableSet("Balans08", AccountBalance () - p8);
Bal_8 = AccountBalance () - p9; GlobalVariableSet("Balans09", AccountBalance () - p9);
Bal_9 = AccountBalance () - p10; GlobalVariableSet("Balans10", AccountBalance () - p10);
Bal_10 = AccountBalance () - p11; GlobalVariableSet("Balans11", AccountBalance () - p11);
Bal_11 = AccountBalance () - p12; GlobalVariableSet("Balans12", AccountBalance () - p12);
Bal_12 = AccountBalance () - p13; GlobalVariableSet("Balans13", AccountBalance () - p13);
Bal_13 = AccountBalance () - p14; GlobalVariableSet("Balans14", AccountBalance () - p14);
Bal_14 = AccountBalance () - p15; GlobalVariableSet("Balans15", AccountBalance () - p15);
Bal_15 = AccountBalance () - p16; GlobalVariableSet("Balans16", AccountBalance () - p16);
Bal_16 = AccountBalance () - p17; GlobalVariableSet("Balans17", AccountBalance () - p17);
Bal_17 = AccountBalance () - p18; GlobalVariableSet("Balans18", AccountBalance () - p18);
Bal_18 = AccountBalance () - p19; GlobalVariableSet("Balans19", AccountBalance () - p19);
Bal_19 = AccountBalance () - p20; GlobalVariableSet("Balans20", AccountBalance () - p20);
Bal_20 = AccountBalance () - p21; GlobalVariableSet("Balans21", AccountBalance () - p21);
Bal_21 = AccountBalance () - p22; GlobalVariableSet("Balans22", AccountBalance () - p22);
Bal_22 = AccountBalance () - p23; GlobalVariableSet("Balans23", AccountBalance () - p23);
Bal_23 = AccountBalance () - p24; GlobalVariableSet("Balans24", AccountBalance () - p24);
Bal_24 = AccountBalance () - p25; GlobalVariableSet("Balans25", AccountBalance () - p25);
Bal_25 = AccountBalance () - p26; GlobalVariableSet("Balans26", AccountBalance () - p26);
Bal_26 = AccountBalance () - p27; GlobalVariableSet("Balans27", AccountBalance () - p27);
Bal_27 = AccountBalance () - p28; GlobalVariableSet("Balans28", AccountBalance () - p28);
Bal_28 = AccountBalance () - p29; GlobalVariableSet("Balans29", AccountBalance () - p29);
Bal_29 = AccountBalance () - p30; GlobalVariableSet("Balans30", AccountBalance () - p30);
if (Bal_28 > Max_Balans_30) Max_Balans_30 = Bal_28;
if (Bal_28 > Max_Balans_30) Max_Balans_30 = Bal_28;
if (Bal_27 > Max_Balans_30) Max_Balans_30 = Bal_27;
if (Bal_26 > Max_Balans_30) Max_Balans_30 = Bal_26;
if (Bal_25 > Max_Balans_30) Max_Balans_30 = Bal_25;
if (Bal_24 > Max_Balans_30) Max_Balans_30 = Bal_24;
if (Bal_23 > Max_Balans_30) Max_Balans_30 = Bal_23;
if (Bal_22 > Max_Balans_30) Max_Balans_30 = Bal_22;
if (Bal_21 > Max_Balans_30) Max_Balans_30 = Bal_21;
if (Bal_20 > Max_Balans_30) Max_Balans_30 = Bal_20;
if (Bal_19 > Max_Balans_30) Max_Balans_30 = Bal_19;
if (Bal_18 > Max_Balans_30) Max_Balans_30 = Bal_18;
if (Bal_17 > Max_Balans_30) Max_Balans_30 = Bal_17;
if (Bal_16 > Max_Balans_30) Max_Balans_30 = Bal_16;
if (Bal_15 > Max_Balans_30) Max_Balans_30 = Bal_15;
if (Bal_14 > Max_Balans_30) Max_Balans_30 = Bal_14;
if (Bal_13 > Max_Balans_30) Max_Balans_30 = Bal_13;
if (Bal_12 > Max_Balans_30) Max_Balans_30 = Bal_12;
if (Bal_11 > Max_Balans_30) Max_Balans_30 = Bal_11;
if (Bal_10 > Max_Balans_30) Max_Balans_30 = Bal_10;
if (Bal_9 > Max_Balans_30) Max_Balans_30 = Bal_9;
if (Bal_8 > Max_Balans_30) Max_Balans_30 = Bal_8;
if (Bal_7 > Max_Balans_30) Max_Balans_30 = Bal_7;
if (Bal_6 > Max_Balans_30) Max_Balans_30 = Bal_6;
if (Bal_5 > Max_Balans_30) Max_Balans_30 = Bal_5;
if (Bal_4 > Max_Balans_30) Max_Balans_30 = Bal_4;
if (Bal_3 > Max_Balans_30) Max_Balans_30 = Bal_3;
if (Bal_2 > Max_Balans_30) Max_Balans_30 = Bal_2;
if (Bal_1 > Max_Balans_30) Max_Balans_30 = Bal_1;
if (Bal_0 > Max_Balans_30) Max_Balans_30 = Bal_0;
GlobalVariableSet("Max_Balans_30",Max_Balans_30);
return(Max_Balans_30);
}