⑴ 【求助】编译测试同花顺指标。。
部分函数不适用TDX找替代的即可。
AA:DAY!=REF(DAY,1);
QA:=BARSLAST(AA);
总:SUM(AMOUNT/10000,QA+1),NODRAW;
QC:=IF(ABS(AMOUNT/10000>=100) AND C>=REF(C,1),AMOUNT/10000,0);
QG:=IF(ABS(AMOUNT/10000>=100) AND C<REF(C,1),AMOUNT/10000,0);
QD:=IF(ABS(AMOUNT/10000<50) AND C>=REF(C,1),AMOUNT/10000,0);
QH:=IF(ABS(AMOUNT/10000<50) AND C<REF(C,1),AMOUNT/10000,0);
ZD:=IF(ABS(AMOUNT/10000<100 AND AMOUNT/10000>50) AND C>=REF(C,1),AMOUNT/10000,0);
ZH:=IF(ABS(AMOUNT/10000<100 AND AMOUNT/10000>50) AND C<REF(C,1),AMOUNT/10000,0);
大:SUM(QC-QG,QA+1),COLORRED;
中:SUM(ZD-ZH,QA+1),COLORYELLOW;
小:SUM(QD-QH,QA+1),COLORGREEN;
大小比:(大/小-1)*100,COLORWHITE,NODRAW;
DRAWTEXT(ISLASTBAR,大,'大'),COLORRED;
DRAWTEXT(ISLASTBAR,中,'中'),COLORYELLOW;
DRAWTEXT(ISLASTBAR,小,'小'),COLORGREEN;
⑵ 自定义的通达信公式怎么一下子全部编译未通过但它系统的公式又没问题…
公式数抄据放在什么地方?在什么地方有备份?
在软件安装目录下\T0002\下的“PriGS.dat”、“PriCS.dat”、“PriText.dat”三个文件即是保存所有公式数据的文件,系统每天会在:
软件安装目录下\T0002\GS_BAK的目录下做备份,名字为“yyyymmdd_PriGS.dat”、“yyyymmdd_PriCS.dat”、“yyyymmdd_PriText.dat”
如何解决??
gs_bak目录中的三个没出问题前的文件拷贝到 T0002目录中,并改回原来的名字即可。
⑶ 交易师指标显示未编译是什么意思
正道财经直播室建议,做交易做的是概率,那么大家学的时候就学某一个指标就好,学透,找最符合此技术的信号做单,然后以点盖面,再学其他。
⑷ 技术指标中有IMPORT语句,编译不通过提示错误是怎么回事
关于跨周期函数的应用 请参考该函数说明 语法检测不通过,说明指标调用存在问题:
#IMPORT [CODE, PERIOD, FORMULA] AS VAR。引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。
注:
1、CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR 定义变量名;
2、只能引用如下常规周期:MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 DAY WEEK MONTH ;
3、只能短周期引用长周期;
4、跨周期的使用暂时不建议使用以下形式的引用:(1)3分钟周期引用5分钟周期;(2)3分钟周期引用10分钟周期;(3)10分钟引用15分钟周期;(4)周线引用月线;
5、被引用的指标中不能存在引用;
6、如果不写文华码,默认引用当前合约;
7、FORMULA引用指标名只能为字母或数字命名的指标;
8、定义变量名不能与函数名重复;
9、最多可以跨周期引用两个周期的数据;
10、使用该函数编写末尾不能编写分号。
例1:
CC:REF(C,1);//定义一个周期前的收盘价
保存指标,命名为AA
#IMPORT[,DAY,AA] AS VAR
CC:VAR.CC;//跨周期引用昨天的收盘价
例2:
CC:C;//定义一个周期前的收盘价
保存指标,命名为CC
#IMPORT[,DAY,CC] AS VAR
CC:=VAR.CC;//跨周期引用日周期上的收盘价
CC1:REF(CC,1);
//要引用的数据需要写在被引用的指标里,不能写在IMPORT模型中。
//例1中的CC指标引用日周期上前一个周期的收盘价,需要在被引用的指标中取一个周期前
的收盘价,例2中写在IMPORT模型中则表示取小周期上一个周期前的值
例3:
CC:=REF(C,1);//定义一个周期前的收盘价
保存指标,命名为AA
#IMPORT[,MIN30,AA]AS S
CC1:=S.CC;//跨周期引用30分钟周期的一个周期前的收盘价
#IMPORT[,MIN15,AA]AS R
CC2:=R.CC;//跨周期引用15分钟周期的一个周期前的收盘价
⑸ 求大神在通达信编译一个指标公式
FI:=(C-REF(C,1))*V ;
⑹ 股票公式KDJ编译未通过怎 么解决
哪来的编译!
在通达信软件中设置即可:
选股平台->技术指标回->反趋向指标KDJ栏,点击下方组合条件,右答边设好参数,K.D.J分别设置添加,然后点击组合选股即可。
K线:RSV的M1日移动平均
D线:K值的M2日移动平均
J线:3×D-2×K
参数:N、M1、M2 天数,一般取9、
用法:
1.D>80,超买;D<20,超卖;J>100%超卖;J<10%超卖。
2.线K向上突破线D,买进信号;线K向下跌破线D,卖出信号。
3.线K与线D的交叉发生在70以上,30以下,才有效。
4.KD指标不适于发行量小,交易不活跃的股票。
5.KD指标对大盘和热门大盘股有极高准确性。
PS:如果你说的编译是计算机语言术语,那就不是行情指标问题,而是计算机编程技术问题了,自己好好查查程序哪里有问题再反复调试解决吧。
⑺ 新版编译器OnCalculate我这样编写,理解,对吗
OnCalculate
OnCalculate()函数只在自定义指标中调用,通过Calculate计算指标值是必须的。通常在接到指标计算的交易品种新订单号时发生。这个指标不需要附在交易品种的价格图表上。
OnCalculate() 函数有个返回值int。有两个可能定义。一个指标中不可以有两个函数版本。
一种是用于单数据缓冲中计算的指标。例如,自定义移动平均数指标。
int OnCalculate (const int rates_total, // 价格[] 数组的大小
const int prev_calculated, // 前一次调用处理的柱
const int begin, // 有效数据起始位置
const double& price[] // 计算的数组
);
价格[]数组中,可以传送时间序列和计算的一些指标缓冲。ArrayGetAsSeries()函数确定价格[] 数组索引方向。为了不依赖默认值,需要无条件的调用ArraySetAsSeries()函数用于工作的数组。
价格[]数组中,在“参数”标签启动指标时,选择适当的时间序列或者指标。所以,需要在“应用于”字段的下拉列表中指定必要的项目。
Selecting timeseries to calculate an indicator
从其他mql5程序中接收自定义指标值,要使用iCustom()函数,返回嵌入指标处理程序。可以指定适当的价格[]数组或者另一个指标处理程序。这个参数在自定义指标输入变量列表中最后传送。
示例:
void OnStart()
{
//---
string terminal_path=TerminalInfoString(STATUS_TERMINAL_PATH);
int handle_customMA=iCustom(Symbol(),PERIOD_CURRENT, "Custom Moving Average",13,0, MODE_EMA,PRICE_TYPICAL);
if(handle_customMA>0)
Print("handle_customMA = ",handle_customMA);
else
Print("Cannot open or not EX5 file '"+terminal_path+"\\MQL5\\Indicators\\"+"Custom Moving Average.ex5'");
}
这个示例中,通过的最后参数是PRICE_TYPICAL值(从ENUM_APPLIED_PRICE计数开始),指出自定义指标可以用获得的典型价格建立(高价+低价+平仓)/3。如果没有确定这个参数,指标基于PRICE_CLOSE 值建立,例如每栏平仓价。
另一个示例显示依照指定价格[]数组的最后一个参数传送指标处理程序,由函数iCustom()所描述。
另一种形式意在所有其他指标,计算更多的时间序列。
int OnCalculate (const int rates_total, // 输入时间序列大小
const int prev_calculated, // 前一次调用处理的柱
const datetime& time[], // 时间
const double& open[], // 开盘价
const double& high[], // 最高价
const double& low[], // 最低价
const double& close[], // 收盘价
const long& tick_volume[], // 订单交易量
const long& volume[], // 真实交易量
const int& spread[] // 点差
);
开盘价[],最高价[],最低价[]和收盘价[]参数由当前时间表的开盘价,最高和最低价和收盘价数组组成。时间参数[]包括开盘时间值数组,扩展参数[]有一个数组包括扩展历史记录(如果为交易安全提供扩展)。volume[] 和tick_volume[] 参数分别包括交易和交易量历史记录。
确定时间[]索引方向, 开盘价[], 最高价[], 最低价[], 收盘价[], 交易量[], 交易量[] 和 扩展[],需要调用ArrayGetAsSeries()函数。若不想依赖默认值,需要无条件的调用函数ArraySetAsSeries()用于工作的数组。
首先rates_total 参数包括栏的数量,可用来计算指标,与图表中现存的栏数一致。
需要注意OnCalculate() 返回值和第二输入参数prev_calculated的连接。调用函数时,prev_calculated 参数包括上次调用时OnCalculate() 返回值。这就允许用经济算法计算自定义指标,避免重复计算。
返回rates_total参数值足够了,包括当前调用函数的栏数。如果自从上次调用函数OnCalculate(),价格数据更改了(下载深度历史记录或者填满历史空白期),输入参数prev_calculated 值由终端机设置为零。
注:如果OnCalculate返回零,那么指标值不能显示在客户端的数据窗口。
为更好的理解,启动附加以下代码的指标很有用。
指标示例:
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//---- 图的线
#property indicator_label1 "Line"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrDarkBlue
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- 指标缓冲区
double LineBuffer[];
//+------------------------------------------------------------------+
//| 自定义指标初始化函数 |
//+------------------------------------------------------------------+
int OnInit()
{
//--- 指标缓冲区绘图
SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 自定义指标重复函数 |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& time[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
//--- 获得当前交易品种和图表周期的有效柱数
int bars=Bars(Symbol(),0);
Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated);
Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]);
//--- 为下次调用返回prev_calculated值
return(rates_total);
}
//+------------------------------------------------------------------+
⑻ 通达信更新后指标显示 编译未通过,哪位大神能帮忙改下
公式提示错误你需要提供所有公式源码,仅提供错误信息是无法修改的。
⑼ 编译一个通达信指标,求最近十日内的平均振幅!
振幅:=(h-l)/REF(C,1)*100;
平均振幅:MA(振幅,10);
⑽ 怎么给mt4指标加时间限制代码可以加密更好,防反编译。
本人提供来最新 MT4 指标自 EA 加密服务有好的EA或是指标,想出售又怕被破解,现在有最新加密方法 1关键代码写入DLL文件,就算ex4-to-mq4反编译,也得不到核心代码。不能反推出原理和策略 2DLL文件提供网络验证功能,可以实现网络远程授权,终止授权,动态调整授权日期。 3 根据机器码绑定授权电脑,换电脑EA或指标自动识别终止使用权通过上述功能成功加密多个EA和指标,最大限度保护了作者的知识产权。本人为专业程序员,提供的加密服务可以提供加密过的指标进行演示远程授权远程终止使用远程修改使用日期你的EA或指标,经过本人加密可以极大的提高保密性和可出售性,甚至可以给客户提供试用版,试用时间可自己设定。交易方式,互相约定,诚信为本。有需要加密服务的朋友