как программно записать цену открытия либо цену закрытия в буфер обмена?

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

Как пример - по цифровым клавишам переключать таймфрейм.


Хочу чтобы при нажатии ctrl+C в буфер записывалась цена открытия.

Это удобно для получения уровней. Спасибо.

//+------------------------------------------------------------------+

//|                                                      hotKeys.mq4 |
//|                                     Copyright 2015,Mohit Marwaha |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Mohit Marwaha"
#property link      "marwaha1@gmail.com"
#property version   "1.20"
#property strict
#property indicator_chart_window
#property description "Keys 1 through 9 change timeframes from 1 minute to Monthly"
#define KEY_MONTHLY 57
#define KEY_WEEKLY 56
#define KEY_DAILY 55
#define KEY_4HOUR 54
#define KEY_1HOUR 53
#define KEY_30MIN 52
#define KEY_15MIN 51
#define KEY_5MIN 50
#define KEY_1MIN 49
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   Comment("Copyright MohitMarwaha");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_WEEKLY:ChartSetSymbolPeriod(0,NULL,10080);
         break;
         case KEY_DAILY:ChartSetSymbolPeriod(0,NULL,1440);
         break;
         case KEY_4HOUR:ChartSetSymbolPeriod(0,NULL,240);
         break;
         case KEY_1HOUR:ChartSetSymbolPeriod(0,NULL,60);
         break;
         case KEY_5MIN:ChartSetSymbolPeriod(0,NULL,5);
         break;
         case KEY_30MIN:ChartSetSymbolPeriod(0,NULL,30);
         break;
         case KEY_15MIN:ChartSetSymbolPeriod(0,NULL,15);
         break;
         case KEY_MONTHLY:ChartSetSymbolPeriod(0,NULL,43200);
         break;
         case KEY_1MIN:ChartSetSymbolPeriod(0,NULL,1);
         break;
        }
      ChartRedraw();
     }
  }
//+------------------------------------------------------------------+

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
Выберите подходящую торговую стратегию и оформите подписку на нее в пару кликов. Все Сигналы сопровождаются подробной статистикой и графиками. Станьте Поставщиком торговых сигналов и продавайте подписку тысячам трейдеров по всему миру. Наш сервис позволит вам хорошо зарабатывать на прибыльной стратегии даже при небольшом стартовом капитале...
Sergey Kolemanov
1019
Sergey Kolemanov  
operlay:

Как пример - по цифровым клавишам переключать таймфрейм.


Хочу чтобы при нажатии ctrl+C в буфер записывалась цена открытия.

Это удобно для получения уровней. Спасибо.


Записать не проблема, но для начала Вам нужно определиться под каким индексом нужно делать запись в буфер. Ведь по сути буфер индикатора это массив. Например нажали Вы ctrl+C , в какую ячейку буфера нужно записать данные ? в 0 или 1 или 2 ... или может быть в 30 ?

P.S. Зачем всё так усложнять ?

Цену открытия для текущего таймфрейма можно получить так

Open[i]

для таймфрейма отличного от текущего (как пример D1)

iOpen(Symbol(), PERIOD_D1, i);

i - это индекс бара с которого нужны данные.

Evgeny Belyaev
162467
Evgeny Belyaev  
Sergey Kolemanov:
Записать не проблема, но для начала Вам нужно определиться под каким индексом нужно делать запись в буфер. Ведь по сути буфер индикатора это массив. Например нажали Вы ctrl+C , в какую ячейку буфера нужно записать данные ? в 0 или 1 или 2 ... или может быть в 30 ?

Буфер обмена и буфер индикатора это разные вещи.

Sergey Kolemanov
1019
Sergey Kolemanov  
Evgeny Belyaev:

Буфер обмена и буфер индикатора это разные вещи.


Если так то да...

А где там написано что это буфер обмена ? 

TheXpert
18311
TheXpert  
Sergey Kolemanov:

А где там написано что это буфер обмена ? 

В заголовке темы.

operlay:

Хочу чтобы при нажатии ctrl+C в буфер записывалась цена открытия.

только через winapi, код на форуме можно найти
Artyom Trishkin
Модератор
56777
Artyom Trishkin  
Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2017.08.22
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
operlay
82
operlay  

Спасибо!!! то что надо!!В буфер обмена надо. Чтобы затем эти данные удобнее ставить для уведомлений от индикатора который находит уровни.

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