Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Возможно ли синхро отображение баров на разных таймфреймах? Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
vadimal



Зарегистрирован: 02.02.2011
Сообщения: 78

СообщениеДобавлено: Вс Фев 05, 2012 3:21 pm Ответить с цитатой Вернуться к началу

Доброго времени суток!
Кто знает? можно ли выделить бар зелёной вертикальной линией (два раза кликнуть по нему) так чтоб тождественный бар выделился на графике (открытом в другом окне) в другом таймфрейме. Суть в том что если тождественный бар находиться вне отображаемой области окна, график сам сдвинулся по времени и показал этот бар.
Более понятно описать не могу. Пример на скрине.
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Фев 05, 2012 8:26 pm Ответить с цитатой Вернуться к началу

Можно выделить участок (двойные клики), он выделяется зеленой и красной линиями. Выделяется одинаково во всех окнах (т.е. если выделил в одном, то и в другом выделилось синхронно). Потом можно увеличить это выделение на весть лист (левая граница будет с левого края а правая с правого). Для этого надо зажать Ctrl и Shift одновременно и кликнуть на плюсик на тулбаре.

Это в общем более геморойно чем хотел, но лучше способа я не знаю.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
asdby



Зарегистрирован: 31.10.2009
Сообщения: 7

СообщениеДобавлено: Пт Фев 24, 2012 9:54 am Ответить с цитатой Вернуться к началу

1- необходимо связать эти два окна по символу (кнопочка с символом S, находится возле Sheet-ов), пусть на обеих окнах эта кнопка будет красная.

А далее попробуй делать так:

2- устанавливаем вертикальный указатель на полюбившуюся свечу 1 - го окна

3-делаем активным 2-е окно, для этого кликнем мышкой по заголовку 2-го окна(не надо кликать по графику где находится цена)

4- на клавиатуре нажимаем последовательно стрелки влево и вправо (последовательность нажатия не важна)

5- график во 2-м окне сдвинется и вертикальный указатель покажется у края окна. Он будет стоять на свече которая отмечена в 1-м окне, естественно с учетом ТФ графика 2-го окна

ПисАть и читать указанную последовательность дольше чем 2 раза кликнуть мышкой и 2 раза нажать клавиши.

Это работает и для большего количества окон если они связаны по S.

это конечно не автомат но..., автомат я и сам хочу.
Посмотреть профиль Отправить личное сообщение
Eugene



Зарегистрирован: 24.04.2018
Сообщения: 4

СообщениеДобавлено: Ср Окт 24, 2018 4:20 pm Ответить с цитатой Вернуться к началу

asdby писал(а):

...
это конечно не автомат но..., автомат я и сам хочу.



Код:
_SECTION_BEGIN ("Adding Expanded TimeFrame");
//Adding Expanded TimeFrame
   TFMinShort      = Param("Short Timeframe (Minutes)", 1, 1, 60, 1);
   TFMinLong       = Param("Long Timeframe (Minutes)", 5, 1, 60, 1);
   OnSTFBars      = ParamToggle("Short TF Bars", "Off, On", 1);                     
   OnLTFBars      = ParamToggle("Long TF Bars", "Off, On", 1);
   BarLum1       = Param("Short TF Bar Color Intensity", 0, 0, 1, 0.01);
   BarLum2       = Param("Long TF Bar Color Intensity", 0.70, 0, 1, 0.01);
   LineColor       = ColorBlend(colorBlack, colorWhite, BarLum1);                  // Bar Colors for the Short Timeframe candlestick bars:
   UpBarColor      = ColorBlend(colorBrightGreen, colorWhite, BarLum1);
   DnBarColor      = ColorBlend(colorRed, colorWhite, BarLum1);
   TFLineColor    = ColorBlend(colorBlack, colorWhite, BarLum2 - 0.1);            // Bar Colors For The Long Timeframe candlestick bars:
   TFUpBarColor   = ColorBlend(colorBrightGreen, colorWhite, BarLum2);
   TFDnBarColor   = ColorBlend(colorRed, colorWhite, BarLum2);
   //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   // FUNCTIONS:
   //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   function GetVisibleBarCount()
   {
    lvb = Status("lastvisiblebar");
    fvb = Status("firstvisiblebar");
    return Min( Lvb - fvb, BarCount - fvb );
   }

   function GfxConvertBarToPixelX( bar )
   {
    lvb = Status("lastvisiblebar");
    fvb = Status("firstvisiblebar");
    pxchartleft = Status("pxchartleft");
    pxchartwidth = Status("pxchartwidth");
    return pxchartleft + bar  * pxchartwidth / ( Lvb - fvb + 1 );
   }

   function GfxConvertValueToPixelY( Value )
   {
    local Miny, Maxy, pxchartbottom, pxchartheight;
    Miny = Status("axisminy");
    Maxy = Status("axismaxy");
    pxchartbottom = Status("pxchartbottom");
    pxchartheight = Status("pxchartheight");
    if( (Maxy - Miny) ==0) Maxy - Miny=1;
    return pxchartbottom - floor( 0.5 + ( Value - Miny ) * pxchartheight/ ( Maxy - Miny ) );
   }

   StaticVarKey = Name();
   procedure xStaticVarSet(SName, SValue)
   {
    global StaticVarKey;
    if (StaticVarKey != "")
      StaticVarSet(Sname + StaticVarKey, Svalue);
   }
   //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   // MAIN PROGRAM:
   //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   if(Interval() != TFMinShort * 60)
   {
    Title = Title + "\n" + "\n" + "ALERT, ALERT, ALERT!!!" + "\n" + "Set the chart time Interval to: " + NumToStr(TFMinShort, 1.0, 1) +
                  " Minute(s) or change the Short Timeframe Parameter setting.";
    OnSTFBars      = 0;
    OnLTFBars      = 0;
    SetChartBkColor(colorRose);
   }

   if(TFMinShort >= TFMinLong)
   {
    Title = Title + "\n" + "\n" + "ALERT, ALERT, ALERT!!!" + "\n" + "The Long Timeframe setting must be longer than the Short Timeframe!";
    OnSTFBars      = 0;
    OnLTFBars      = 0;
    SetChartBkColor(colorRose);
   }

   if(OnSTFBars)
   {
    BarColor      = IIf(Close > Open, UpBarColor, DnBarColor);
    SetBarFillColor(BarColor);
    Plot(Close, "", LineColor, styleCandle);
   }
   else
    Plot(Close, "", colorBlack, styleCandle  | styleNoDraw);

   TFSec = in1Minute * TFMinLong;
   TimeFrameSet(TFSec);
   TFOpen          = Open;
   TFHigh          = High;
   TFLow             = Low;
   TFClose         = Close;
   TFBarIndex         = BarIndex();
   TFLastBarIndex   = LastValue(BarIndex());
   TimeFrameRestore();

   TFOpen          = TimeFrameExpand(TFOpen, TFSec, expandFirst);
   TFHigh          = TimeFrameExpand(TFHigh, TFSec, expandFirst);
   TFLow             = TimeFrameExpand(TFLow, TFSec, expandFirst);
   TFClose         = TimeFrameExpand(TFClose, TFSec, expandFirst);
   TFBarIndex         = TimeFrameExpand(TFBarIndex, TFSec, expandLast + 1);
   TFLastBarIndex   = TimeFrameExpand(TFLastBarIndex, TFSec, expandLast + 1);

   CandleTop          = Max(TFOpen, TFClose);
   CandleBottom      = Min(TFOpen, TFClose);
   //============================================================================
   // GFX LOW-LEVEL GRAPHICS SECTION.
   // DRAWING THE LONG TIMEFRAME CANDLESTICK BARS:
   //============================================================================
   if(OnLTFBars)
   {
    GfxSetOverlayMode(1);
    AllVisibleBars    = GetVisibleBarCount();
    fvb            = Status("firstvisiblebar");
    ChartWidth      = GfxConvertBarToPixelX(AllVisibleBars );
    PixBar          = ChartWidth / AllVisibleBars;
    Adjust         = Pixbar * 0.35;
    TFMinutes       = TFMinLong / TFMinShort;
    NewTFBar          = IIf(TFBarIndex != Ref(TFBarIndex, -1), 1, 0);
    BarInd         = BarIndex();
    TFLastBarIndex   = LastValue(TFLastBarIndex);
    // DRAW BAR HISTORY AND THE CURRENT BAR:
    for(i = 0; i < AllVisibleBars; i++)
    {
     x1 = GfxConvertBarToPixelX(i) * NewTFBar[i + fvb] - Adjust;
     if(BarInd[i + fvb] < TFLastBarIndex AND NewTFBar[i + fvb] == 1)
       {
         Counter = 0;
         for(n = i + 1; NewTFBar[n + fvb] == 0 AND n + fvb < BarCount-1; n++)
            Counter++;
         x2 = GfxConvertBarToPixelX(i + Counter) * NewTFBar[i + fvb] + 1 + Adjust;
       }

     if(TFBarIndex[i + fvb] == TFLastBarIndex)
      x2 = GfxConvertBarToPixelX(i + TFMinutes - 1) * NewTFBar[i + fvb] + 1 + Adjust;

      y1 = GfxConvertValueToPixelY(CandleTop[i + fvb]);
      y2 = GfxConvertValueToPixelY(CandleBottom[i + fvb]);
      yH = GfxConvertValueToPixelY(TFHigh[i + fvb]);
      yL = GfxConvertValueToPixelY(TFLow[i + fvb]);

      // Candle Body:
      GfxSelectPen(TFLineColor, 0);
      FillColor = IIf(TFOpen[i + fvb] < TFClose[i + fvb], TFUpBarColor,TFDnBarColor);
      GfxSelectSolidBrush(FillColor);
      if(y1 == y2){y1 = y1 - Adjust; y2 = y2 + Adjust;
      GfxSelectSolidBrush(TFLineColor);}
      if(x1 > 0){
         GfxRectangle( x1, y1, x2, y2);
         // Candle High and Low:
         GfxSelectPen(TFLineColor, 2);
         GfxMoveTo(x2+(x1-x2)/2, y1);
         GfxLineTo(x2+(x1-x2)/2, yH);
         GfxMoveTo(x2+(x1-x2)/2, y2);
         GfxLineTo(x2+(x1-x2)/2, yL);
         RequestTimedRefresh(0);
      }
    }
   }
GfxSelectFont("Arial", 8, 800, italic = False, underline = False, True );
GfxTextOut(StrFormat(Name()+" -    "+ TFMinLong+"- min    "  + "    "+Date() +"    "+ "  Open %g, High %g, Low %g, Close %g (%.1f%%)", TFOpen, TFHigh, TFLow, TFClose, SelectedValue( ROC( C, 1 ) ) ), 0 , 15 );
_SECTION_END();

_________________
Умный может ошибиться...
Посмотреть профиль Отправить личное сообщение
Swell



Зарегистрирован: 18.01.2013
Сообщения: 117

СообщениеДобавлено: Пт Мар 13, 2020 9:31 am Ответить с цитатой Вернуться к началу

У меня тут проблема возникла - импортировал котировки в минутном таймфрейме. Но кнопки переключения на 1-минутный, 5-минутный, 15-минутный таймфрейм на панели меню почему-то неактивны. При этом изменение таймфрейма через выпадающий список доступно и работает.
Почему кнопки переключения на эти таймфреймы неактивны?
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen