Skip to content

Commit

Permalink
add support for more candlesticks periods
Browse files Browse the repository at this point in the history
  • Loading branch information
sunli829 committed Dec 24, 2024
1 parent 27ad637 commit 66c2499
Show file tree
Hide file tree
Showing 14 changed files with 474 additions and 90 deletions.
46 changes: 41 additions & 5 deletions c/csrc/include/longport.h
Original file line number Diff line number Diff line change
Expand Up @@ -690,36 +690,72 @@ typedef enum lb_period_t {
* One Minute
*/
PeriodMin1,
/**
* Two Minute
*/
PeriodMin2,
/**
* Three Minutes
*/
PeriodMin3,
/**
* Five Minutes
*/
PeriodMin5,
/**
* Ten Minutes
*/
PeriodMin10,
/**
* Fifteen Minutes
*/
PeriodMin15,
/**
* Twenty Minutes
*/
PeriodMin20,
/**
* Thirty Minutes
*/
PeriodMin30,
/**
* Sixty Minutes
* Forty-Five Minutes
*/
PeriodMin45,
/**
* One Hour
*/
PeriodMin60,
/**
* One Day
* Two Hours
*/
PeriodMin120,
/**
* Three Hours
*/
PeriodMin180,
/**
* Four Hours
*/
PeriodMin240,
/**
* Daily
*/
PeriodDay,
/**
* One Week
* Weekly
*/
PeriodWeek,
/**
* One Month
* Monthly
*/
PeriodMonth,
/**
* One Year
* Quarterly
*/
PeriodQuarter,
/**
* Yearly
*/
PeriodYear,
} lb_period_t;
Expand Down
37 changes: 32 additions & 5 deletions c/src/quote_context/enum_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -247,28 +247,55 @@ pub enum CPeriod {
/// One Minute
#[c(remote = "OneMinute")]
PeriodMin1,
/// Two Minute
#[c(remote = "TwoMinute")]
PeriodMin2,
/// Three Minutes
#[c(remote = "ThreeMinute")]
PeriodMin3,
/// Five Minutes
#[c(remote = "FiveMinute")]
PeriodMin5,
/// Ten Minutes
#[c(remote = "TenMinute")]
PeriodMin10,
/// Fifteen Minutes
#[c(remote = "FifteenMinute")]
PeriodMin15,
/// Twenty Minutes
#[c(remote = "TwentyMinute")]
PeriodMin20,
/// Thirty Minutes
#[c(remote = "ThirtyMinute")]
PeriodMin30,
/// Sixty Minutes
/// Forty-Five Minutes
#[c(remote = "FortyFiveMinute")]
PeriodMin45,
/// One Hour
#[c(remote = "SixtyMinute")]
PeriodMin60,
/// One Day
/// Two Hours
#[c(remote = "TwoHour")]
PeriodMin120,
/// Three Hours
#[c(remote = "ThreeHour")]
PeriodMin180,
/// Four Hours
#[c(remote = "FourHour")]
PeriodMin240,
/// Daily
#[c(remote = "Day")]
PeriodDay,
/// One Week
/// Weekly
#[c(remote = "Week")]
PeriodWeek,
/// One Month
/// Monthly
#[c(remote = "Month")]
PeriodMonth,
/// One Year
/// Quarterly
#[c(remote = "Quarter")]
PeriodQuarter,
/// Yearly
#[c(remote = "Year")]
PeriodYear,
}
Expand Down
30 changes: 24 additions & 6 deletions cpp/include/types.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,25 +126,43 @@ struct DerivativeType
/// Candlestick period
enum class Period
{
/// Unknown,
/// Unknown
Unknown,
/// One Minute
Min1,
/// Two Minute
Min2,
/// Three Minutes
Min3,
/// Five Minutes
Min5,
/// Ten Minutes
Min10,
/// Fifteen Minutes
Min15,
/// Twenty Minutes
Min20,
/// Thirty Minutes
Min30,
/// Sixty Minutes
/// Forty-Five Minutes
Min45,
/// One Hour
Min60,
/// One Day
/// Two Hours
Min120,
/// Three Hours
Min180,
/// Four Hours
Min240,
/// Daily
Day,
/// One Week
/// Weekly
Week,
/// One Month
/// Monthly
Month,
/// One Year
/// Quarterly
Quarter,
/// Yearly
Year,
};

Expand Down
34 changes: 34 additions & 0 deletions cpp/src/convert.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,20 +172,38 @@ convert(Period period)
return PeriodUnknown;
case Period::Min1:
return PeriodMin1;
case Period::Min2:
return PeriodMin2;
case Period::Min3:
return PeriodMin3;
case Period::Min5:
return PeriodMin5;
case Period::Min10:
return PeriodMin10;
case Period::Min15:
return PeriodMin15;
case Period::Min20:
return PeriodMin20;
case Period::Min30:
return PeriodMin30;
case Period::Min45:
return PeriodMin45;
case Period::Min60:
return PeriodMin60;
case Period::Min120:
return PeriodMin120;
case Period::Min180:
return PeriodMin180;
case Period::Min240:
return PeriodMin240;
case Period::Day:
return PeriodDay;
case Period::Week:
return PeriodWeek;
case Period::Month:
return PeriodMonth;
case Period::Quarter:
return PeriodQuarter;
case Period::Year:
return PeriodYear;
default:
Expand All @@ -201,20 +219,36 @@ convert(lb_period_t period)
return Period::Unknown;
case PeriodMin1:
return Period::Min1;
case PeriodMin2:
return Period::Min2;
case PeriodMin3:
return Period::Min3;
case PeriodMin5:
return Period::Min5;
case PeriodMin15:
return Period::Min15;
case PeriodMin20:
return Period::Min20;
case PeriodMin30:
return Period::Min30;
case PeriodMin45:
return Period::Min45;
case PeriodMin60:
return Period::Min60;
case PeriodMin120:
return Period::Min120;
case PeriodMin180:
return Period::Min180;
case PeriodMin240:
return Period::Min240;
case PeriodDay:
return Period::Day;
case PeriodWeek:
return Period::Week;
case PeriodMonth:
return Period::Month;
case PeriodQuarter:
return Period::Quarter;
case PeriodYear:
return Period::Year;
default:
Expand Down
9 changes: 9 additions & 0 deletions java/javasrc/src/main/java/com/longport/quote/Period.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,21 @@
public enum Period {
Unknown,
Min_1,
Min_2,
Min_3,
Min_5,
Min_10,
Min_15,
Min_20,
Min_30,
Min_45,
Min_60,
Min_120,
Min_180,
Min_240,
Day,
Week,
Month,
Quarter,
Year,
}
20 changes: 19 additions & 1 deletion java/src/types/enum_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,18 +136,36 @@ impl_java_enum!(
Unknown,
#[java(remote = "OneMinute")]
Min_1,
#[java(remote = "TwoMinute")]
Min_2,
#[java(remote = "ThreeMinute")]
Min_3,
#[java(remote = "FiveMinute")]
Min_5,
#[java(remote = "TenMinute")]
Min_10,
#[java(remote = "FifteenMinute")]
Min_15,
#[java(remote = "TwentyMinute")]
Min_20,
#[java(remote = "ThirtyMinute")]
Min_30,
#[java(remote = "FortyFiveMinute")]
Min_45,
#[java(remote = "SixtyMinute")]
Min_60,
#[java(remote = "TwoHour")]
Min_120,
#[java(remote = "ThreeHour")]
Min_180,
#[java(remote = "FourHour")]
Min_240,
Day,
Week,
Month,
Year
#[java(remote = "Quarter")]
Quarter,
Year,
]
);

Expand Down
39 changes: 33 additions & 6 deletions nodejs/src/quote/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -237,31 +237,58 @@ pub enum WarrantType {
#[derive(Debug, JsEnum, Hash, Eq, PartialEq)]
#[js(remote = "longport::quote::Period")]
pub enum Period {
/// One Minute
/// Unknown
#[js(remote = "UnknownPeriod")]
Unknown,
/// One Minute
#[js(remote = "OneMinute")]
Min_1,
/// Two Minute
#[js(remote = "TwoMinute")]
Min_2,
/// Three Minutes
#[js(remote = "ThreeMinute")]
Min_3,
/// Five Minutes
#[js(remote = "FiveMinute")]
Min_5,
/// Ten Minutes
#[js(remote = "TenMinute")]
Min_10,
/// Fifteen Minutes
#[js(remote = "FifteenMinute")]
Min_15,
/// Twenty Minutes
#[js(remote = "TwentyMinute")]
Min_20,
/// Thirty Minutes
#[js(remote = "ThirtyMinute")]
Min_30,
/// Sixty Minutes
/// Forty-Five Minutes
#[js(remote = "FortyFiveMinute")]
Min_45,
/// One Hour
#[js(remote = "SixtyMinute")]
Min_60,
/// One Day
/// Two Hours
#[js(remote = "TwoHour")]
Min_120,
/// Three Hours
#[js(remote = "ThreeHour")]
Min_180,
/// Four Hours
#[js(remote = "FourHour")]
Min_240,
/// Daily
Day,
/// One Week
/// Weekly
Week,
/// One Month
/// Monthly
Month,
/// One Year
/// Quarterly
#[js(remote = "Quarter")]
Quarter,
/// Yearly
Year,
}

Expand Down
Loading

0 comments on commit 66c2499

Please sign in to comment.