Скачать MetaTrader 5

Визуализация Баланса, нужна помощь в реализации.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Иван
1007
Иван 2010.12.03 13:42 

Вот в процессе размышлений пришли к такому коду.

// ~~~~~~~~~~~~~~~~~~~ Curent Frame ~~~~~~~~~~~~~~~~~~~~~~~~~~

for (int RxIndex=CalcCount-1;RxIndex>=0;RxIndex--){
int RxTotal=OrdersHistoryTotal();
datetime RxTime=Time[RxIndex];
double RxPriceBuy=0;
double RxPriceSell=0;
for (RxOrder=0;RxOrder<RxTotal;RxOrder++){
if (OrderSelect(RxOrder,SELECT_BY_POS,MODE_HISTORY)==true){
if ((OrderOpenTime()<=RxTime)&&(OrderCloseTime()>=RxTime)){
if (OrderType()==OP_BUY) RxPriceBuy=RxPriceBuy+(iClose(OrderSymbol(),0,RxIndex)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
if (OrderType()==OP_SELL) RxPriceSell=RxPriceSell+(OrderOpenPrice()-iClose(OrderSymbol(),0,RxIndex))/MarketInfo(OrderSymbol(),MODE_POINT);
}
}
}
for (RxOrder=0;RxOrder<RxTotal;RxOrder++){
if (OrderSelect(RxOrder,SELECT_BY_POS,MODE_TRADES)==true){
if ((OrderOpenTime()<=RxTime)){
if (RxIndex>0) {
if (OrderType()==OP_BUY) RxPriceBuy=RxPriceBuy+(iClose(OrderSymbol(),0,RxIndex)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
if (OrderType()==OP_SELL) RxPriceSell=RxPriceSell+(OrderOpenPrice()-iClose(OrderSymbol(),0,RxIndex))/MarketInfo(OrderSymbol(),MODE_POINT);
}
else {
if (OrderType()==OP_BUY) RxPriceBuy=RxPriceBuy+(MarketInfo(OrderSymbol(),Bid)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
if (OrderType()==OP_SELL) RxPriceSell=RxPriceSell+(OrderOpenPrice()-MarketInfo(OrderSymbol(),Ask))/MarketInfo(OrderSymbol(),MODE_POINT);
}
}
}
}
TimeBuf1[RxIndex]=RxPriceBuy;
TimeBuf2[RxIndex]=RxPriceSell;
TimeBuf3[RxIndex]=RxPriceBuy+RxPriceSell;
}
ArrayCopy(FxView1,TimeBuf1,0,0,CalcCount);
ArrayCopy(FxView2,TimeBuf2,0,0,CalcCount);

ArrayCopy(FxView3,TimeBuf3,0,0,CalcCount);

А теперь собственно вопрос: получаеться нужно научиться считать баланс по селам и баям, так же стоит учитывать открытые и закрытые позиции ну и все полученные массивы вывести на график. что бы это было возможно выводить на экран при визуализированном тестировании советника. Как развить эту идею дальше? нужны подсказки или похожие примеры.

Александр
8513
Александр 2010.12.03 14:07  

Как-то давно Игорь (Хирург) подсказал для визуализации простое решение. Там четыре строки кода и простой индикатор. Посмотрите в ветке его.

Александр
8513
Александр 2010.12.03 14:13  

Вот это в советник:

if (IsVisualMode())
     {
      GlobalVariableSet("Balance",AccountBalance());
      GlobalVariableSet("Equity",AccountEquity());
      GlobalVariableSet("Margin",AccountMargin());
      GlobalVariableSet("Free",AccountFreeMargin());
     }

а на график индикатор в приложении.

ЗЫ: киньте на график индикатор и сохраните как шаблон для тестера.

Вроде все.

Файлы:
Иван
1007
Иван 2010.12.03 14:14  
alexx_v:

Как-то давно Игорь (Хирург) подсказал для визуализации простое решение. Там четыре строки кода и простой индикатор. Посмотрите в ветке его.



т.е. по сути в этом коде с моей стороны нет смысла? Иными словами путь неверный?
Иван
1007
Иван 2010.12.03 14:16  
alexx_v:

Вот это в советник:

а на график индикатор в приложении.

ЗЫ: киньте на график индикатор и сохраните как шаблон для тестера.

Вроде все.


ну да смотрится проще, спасибо, будем кумекать
Александр
8513
Александр 2010.12.03 14:17  

Тип того, излишества.

Кстати вот ссылка, где Игорь это говорил.

Александр
8513
Александр 2010.12.03 14:18  
EricGR:

ну да смотрится проще, спасибо, будем кумекать
И работает в визуальном режиме прекрасно.
Роман
7939
Роман 2010.12.03 14:19  
alexx_v:

Как-то давно Игорь (Хирург) подсказал для визуализации простое решение. Там четыре строки кода и простой индикатор. Посмотрите в ветке его.



Автор: Игорь (Хирург) - https://www.mql5.com/ru/code/8454
Иван
1007
Иван 2010.12.03 14:19  
alexx_v:
И работает в визуальном режиме прекрасно.

ну мне преимущественно над посмотреть сделать вывод а потом забрать данные для других решений советника, с этим разберемся, еще раз благодарю.
Александр
8513
Александр 2010.12.03 14:21  
Roman.:

Автор: Игорь (Хирург) - https://www.mql5.com/ru/code/8454
Это немного не то, что нужно было топикстартеру. Хотя индикатор замечательный и востребованный :)
Иван
1007
Иван 2010.12.03 15:13  
alexx_v:
Это немного не то, что нужно было топикстартеру. Хотя индикатор замечательный и востребованный :)

первый вариант подходит, так все проще, а мой путь получился тернистым и в другую строну аж))
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий