Автор |
Сообщение |
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
Доброго времени суток!
Кто знает? можно ли выделить бар зелёной вертикальной линией (два раза кликнуть по нему) так чтоб тождественный бар выделился на графике (открытом в другом окне) в другом таймфрейме. Суть в том что если тождественный бар находиться вне отображаемой области окна, график сам сдвинулся по времени и показал этот бар.
Более понятно описать не могу. Пример на скрине. |
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Можно выделить участок (двойные клики), он выделяется зеленой и красной линиями. Выделяется одинаково во всех окнах (т.е. если выделил в одном, то и в другом выделилось синхронно). Потом можно увеличить это выделение на весть лист (левая граница будет с левого края а правая с правого). Для этого надо зажать Ctrl и Shift одновременно и кликнуть на плюсик на тулбаре.
Это в общем более геморойно чем хотел, но лучше способа я не знаю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
asdby
Зарегистрирован: 31.10.2009
Сообщения: 7
|
1- необходимо связать эти два окна по символу (кнопочка с символом S, находится возле Sheet-ов), пусть на обеих окнах эта кнопка будет красная.
А далее попробуй делать так:
2- устанавливаем вертикальный указатель на полюбившуюся свечу 1 - го окна
3-делаем активным 2-е окно, для этого кликнем мышкой по заголовку 2-го окна(не надо кликать по графику где находится цена)
4- на клавиатуре нажимаем последовательно стрелки влево и вправо (последовательность нажатия не важна)
5- график во 2-м окне сдвинется и вертикальный указатель покажется у края окна. Он будет стоять на свече которая отмечена в 1-м окне, естественно с учетом ТФ графика 2-го окна
ПисАть и читать указанную последовательность дольше чем 2 раза кликнуть мышкой и 2 раза нажать клавиши.
Это работает и для большего количества окон если они связаны по S.
это конечно не автомат но..., автомат я и сам хочу. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Eugene
Зарегистрирован: 24.04.2018
Сообщения: 4
|
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
|
У меня тут проблема возникла - импортировал котировки в минутном таймфрейме. Но кнопки переключения на 1-минутный, 5-минутный, 15-минутный таймфрейм на панели меню почему-то неактивны. При этом изменение таймфрейма через выпадающий список доступно и работает.
Почему кнопки переключения на эти таймфреймы неактивны? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|