Экспорт исторических событий
Atom
23.11.2010
skuvv


Можно ли использую S# выгружать по запросу из квика исторические данные, например история свечек? Если можно то как?


Теги:


Спасибо:


artemox

Фотография
Дата: 23.11.2010
Ответить


Стандартно не поддерживается (т.к. таблицы Квик содержать только значения за текущий день) На форуме говорили, что можно сделать купайл таблицу со свечами и экспортировать её как произвольную таблицу с помошью S#

Спасибо:

skuvv

Фотография
Дата: 23.11.2010
Ответить


Гори в аду этот купайл [cursing]

Спасибо:

Mikhail Sukhov

Фотография
Дата: 23.11.2010
Ответить


skuvv: Гори в аду этот купайл [cursing]

Да ладно. Я на купели такой портфель накатал за день. Это был мой первый день знакомства с купелью. Могу выслать.

А название топика рулит.[laugh]

Спасибо:

skuvv

Фотография
Дата: 23.11.2010
Ответить


Давайте, погляжу [cool] . Просто не хочется связываться с qpile...

Спасибо:

Mikhail Sukhov

Фотография
Дата: 23.11.2010
Ответить


skuvv: Давайте, погляжу [cool] . Просто не хочется связываться с qpile...


PORTFOLIO_EX SampleCandleExport;
DESCRIPTION Пример экспорта графиков со свечками по DDE;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;

PROGRAM

secClass = "QJSIM"
secCode = "LKOH"
timeFrame = 5
candleMaxCount = 50

DELETE_ALL_ITEMS()

dateTime = GET_DATETIME()
yearPart = GET_VALUE(dateTime, "YEAR")
monthPart = GET_VALUE(dateTime, "MONTH")
dayPart = GET_VALUE(dateTime, "DAY")
hourPart = GET_VALUE(dateTime, "Hour")
minutePart = GET_VALUE(dateTime, "Min")

minutePart = timeFrame * FLOOR(minutePart / timeFrame)

for i from 1 to candleMaxCount
    dateString = GetDataString(yearPart, monthPart, dayPart)
    timeString = GetTimeString(hourPart, minutePart)
  
    candle = GET_CANDLE(secClass, secCode, "", timeFrame, "PRICE", dateString, timeString)
    open = GET_VALUE (candle, "Open") + 0
    
    if (open>0)
      high=GET_VALUE (Candle, "High")
      low=GET_VALUE (Candle, "Low")
      close=GET_VALUE (Candle, "Close")
      volume = GET_VALUE(candle, "Volume")
      
      output = CREATE_MAP()
      output = SET_VALUE(output, "Date", dateString)
      output = SET_VALUE(output, "Time", timeString)
      output = SET_VALUE(output, "OpenPrice", open)
      output = SET_VALUE(output, "HighPrice", high)
      output = SET_VALUE(output, "LowPrice", low)
      output = SET_VALUE(output, "ClosePrice", close)
      output = SET_VALUE(output, "Volume", volume)
      
      ADD_ITEM(i, output)
    end if
    
    minutePart = minutePart - timeFrame
    
    if minutePart < 0
        minutePart = 60 - timeFrame
        hourPart = hourPart - 1
        
        if hourPart < 0
            hourPart = 23
            dayPart = dayPart - 1
            
            if dayPart < 1
                dayPart = 31
                monthPart = monthPart - 1
                
                if monthPart < 1
                    monthPart = 12
                    yearPart = yearPart - 1
                end if
            end if
        end if
    end if
end for

func GetDataString(year, month, day)
  if (LEN(month) < 2)
    month = "0" & month
  end if
  if (LEN(day) < 2)
    day = "0" & day
  end if
  result = year & month & day
end func

func GetTimeString(hour, min, sec)
  if (LEN(hour) < 2)
    hour = "0" & hour
  end if
    if (LEN(min) < 2)
    Min = "0" & min
  end if
  result = Hour & min & "00"
end func

END_PROGRAM

PARAMETER Date;
PARAMETER_TITLE Дата;
PARAMETER_DESCRIPTION Дата cвечки;
PARAMETER_TYPE STRING(30);
END

PARAMETER Time;
PARAMETER_TITLE Время;
PARAMETER_DESCRIPTION Время cвечки;
PARAMETER_TYPE STRING(30);
END

PARAMETER OpenPrice;
PARAMETER_TITLE Цена открытия;
PARAMETER_DESCRIPTION Цена открытия свечки;
PARAMETER_TYPE NUMERIC(10,2);
END

PARAMETER HighPrice;
PARAMETER_TITLE Максимальная цена;
PARAMETER_DESCRIPTION Максимальная цена свечки;
PARAMETER_TYPE NUMERIC(10,2);
END

PARAMETER LowPrice;
PARAMETER_TITLE Минимальная цена;
PARAMETER_DESCRIPTION Минимальная цена свечки;
PARAMETER_TYPE NUMERIC(10,2);
END

PARAMETER ClosePrice;
PARAMETER_TITLE Цена закрытия;
PARAMETER_DESCRIPTION Цена закрытия свечки;
PARAMETER_TYPE NUMERIC(10,2);
END

PARAMETER Volume;
PARAMETER_TITLE Объем;
PARAMETER_DESCRIPTION Объем сделок в свечке;
PARAMETER_TYPE NUMERIC(10,0);
END

END_PORTFOLIO_EX

Спасибо:

skuvv

Фотография
Дата: 23.11.2010
Ответить


Спасибо. А как переделать чобы обновлялись/считались только последние 10 свечек, а не вся история?

Спасибо:

Mikhail Sukhov

Фотография
Дата: 23.11.2010
Ответить


skuvv: Спасибо. А как переделать чобы обновлялись/считались только последние 10 свечек, а не вся история?

candleMaxCount

Спасибо:

skuvv

Фотография
Дата: 23.11.2010
Ответить


Я имел ввиду чтобы при первом расчете просчиталась вся история, а потом обновлялось например последние 10 свечек, а не всё.

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy