增加交易策略、交易指标、量化库代码等文件夹
This commit is contained in:
1 parent
ca3b209096
commit
f57150dae8
589 files changed
+854346
-1757
No files matched your search
Binary file not shown.
@@ -0,0 +1 @@
|
||||
eyJ2ZXJzaW9uIjoiMS4wLjAuMiIsImF1dGhvciI6IiIsImF1dGhlbm5hbWUiOiJWSVAxN+W3peS9nOWMuijlpJrmjIfmoIflhbHmjK/miZPliIZf5aSa56m65YiG56a7KSIsImRlc2MiOiIiLCJkYXRhIjoidkkrbXNwbjRMa1VFbnoxUlNoYSthSStsREpXK2JGS2VZcWtzZTdJNmxjMG9kbGFqaHVjbFJOcjBtdWUySlRiZ0tDN2YwY0RSWCtZWEdqZXYweGdPVEo3SHFWR0JMRGNQNmNZUFQ1VitSd3RjWUpxSXllbFhEZEJJNmhYQkpwVDVrN0hEQ3VWNC9MYTVGQjRka2RuY0VBOVV0NXg1YU9IZGdhbll5KzlXc3dCSk52c0FqU1N0ZDlzNUtOeU5XN0sySU13aWM0QVZwbXo0OVpyREdpYU9rVFQ5bkpyNmZ4R3AzYjZpb0ZPbUtsTXNaOUdaT2UzZkd2bW9UK2poZDg2USt6NHkyVVA1ZVVMazYxM1NOWVJINmJZekQzL0wycGNMYi90T2d0QnhRTW14VzdIU3JjWXlrZ1FLTmoxU1gxNDVGYXJtRFp6SzhJRksyak1uaW9KbWRLaTZZM3RGdkQzYzlzV0JsK3BnQWlrNUtFZHUrYVkwbkczWld2OEFWV0Z2TUdtN2t0V0FQSHA5b21LcUxRMFUvM1M4V1FmUlJWMUNIOFB3Y1FvK3NDdUVNNDcveE5XWTZVRXRaY1BOVEY2SW1yeXB1cnM5cm9iekxvWG4zVmxlRXdtd1dKSlV3eWlKbGVvSXE2bWo3VVdtbDJQa0VzTFVFU2JNWmdPV2FyMS9kNTlaYXhUMEZnU1ZGVWJCZjA2Njg3ZWlPTUNHQmc5SE13MnAwcTNvL1JZZGpDTlNQTnZieksyU0VZRWdUWCtwTm1kalN3VVg0b2cxQnRLV2pMWmMydUJFcEpPVnI5TmNnTUM3OTlYRWwzK1VzR2pYN0FqZ0d4VWhDMG5sUlBRZEh2UVhjb2RLRUR3NWZKSTlwRWVBaS9MbVFWMVZzL3M4Zkk3ZjdoUW1OVk81bEVvY2M4Q2RBK21xek9FbGVyVFJ6dVlZT3RQdTEvUzZOSTdmRmJUc1AxUFo0aC85MUlPTzRsUE1WcC9RdHNRRFNDTWtHeHZzVWJpdUg3ZG0weEVCVTQwSnFDc1ZqUUMvOEVRemU5Nmh4OHl3bzBheitTUXpiQ1FNWjJ2MXV4UWtzbEZHSkJ4VG9mN0lpM1M2Ky81VFFzaGZxZDExaktNUkNyZExOc0t4a1U5Wk5QMmUwYmtpRXZqKzVhMkRNdTB0M25wT1kxcUJoUDVKSHJJWi9JTENqWFkrSSt3ektLVmdRbGRMYzBJbVQ2T1BEQW80ejc2RmR6OXNSTGYyQjM2TnZJbHVDQkVXUU1PaEJ5NDk0S0J4TTB1eVUzRGFYRnVGVnNmKzJzL3Z2anViNjk2YllYSkwwUHVXYW9QbWc0Rkh5V3JMMXp4NDRDM2FPVFhnWUpPNEJtYkh4bUJaRXJzRHBjQzh2dkpyZ2lPdGpaWlNVZ3h3TWVmaUVySWgrTm9Ba3Q1WTV6R0JOWlhoVGxLWW05bCtwWXhYRFA4MVVSSnV1eTQ5VjdrelFaM0ZvQy9hSG0rN1h3Q2F2ZUViMC9DWTJkOEdYTnlEVWZlMUdrQ2FETG44WnlNSWc3c2hFSjFtOHpUMFV3eDg5SWs4YVgwLzIxNTN1ZENzR2dIbGxqN2xEV244TnZQQzRvMVpmNlhTNUkrOVM5T1JCM25sd1QyUGdXMHQza0VFbTAxK1VmVko0bDN3UGM4RFdyeXEwMU81NjA0Q1BpeWg1NTJrL09BbXpMUEpDeUQzdUExaFI1czByL1N4ZW8xNVVUTUpjQlQ0QlpXcUJocjk1Rld1N045aEZqMzFVeXQyUDI1aitTQWlzdGFtd3RYelNBa3J5d1lOdVROYm5pLzU4N0YzcEJFdXNIYzZzbzhtajBzYStYZXBDcGxRWk1oMU5wYnRhSHZMZUlVazdtZk5IZmxxSm1NRGFsUUhsMzVmOTlza1V3eG5sZjdSYm1FakNGK2NOMWRaSlBDTXMrUmE5LzNnR09jY053UVJzV1Q0YXM5Y0djalYzYmNoNmtob2tmR3FDTldDUFBIYy9HVlZ6VGZRb01Fb0VHNzJia3owZGFRaVRjR2pSM2NScVZSUUtHZjM1RVgvelFEOHVCcm91MGV5cFNIcCsyT0duZmh6Q2xGSHk5dVR3em83OHJ0K0VoZHVpa3ZndjJKYnpURCtRM3NicmVBcS9aWTdzeVBsVlBjNVBUZU93bnE1VzRrRmRlWEFDcUpzWk9zVW9nYUtuemxFczBxc2hoRUdydkg2THNQYVB2c0dQNy8rU3hYS0IyTGVpbzU4d3dLcVIwK2p2Z2xSM2pqRldMRzN2bGZSNnhPSUw1bThVaUI3YWZDZ1Noam13Y0NOTTZaeWZ5R1F6YWRCMnhjaHc2OG9Gb0FjcDdVN0VFSlQzYjRrbjdic21nZkFrZWwvbXFGVFpSekdYbXNxRVhDUmI3WjF0eFlibWdyWmp3a25ON3V0YUo3Rm14SWxZYkw5SFdzTDlZRXp4WVo3UjZ6TWwyc2l1dmtFMUZFQy91bkV3QVZoMXVFWXJEd25DTER4VjV2YUZnaGg0TVpkbS96RHUxa3FBMkprUTlsNTlPenlYb0pRdVZVdnIrUHpqWW8vd0IxdDhmU3RuVWpsbTh4eXNyQzRGbWRERTZtekxQNmJyUW1Mazkrb1J0L1ZDQlJ4eXVEUFJHcXNUT2plbE1CNGJTRU9rVmdKUGJTRjUrOTVJWFBHSnNXR0FybjJ5dzhXMU8rWWltSHNTbEU1TXQ0RDBsbGtaVnBUYXBzNGRhdndwcERCaGRBMVZTMk01aldnQjk1algvOUI5MHNPMCtUWXcyRW4vZ1o2RmpsOGtqMmtSNENMOHVaQlhWV3orend5VVZjZ0w1QmdkUVNBK0thTmo3aGQ2YXJNNFNWNnROSE81aGc2MCs3WDlMbzBqdDhWdE93L1U5bmlILzNVZzQ3aVU4eFduOUMyeEFOSUl5UWJHK3hSdUs0ZnQyYlRFUUZUalFtb0t4V05BTC93UkRONzNxSEh5OFI1cnFNTS9nNnJVYU5nWm1jM0ZzMXIrRTJtTG96QVBkcFdNa0kwNGg1dVJhdXd3ektRdnZGL21QbWNrOHNpMksrdTFEcm9WWUJEKzJPQ05BTFMweWNNemg3Z0h1Y1ZvaCtGY2FQdjhVZ0c5SjdYcUUwVmVidFo3bStQaC9aN21iN0djNkVSR0IzTHJlTUt1KytSQ25MVkc0bTBNcTU5QzJsYmJleVBKVnlOK0Y2UGdyZGd0ZjhCMDhLc2RaeHViY0dCU2FWVFRnRXpUQ0lLcjJLSnQyWGdxRlU1NzdyNkxwNDN2SVFSRnpVWFpkM1ZBRldic3QvazQzSU1OTjI2SjlLZVhnRmdJQ2Rmek85V1pQbHI5czBqWmQ0RExjcWxBK0Vrb1QrVytKOHdPSVB3K2hPYjQvUHBYWXFIY3dINDJoUzB5STNnOW5TQlpldlVGeENFbGUxT2oyRzliNEpBUVF5aDVyTWI3dCtGVkF5eWZiaVRFNHdQeHVRZ3Jza2RvZXVhU2NWSGtBa1lBcWdqWllOSmtXV3AzMGZxa2N4RDdqT0UwcWtVVFJNNkdqczNxelRjNnVpTjNFZVhhSU9YaGJNRVhBNy83SkpIVTgrczJDRmtUY1VWV1JMZFdzZzhxTWg0elpCOHIxeVpQQ1RqdkdTSTNTdU0xaGpHRVZ0MGs0VVY4UDVWamtpeGd2bllQMVVGU01uSmlUZUY0QnZJTWxSUG9pLzh4VElyM2VmbDBtMVFnZ2d6VkFHYkJSQU1rSk85UTJPM29iT2owdm5Oc1pHL3A4RHhTTER0U2xSVXNEV0lwUElYdnBlTlVMK2JoOHBMdWJHYWdqRGFDNllrbUNsVHYwQnVXbkh1bTNNTzlnRXRpNG5kWUdHQm50cnRkektDM3dVc0JWc28rR29ZRE9WeFk5K2VFNnkzMFczUVkyM1ZHTFpmUmFoN3JmaHEwNW0yYXBHVzdjWmJncW5aWi93RXlHamhlcDZkT0tRSkU0VnNJeDFzZXRTWUV6ZjIyTzVVOXk0cExsblU4M1RhWVNNRWtGUWJHME40UEZHY0pXWk03aVNsYXFqcHN0M2JsMkhPcCtndmhMWkhsR09TcW95cWI3VFJIS3I1Y3NmUlY1cngzUlM2R0h0M2c5WnFOWm0zWitFSERmN0EvakFVcVo0WXl4ZEt3VkpnNyt6VXU2QkUxaTAxcUZLUUs4MlRMK0oxY1lLU2tPSTBtZU0yQlVKRUp2eU1WTkpudU41MERPN29WK3lEQkt2TE5NRkNpT2tkRW5PTHo4V3BXdUxyRVVPUVJ3a1JESEdBRlFEUnNZcTBsTzdCRWFMMWVmUjJRVXFCRGNpY25YUnBlWlRQUGUwVkEyUU1VVFN6eERTN0pyRkVFSGY1Sm5qWlVOalFtTW55Y2Z2cCs4OWkwN0dtODloeThYNDc2VTRwejJGUUFOcDhaRHkyOCthMytyVVNEVU53TkpJN2FOUW5ZSDMwclMzaDhYUnUvZXYrcHk2L3ljN3pqVVFtOU14L0F0RzdFcGRmQml1cWoya2lFV1AvMUFKajNYUlZsSkxJeXRCZEF1cGJhUXRubHZsT3l2ODNOWVR5b2hZMTFBQ003T0U2RitTUnpPUGQzK0JLUkhQQVVyQmhtK3BzNVVrQzgxL0NVaHpLenZMQmFOU2d0RjJBU2ZmTUE5blpFTmtxNys0VDlDTzlnZUNMVGxnNlFlTHpwUnNTRWp3ell6UTJjanQ4N0JHTXlYVldiVVIyYkJHTVlTZGF2d2VrZlkzSU1SZVBmYjc5ZnBuY3NDdDdtditBVXp4bDk0aC83eDNpUkJ6U0Z6ZWVDM2VaYWtHOU5uZ0JLine truncated
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,273 @@
|
||||
//------------------------------------------------------------------------
|
||||
// 简称: VIP17_duo
|
||||
// 名称: VIP17_duo
|
||||
// 类别: 公式应用
|
||||
// 类型: 用户应用
|
||||
// 输出: Void
|
||||
//------------------------------------------------------------------------
|
||||
|
||||
Params
|
||||
|
||||
Numeric Fund(20000); // 投入保证金
|
||||
Vars
|
||||
Numeric Lots(0); // 交易手数
|
||||
Numeric totalScore(5); // 开仓分数阈值,目前都是等权分配,总共6个指标及6分。
|
||||
Numeric rpmPeriod(14); // RPM Period
|
||||
Numeric bboPeriod(16); // BBO Period
|
||||
Numeric macdFastPeriod(12); // MACD Fast Period
|
||||
Numeric macdSlowPeriod(24); // MACD Slow Period
|
||||
Numeric macdSignalPeriod(9); // MACD Signal Period
|
||||
Numeric rsiPeriod(14); // RSI Period
|
||||
Numeric cciPeriod(14); // CCI Period
|
||||
Numeric stochasticKLength(14); // Stochastic %K Length
|
||||
Numeric stochasticKSmoothing(1); // Stochastic %K Smoothing
|
||||
Numeric stochasticDSmoothing(3); // Stochastic %D Smoothing
|
||||
Numeric supertrendPeriod(10); // SUPERTREND Period
|
||||
Numeric supertrendFactor(2); // SUPERTREND Factor
|
||||
Series<Numeric> rpmValue; // RPM Value
|
||||
Series<Numeric> bboValue; // BBO Value
|
||||
Series<Numeric> macdValue; // MACD Value
|
||||
Series<Numeric> macdSignal; // MACD Signal Line
|
||||
Series<Numeric> macdHist; // MACD Histogram
|
||||
Series<Numeric> rsiValue; // RSI Value
|
||||
Series<Numeric> stochasticValue; // Stochastic Value
|
||||
Series<Numeric> cciValue; // CCI Value
|
||||
Series<Numeric> supertrendValue; // SUPERTREND Value
|
||||
Series<Numeric> netChgAvg ;
|
||||
Series<Numeric> totChgAvg ;
|
||||
Series<Numeric> score;
|
||||
Numeric EntryStrength(90); // 趋势强度的进场值
|
||||
Numeric Length(5); // 强弱指标和通道计算的周期值
|
||||
Series<Numeric> CloseChange; // 收盘价变动值
|
||||
Numeric i; // 循环控制变量
|
||||
Numeric UpCloses; // 收盘价上涨累计值
|
||||
Numeric DnCloses; // 收盘价下跌累计值
|
||||
Numeric SumChange; // 收盘价变动累计值
|
||||
Series<Numeric> MarketStrength; // 市场强弱指标
|
||||
Plot plt1; // 用于画图的对象
|
||||
Events
|
||||
OnInit()
|
||||
{
|
||||
Range[0:DataCount-1]
|
||||
{
|
||||
//=========数据源相关设置==============
|
||||
AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权
|
||||
|
||||
AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格
|
||||
|
||||
AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓
|
||||
|
||||
|
||||
//AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算
|
||||
}
|
||||
// 创建第一个副图
|
||||
plt1.figure(0); // 独立副图区域
|
||||
plt1.setOption("Score", "width", Enum_7Pix); // 将指标“MA1”的输出线宽设置为3像素
|
||||
plt1.setOption("Score","color",Blue);
|
||||
}
|
||||
|
||||
OnBar(ArrayRef<Integer> indexs)
|
||||
{
|
||||
// 计算交易手数
|
||||
Lots = Max(1, Round(Fund/(O*ContractUnit*BigPointValue* MarginRatio/rollover), 0));
|
||||
// 计算市场强弱指标
|
||||
CloseChange = Close - Close[1];
|
||||
UpCloses = 0;
|
||||
DnCloses = 0;
|
||||
For i = 0 To Length-1
|
||||
{
|
||||
// 收盘价上涨计入涨幅累计
|
||||
If(CloseChange[i] > 0)
|
||||
UpCloses = UpCloses + CloseChange[i];
|
||||
// 否则计入跌幅累计
|
||||
Else
|
||||
DnCloses = DnCloses + CloseChange[i];
|
||||
}
|
||||
// 计算周期内涨跌
|
||||
SumChange = Summation(CloseChange, Length);
|
||||
// 周期内上涨,计算上涨强度,0-100之间
|
||||
If(SumChange >= 0)
|
||||
{
|
||||
MarketStrength = SumChange / UpCloses * 100;
|
||||
}
|
||||
// 周期内下跌,计算下跌强度,0-100之间
|
||||
Else
|
||||
{
|
||||
MarketStrength = SumChange / Abs(DnCloses) * 100;
|
||||
}
|
||||
|
||||
// 计算 MACD 值
|
||||
Numeric emaFast = XAverage(Close, macdFastPeriod);
|
||||
Numeric emaSlow = XAverage(Close, macdSlowPeriod);
|
||||
macdValue = emaFast - emaSlow;
|
||||
macdSignal = XAverage(macdValue, macdSignalPeriod);
|
||||
macdHist = macdValue - macdSignal;
|
||||
|
||||
// 计算 RSI 值
|
||||
Numeric SF = 1 / rsiPeriod;
|
||||
Numeric change = Close - Close[1];
|
||||
If(CurrentBar <= rsiPeriod - 1)
|
||||
{
|
||||
netChgAvg = (Close - Close[rsiPeriod]) / rsiPeriod;
|
||||
totChgAvg = Average(Abs(Close - Close[1]), rsiPeriod);
|
||||
}
|
||||
Else
|
||||
{
|
||||
netChgAvg = netChgAvg[1] + SF * (change - netChgAvg[1]);
|
||||
totChgAvg = totChgAvg[1] + SF * (Abs(change) - totChgAvg[1]);
|
||||
}
|
||||
If(totChgAvg <> 0)
|
||||
{
|
||||
rsiValue = 50 * (netChgAvg / totChgAvg + 1);
|
||||
}
|
||||
Else
|
||||
{
|
||||
rsiValue = 50;
|
||||
}
|
||||
|
||||
// 计算 Stochastic 值
|
||||
Numeric highestHigh = Highest(High, stochasticKLength);
|
||||
Numeric lowestLow = Lowest(Low, stochasticKLength);
|
||||
Numeric stochasticRaw = (Close - lowestLow) / (highestHigh - lowestLow) * 100;
|
||||
stochasticValue = Average(stochasticRaw, stochasticKSmoothing);
|
||||
|
||||
// 计算 CCI 值
|
||||
Numeric typicalPrice = (High + Low + Close) / 3;
|
||||
Numeric smaTypicalPrice = Average(typicalPrice, cciPeriod);
|
||||
Numeric meanDeviation = Summation(Abs(typicalPrice - smaTypicalPrice), cciPeriod) / cciPeriod;
|
||||
If(meanDeviation <> 0)
|
||||
{
|
||||
cciValue = (typicalPrice - smaTypicalPrice) / (0.015 * meanDeviation);
|
||||
}
|
||||
Else
|
||||
{
|
||||
cciValue = 0;
|
||||
}
|
||||
|
||||
// 计算 SUPERTREND 值
|
||||
Numeric atr = AvgTrueRange(supertrendPeriod);
|
||||
Numeric basicUpperBand = (High + Low) / 2 + supertrendFactor * atr;
|
||||
Numeric basicLowerBand = (High + Low) / 2 - supertrendFactor * atr;
|
||||
Numeric finalUpperBand = IIF(basicUpperBand < supertrendValue[1] || Close[1] > supertrendValue[1], basicUpperBand, supertrendValue[1]);
|
||||
Numeric finalLowerBand = IIF(basicLowerBand > supertrendValue[1] || Close[1] < supertrendValue[1], basicLowerBand, supertrendValue[1]);
|
||||
supertrendValue = IIF(Close > supertrendValue[1], finalLowerBand, finalUpperBand);
|
||||
|
||||
// 设置多头条件
|
||||
Bool macdCondition = macdValue > macdSignal;
|
||||
Bool rsiCondition = rsiValue >50;
|
||||
Bool stochasticCondition = stochasticValue > 50;
|
||||
Bool cciCondition = cciValue >0;
|
||||
Bool supertrendCondition = Close > supertrendValue;
|
||||
Bool Marketbool = MarketStrength >= EntryStrength;
|
||||
|
||||
// 计算得分
|
||||
score = 0;
|
||||
If(macdCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
If(rsiCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
If(stochasticCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
If(cciCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
If(supertrendCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
if(Marketbool)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
|
||||
// 在副图显示得分
|
||||
Commentary("Score: " + Text(score));
|
||||
|
||||
|
||||
plt1.barv("Score",score);
|
||||
// 判断是否达到条件数量
|
||||
If(score == totalScore)
|
||||
{
|
||||
Commentary("All conditions met!");
|
||||
}
|
||||
// 开多条件
|
||||
If(score[1] >= totalScore And MarketPosition == 0 ) //
|
||||
{
|
||||
Buy(Lots, Open);
|
||||
}
|
||||
|
||||
// 平仓条件
|
||||
If(score[1] == 0 And MarketPosition == 1)
|
||||
{
|
||||
Sell(0, Open);
|
||||
}
|
||||
|
||||
// 在副图显示条件成立和不成立
|
||||
|
||||
If(macdCondition)
|
||||
{
|
||||
PlotAuto("MACD_Condition",1,1,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("MACD_Condition",1,1,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
If(rsiCondition)
|
||||
{
|
||||
PlotAuto("RSI_Condition",2,2,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("RSI_Condition",2,2,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
If(stochasticCondition)
|
||||
{
|
||||
PlotAuto("Stochastic_Condition", 3,3,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("Stochastic_Condition", 3,3,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
If(cciCondition)
|
||||
{
|
||||
PlotAuto("CCI_Condition", 4,4,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("CCI_Condition", 4,4,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
If(supertrendCondition)
|
||||
{
|
||||
PlotAuto("Supertrend_Condition", 5,5,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("Supertrend_Condition", 5,5,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
If(Marketbool)
|
||||
{
|
||||
PlotAuto("Marketbool", 6,6,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("Marketbool", 6,6,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
}
|
||||
//------------------------------------------------------------------------
|
||||
// 编译版本 2024/11/27 145803
|
||||
// 版权所有 songshu123
|
||||
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
|
||||
// 每一版本的TradeBlazer公式修改和重写的权利
|
||||
//------------------------------------------------------------------------
|
||||
@@ -0,0 +1,274 @@
|
||||
//------------------------------------------------------------------------
|
||||
// 简称: vip17_kong
|
||||
// 名称: vip17_kong
|
||||
// 类别: 公式应用
|
||||
// 类型: 用户应用
|
||||
// 输出: Void
|
||||
//------------------------------------------------------------------------
|
||||
Params
|
||||
Numeric Fund(20000); // 投入保证金
|
||||
|
||||
Vars
|
||||
Numeric Lots(0); // 交易手数
|
||||
Numeric totalScore(5); // 开仓分数阈值,目前都是等权分配,总共6个指标及6分。
|
||||
Numeric rpmPeriod(14); // RPM Period
|
||||
Numeric bboPeriod(16); // BBO Period
|
||||
Numeric macdFastPeriod(12); // MACD Fast Period
|
||||
Numeric macdSlowPeriod(24); // MACD Slow Period
|
||||
Numeric macdSignalPeriod(9); // MACD Signal Period
|
||||
Numeric rsiPeriod(14); // RSI Period
|
||||
Numeric cciPeriod(14); // CCI Period
|
||||
Numeric stochasticKLength(14); // Stochastic %K Length
|
||||
Numeric stochasticKSmoothing(1); // Stochastic %K Smoothing
|
||||
Numeric stochasticDSmoothing(3); // Stochastic %D Smoothing
|
||||
Numeric supertrendPeriod(10); // SUPERTREND Period
|
||||
Numeric supertrendFactor(2); // SUPERTREND Factor
|
||||
Series<Numeric> rpmValue; // RPM Value
|
||||
Series<Numeric> bboValue; // BBO Value
|
||||
Series<Numeric> macdValue; // MACD Value
|
||||
Series<Numeric> macdSignal; // MACD Signal Line
|
||||
Series<Numeric> macdHist; // MACD Histogram
|
||||
Series<Numeric> rsiValue; // RSI Value
|
||||
Series<Numeric> stochasticValue; // Stochastic Value
|
||||
Series<Numeric> cciValue; // CCI Value
|
||||
Series<Numeric> supertrendValue; // SUPERTREND Value
|
||||
Series<Numeric> netChgAvg ;
|
||||
Series<Numeric> totChgAvg ;
|
||||
Series<Numeric> score;
|
||||
Numeric EntryStrength(90); // 趋势强度的进场值
|
||||
Numeric Length(5); // 强弱指标和通道计算的周期值
|
||||
Series<Numeric> CloseChange; // 收盘价变动值
|
||||
Numeric i; // 循环控制变量
|
||||
Numeric UpCloses; // 收盘价上涨累计值
|
||||
Numeric DnCloses; // 收盘价下跌累计值
|
||||
Numeric SumChange; // 收盘价变动累计值
|
||||
Series<Numeric> MarketStrength; // 市场强弱指标
|
||||
Plot plt1; // 用于画图的对象
|
||||
Events
|
||||
OnInit()
|
||||
{
|
||||
Range[0:DataCount-1]
|
||||
{
|
||||
//=========数据源相关设置==============
|
||||
AddDataFlag(Enum_Data_RolloverBackWard()); //设置后复权
|
||||
|
||||
AddDataFlag(Enum_Data_RolloverRealPrice()); //设置映射真实价格
|
||||
|
||||
AddDataFlag(Enum_Data_AutoSwapPosition()); //设置自动换仓
|
||||
|
||||
|
||||
//AddDataFlag(Enum_Data_IgnoreSwapSignalCalc()); //设置忽略换仓信号计算
|
||||
}
|
||||
// 创建第一个副图
|
||||
plt1.figure(0); // 独立副图区域
|
||||
plt1.setOption("Score", "width", Enum_7Pix); // 将指标“MA1”的输出线宽设置为3像素
|
||||
plt1.setOption("Score","color",Blue);
|
||||
}
|
||||
|
||||
OnBar(ArrayRef<Integer> indexs)
|
||||
{
|
||||
// 计算交易手数
|
||||
Lots = Max(1, Round(Fund/(O*ContractUnit*BigPointValue* MarginRatio/rollover), 0));
|
||||
// 计算市场强弱指标
|
||||
CloseChange = Close - Close[1];
|
||||
UpCloses = 0;
|
||||
DnCloses = 0;
|
||||
For i = 0 To Length-1
|
||||
{
|
||||
// 收盘价上涨计入涨幅累计
|
||||
If(CloseChange[i] > 0)
|
||||
UpCloses = UpCloses + CloseChange[i];
|
||||
// 否则计入跌幅累计
|
||||
Else
|
||||
DnCloses = DnCloses + CloseChange[i];
|
||||
}
|
||||
// 计算周期内涨跌
|
||||
SumChange = Summation(CloseChange, Length);
|
||||
// 周期内上涨,计算上涨强度,0-100之间
|
||||
If(SumChange >= 0)
|
||||
{
|
||||
MarketStrength = SumChange / UpCloses * 100;
|
||||
}
|
||||
// 周期内下跌,计算下跌强度,0-100之间
|
||||
Else
|
||||
{
|
||||
MarketStrength = SumChange / Abs(DnCloses) * 100;
|
||||
}
|
||||
|
||||
// 计算 MACD 值
|
||||
Numeric emaFast = XAverage(Close, macdFastPeriod);
|
||||
Numeric emaSlow = XAverage(Close, macdSlowPeriod);
|
||||
macdValue = emaFast - emaSlow;
|
||||
macdSignal = XAverage(macdValue, macdSignalPeriod);
|
||||
macdHist = macdValue - macdSignal;
|
||||
|
||||
// 计算 RSI 值
|
||||
Numeric SF = 1 / rsiPeriod;
|
||||
Numeric change = Close - Close[1];
|
||||
If(CurrentBar <= rsiPeriod - 1)
|
||||
{
|
||||
netChgAvg = (Close - Close[rsiPeriod]) / rsiPeriod;
|
||||
totChgAvg = Average(Abs(Close - Close[1]), rsiPeriod);
|
||||
}
|
||||
Else
|
||||
{
|
||||
netChgAvg = netChgAvg[1] + SF * (change - netChgAvg[1]);
|
||||
totChgAvg = totChgAvg[1] + SF * (Abs(change) - totChgAvg[1]);
|
||||
}
|
||||
If(totChgAvg <> 0)
|
||||
{
|
||||
rsiValue = 50 * (netChgAvg / totChgAvg + 1);
|
||||
}
|
||||
Else
|
||||
{
|
||||
rsiValue = 50;
|
||||
}
|
||||
|
||||
// 计算 Stochastic 值
|
||||
Numeric highestHigh = Highest(High, stochasticKLength);
|
||||
Numeric lowestLow = Lowest(Low, stochasticKLength);
|
||||
Numeric stochasticRaw = (Close - lowestLow) / (highestHigh - lowestLow) * 100;
|
||||
stochasticValue = Average(stochasticRaw, stochasticKSmoothing);
|
||||
|
||||
// 计算 CCI 值
|
||||
Numeric typicalPrice = (High + Low + Close) / 3;
|
||||
Numeric smaTypicalPrice = Average(typicalPrice, cciPeriod);
|
||||
Numeric meanDeviation = Summation(Abs(typicalPrice - smaTypicalPrice), cciPeriod) / cciPeriod;
|
||||
If(meanDeviation <> 0)
|
||||
{
|
||||
cciValue = (typicalPrice - smaTypicalPrice) / (0.015 * meanDeviation);
|
||||
}
|
||||
Else
|
||||
{
|
||||
cciValue = 0;
|
||||
}
|
||||
|
||||
// 计算 SUPERTREND 值
|
||||
Numeric atr = AvgTrueRange(supertrendPeriod);
|
||||
Numeric basicUpperBand = (High + Low) / 2 + supertrendFactor * atr;
|
||||
Numeric basicLowerBand = (High + Low) / 2 - supertrendFactor * atr;
|
||||
Numeric finalUpperBand = IIF(basicUpperBand < supertrendValue[1] || Close[1] > supertrendValue[1], basicUpperBand, supertrendValue[1]);
|
||||
Numeric finalLowerBand = IIF(basicLowerBand > supertrendValue[1] || Close[1] < supertrendValue[1], basicLowerBand, supertrendValue[1]);
|
||||
supertrendValue = IIF(Close > supertrendValue[1], finalLowerBand, finalUpperBand);
|
||||
|
||||
// 设置空头条件
|
||||
Bool macdCondition = macdValue < macdSignal;
|
||||
Bool rsiCondition = rsiValue <50;
|
||||
Bool stochasticCondition = stochasticValue < 50;
|
||||
Bool cciCondition = cciValue <0;
|
||||
Bool supertrendCondition = Close < supertrendValue;
|
||||
Bool Marketbool = MarketStrength >= EntryStrength;
|
||||
|
||||
// 计算得分
|
||||
score = 0;
|
||||
If(macdCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
If(rsiCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
If(stochasticCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
If(cciCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
If(supertrendCondition)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
if(Marketbool)
|
||||
{
|
||||
score = score + 1;
|
||||
}
|
||||
|
||||
// 在副图显示得分
|
||||
Commentary("Score: " + Text(score));
|
||||
|
||||
|
||||
plt1.barv("Score",score);
|
||||
// 判断是否达到条件数量
|
||||
If(score == totalScore)
|
||||
{
|
||||
Commentary("All conditions met!");
|
||||
}
|
||||
// 开空条件
|
||||
If(score[1] >= totalScore And MarketPosition == 0 ) //
|
||||
{
|
||||
SellShort(Lots, Open);
|
||||
}
|
||||
|
||||
// 平仓条件
|
||||
If(score[1] == 0 And MarketPosition == -1)
|
||||
{
|
||||
BuyToCover(0, Open);
|
||||
}
|
||||
|
||||
// 在副图显示条件成立和不成立
|
||||
|
||||
If(macdCondition)
|
||||
{
|
||||
PlotAuto("MACD_Condition",1,1,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("MACD_Condition",1,1,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
If(rsiCondition)
|
||||
{
|
||||
PlotAuto("RSI_Condition",2,2,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("RSI_Condition",2,2,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
If(stochasticCondition)
|
||||
{
|
||||
PlotAuto("Stochastic_Condition", 3,3,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("Stochastic_Condition", 3,3,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
If(cciCondition)
|
||||
{
|
||||
PlotAuto("CCI_Condition", 4,4,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("CCI_Condition", 4,4,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
If(supertrendCondition)
|
||||
{
|
||||
PlotAuto("Supertrend_Condition", 5,5,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("Supertrend_Condition", 5,5,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
If(Marketbool)
|
||||
{
|
||||
PlotAuto("Marketbool", 6,6,Green,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
Else
|
||||
{
|
||||
PlotAuto("Marketbool", 6,6,Red,Enum_Line,Enum_Solid,Enum_7Pix);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// 编译版本 2024/11/27 150615
|
||||
// 版权所有 songshu123
|
||||
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
|
||||
// 每一版本的TradeBlazer公式修改和重写的权利
|
||||
//------------------------------------------------------------------------
|
||||
Binary file not shown.
Reference in new issue
Block a user