Kashtan
Игорь

 
Уровень 19

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Прошу создать скрипт

Просьба сделать скрипт переводящий результаты сделок из истории в Exel в виде заработанных пунктов.
Пример: Было совершено 4 сделки. 1. Покупка по цене 1.1350, закрытие по 1.1360. 2. Продажа по 1.1360, закрытие по 1.1370. 3. Покупка по 1.1370 закрытие по 1.1360. 4. Продажа по 1.1360, закрытие по 1.1350. В первом случае результат будет «10». Во втором — "-10". В третьем "-10". В четвёртом — «10».

То есть в столбце Exel будет выглядеть так:
  • +1
  • Просмотров: 3033
  • 21 ноября 2017, 18:29
  • Kashtan
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
Советник на Bollinger Bands +RSI
21 ноября 2017
22 ноября 2017

Брокер для ваших роботов, 15 лет на рынке

Комментарии (13)

+
0
Реально сделать. В порядке очереди рассмотрю.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 21 ноября 2017, 19:54
+
+2
Игорек *wall* 

Ну нельзя же так постоянно деградировать. Надо самому хоть раз напрячь мозг. Операции сложения и вычитания проходят в 1 классе начальной школы.
avatar

  19  pacak Сообщений: 552 - варвар Andre

  • 22 ноября 2017, 08:46
+
+3
avatar

  19  pacak Сообщений: 552 - варвар Andre

  • 22 ноября 2017, 09:16
+
0
Ща бум проверять*good* 
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 22 ноября 2017, 17:01
+
0
Какая то фигня) или покажешь как графики делать на примере?
Редактирован: 22 ноября 2017, 17:50
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 22 ноября 2017, 17:36
+
+1
Да не вопрос, покажу за 1000 рублей.
А ты шнурки сам умеешь завязывать? Что то я уже в этом сомневаюсь *fool* 
Пока бесплатно: excel как графики делать на примере
И я не АМ2, я разжевывать не буду. Бесплатно. А так любой каприз за ваши деньги. Могу помочь и бесплатно если вижу что человек учится и стремится. Но это не твой случай, тут скорее надо коэффициент 2Х за лень и тупость добавлять к стандартному тарифу.
avatar

  19  pacak Сообщений: 552 - варвар Andre

  • 23 ноября 2017, 08:49
+
0
Как графики делать я и так знал:)  Но перед тем как их делать, результаты в таблицу должны попасть все скопом за нужный период.
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 23 ноября 2017, 16:48
+
0
Это уже не смешно. Я знал что ты глупый, но не бесконечно. Теперь я констатирую это как факт — глупей тебя я в своей жизни людей не встречал, ты побил все рекорды и ежедневно падаешь в моих глазах все ниже — пробил дно и копаешь дальше.
результаты в таблицу должны попасть все скопом за нужный период

с*кабл*тьнах*й
А КОПИПАСТ ТЫ УМЕЕШЬ ДЕЛАТЬ? И в таблицу вставлять.
Тупо Ctrl-V + Ctrl-C
Из файла стейтмента в html в таблицу эксель. Или ты стейтмент из истории тоже не умеешь сохранять. И открывать в браузере.
Ну ебаный стыд, лучше ничего не отвечай, чем очередную тупость. Игрун по сравнению с тобой просто Эйнштейн, честное слово.
avatar

  19  pacak Сообщений: 552 - варвар Andre

  • 24 ноября 2017, 08:56
+
0
Петрович твою мать!!! К твоему сведению по сделкам на покупку одна формула, по сделкам на продажу противоположная. При копипасте из отчёта разнонаправленные сделки оказываются в перемешку и нет универсальной формулы чтоб при обработке всего столбца сортировала их и считала отдельно*fool* 
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 24 ноября 2017, 17:16
+
0
Функция выведет на экран результат указанного количества сделок:




//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string Result()
  {
   string s="";

   for(int i=OrdersHistoryTotal()-1;i>=OrdersHistoryTotal()-Count;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
              {
               s+="\n  "+(string)(NormalizeDouble((OrderOpenPrice()-OrderClosePrice())/_Point,0));
              }
           }
        }
     }
   return(s);
  }


И сам советник:


//+------------------------------------------------------------------+
//|                                                       Random.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, AM2."
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern int StopLoss      = 400;      // лось
extern int TakeProfit    = 500;      // язь
extern int Count         = 4;        // сколько сделок печатаем
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string Result()
  {
   string s="";

   for(int i=OrdersHistoryTotal()-1;i>=OrdersHistoryTotal()-Count;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
              {
               s+="\n  "+(string)(NormalizeDouble((OrderOpenPrice()-OrderClosePrice())/_Point,0));
              }
           }
        }
     }
   return(s);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int type=(int)MathMod(MathRand(),2);
   
   if(CountTrades()<1)
     {
      if(type==0) PutOrder(0,Ask);
      if(type==1) PutOrder(1,Bid);
     }
   Comment("\n Results: ",Result());
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 22 ноября 2017, 18:34
+
0
Проблема в том, что надо проверить историю некоторых счетов за несколько лет, в которых сделок огромное количество. И хотелось чтоб результаты заносились как то автоматически в ексель как на моём скрине, чтоб осталось только график по ним построить через мастер диаграмм. Похоже не так меня поняли.
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 23 ноября 2017, 16:46
+
+2
Вот ваша цитата из переписки в личке:

Или хотя бы в самом терминале писал в окне графика


Так и сделал.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 23 ноября 2017, 17:31
+
0
*yes* 
avatar

  19  Kashtan Автор Сообщений: 739 - Игорь

  • 23 ноября 2017, 19:41

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий