中国 我们当自强 EA接龙(集智中国)

 

发帖搞个活动, EA接龙(集智中国),此ea我个人无盈利为目的,只是希望集“国人”之智慧(我们和国外差距太大)做我们自己的东西(当然里面引用的指标也是国外写的 惭愧了)。

代码为原创代码,可以无盈利性质传播,有盈利性质的一旦发现 可能我会追究 (说了有点严肃了!呵呵!)

这个ea是我的第一个ea 代码有臃肿的地方,希望大家不要见笑(但是对有需要的人还是有些帮助的)。

发帖的目的是想改变下论坛的气氛。

希望大家能踊跃发言,从技术指标设计,交易看法,交易模版,等等 只要是涉及交易的东西都可以讨论。当然哪位仁兄有qq群讨论更好,只要建好了群 公布上 愿意加我的的话 加上我就好

但是前提是

群一定不能具有收费性质 和不文明的现象

“ea有风险 使用当谨慎,对于使用此ea造成损失的,本人概不负责”

当然有神经网络的爱好者加我就更好了!

//+------------------------------------------------------------------+
//| 刘松 ok.mq4 |
//| 刘松 |
//| 希望大家珍惜我的劳动成果!转载时务必通知我!
// liusongwh@qq.com qq:569638390 |
//+------------------------------------------------------------------+
#property copyright "刘松"
#property link "liusongwh@qq.com qq:569638390"

extern string 平均周期计算 =" 平均周期计算 ";
extern string 声明 ="希望大家珍惜我的劳动成果!转载时务必通知我!我保留一切追究的权利";

extern double m = 5;
extern double n = 13;
extern int SDL1_period = 100;
extern int SDL1_method = 3;
extern int SDL1_price = 0;

extern string 关键去杂波参数 ="时间周期越小,取值相应变小";
extern double bodong = 8.8;


extern string MA方法 ="0 sma 1 ema 2 smma 3 lwma";

extern double d = 1 ;


extern string 交易设定="交易设定" ;


extern double Lot = 0.1;
extern double slippage =3;
extern int maxlots =1;
extern int SL = 2000;
extern int TP = 2000;
extern int dindan_13_5 =55356;

int jy=1;

double g_point;
int init() {
HideTestIndicators(TRUE);
if (Point == 0.00001) g_point = 0.0001;
else {
if (Point == 0.001) g_point = 0.01;
else g_point = Point;
}
return (0);
}


int start()
{
//----
double d1_main, d1_sign,i,CurrEMA1Up_1,CurrEMA1Dn_1,CurrEMA1Up_2,CurrEMA1Dn_2,buy,sell,Lots,zijin,QQE_1,QQE_2
,d1_main_2, d1_sign_2, d1_main_3, d1_sign_3,d1_main_4, d1_sign_4,d1_main_5, d1_sign_5,d1_main_6, d1_sign_6,
chazhi_2,chazhi_3;

d1_main = iMA (NULL, 0, m, 0,d, 0, 1);
d1_sign = iMA (NULL, 0, n, 0,d, 0, 1);

d1_main_2 = iMA (NULL, 0, m, 0,d, 0, 2);
d1_sign_2 = iMA (NULL, 0, n, 0,d, 0, 2);

d1_main_3 = iMA (NULL, 0, m, 0,d, 0, 3);
d1_sign_3 = iMA (NULL, 0, n, 0,d, 0, 3);

d1_main_4 = iMA (NULL, 0, m, 0,d, 0, 4);
d1_sign_4 = iMA (NULL, 0, n, 0,d, 0, 4);

d1_main_5 = iMA (NULL, 0, m, 0,d, 0, 5);
d1_sign_5 = iMA (NULL, 0, n, 0,d, 0, 5);

d1_main_6 = iMA (NULL, 0, m, 0,d, 0, 6);
d1_sign_6 = iMA (NULL, 0, n, 0,d, 0, 6);



QQE_1 = iCustom(Symbol(), PERIOD_D1, "###QQE_Alert_MTF_v2###",2,0,0,0);
QQE_2 = iCustom(Symbol(), PERIOD_D1, "###QQE_Alert_MTF_v2###",2,0,1,0);

CurrEMA1Up_1 = iCustom(NULL,0,"Slope Direction Line",SDL1_period,SDL1_method,SDL1_price,0,0);
CurrEMA1Up_2 = iCustom(NULL,0,"Slope Direction Line",SDL1_period,SDL1_method,SDL1_price,0,1);


CurrEMA1Dn_1 = iCustom(NULL,0,"Slope Direction Line",SDL1_period,SDL1_method,SDL1_price,1,0);
CurrEMA1Dn_2 = iCustom(NULL,0,"Slope Direction Line",SDL1_period,SDL1_method,SDL1_price,1,1);





buy =CurrEMA1Up_1 - CurrEMA1Up_2;
sell=CurrEMA1Dn_2 - CurrEMA1Dn_1;

chazhi_2= (d1_main+d1_main_2+d1_main_3)-(d1_main_4 + d1_main_5 + d1_main_6) ;


if(chazhi_2>0){

chazhi_3=chazhi_2;
}
else{
if(chazhi_2<0){
chazhi_3= 0 -chazhi_2;
}
}



int total = OrdersTotal();
if (OrdersTotal( ) > 0 ){
for(i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()==dindan_13_5){
if(OrderType()==OP_BUY){
if ((sell>0 && d1_main < d1_sign) || chazhi_3 < bodong*g_point ){
OrderClose(OrderTicket(),OrderLots(),Bid,slippage*g_point,White);
Sleep(5000);
}
}

if(OrderType()==OP_SELL){
if ((buy >0 && d1_main > d1_sign) || chazhi_3 < bodong*g_point ){
OrderClose(OrderTicket(),OrderLots(),Ask,slippage*g_point,White);
Sleep(5000);
}
}
}
}
}


zijin = AccountFreeMargin();

if (zijin<=2500){
Lots =Lot;
}
else{
if (zijin>2500){
Lots = NormalizeDouble((zijin/25000), 1);

}
}

if(d1_main > d1_sign &&d1_main_3 < d1_sign_3 ){
jy=0;
}

if (jy==0 && QQE_1>QQE_2 && buy>0 && total<maxlots && d1_main > d1_sign && chazhi_3 > bodong*g_point){

OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,Ask-SL*g_point,Ask+TP*g_point,"BUY",dindan_13_5,0,Red);
jy=1;

}

if(d1_main < d1_sign &&d1_main_3 > d1_sign_3 ){
jy=0;
}

if (jy==0 && QQE_1<QQE_2 && sell>0 && total<maxlots && d1_main < d1_sign && chazhi_3 > bodong*g_point){
jy=1;

OrderSend(Symbol(),OP_SELL,Lots,Bid,slippage,Bid+SL*g_point,Bid-TP*g_point,"SELL",dindan_13_5,0,Green);

}

//----
return(0);
}
//+------------------------------------------------------------------+

 

支持LZ

 
Гитлер капут
 
alvish 写道 >>
Гитлер капут

Вы слишком высокого мнения о мне

Я не делал каких-либо ограничений по кодексу

贵国的计算机语言极为厉害是众所周知的
就像我们要用你们的平台一样
这个是质的区别

我希望知识无国界
毕竟我们都是人类
中国有句话

本是同根生相煎何太急

我不懂俄文
有错误不要见笑

Ваша страна также является очень мощный компьютер язык
Подобно тому, как мы хотели бы использовать вашу платформу
Это качественное различие между

Я надеюсь, что знания без границ
После всего, мы все человеческие существа
Существует китайская пословица

Это тот же корень братоубийственной

Я не знаю русский язык
Не смеялся ошибками

 
无法载入
 
zealee 写道 >>
无法载入
文件都是全的 不会加载的话 咨询你附近 懂的人就行了
 
keyila 写道 >>

发帖搞个活动, EA接龙(集智中国),此ea我个人无盈利为目的

群一定不能具有收费性质 和不文明的现象

“ea有风险 使用当谨慎,对于使用此ea造成损失的,本人概不负责”

支持,顶你!

 
//+------------------------------------------------------------------+
//|							刘松 ok.mq4 |
//|								刘松 |
//|				  希望大家珍惜我的劳动成果!转载时务必通知我!|
//|                 liusongwh@qq.com qq:569638390 |
//+------------------------------------------------------------------+
#property copyright	"刘松"
#property link		"liusongwh@qq.com qq:569638390"
extern string	声明 = "希望大家珍惜我的劳动成果!转载时务必通知我!我保留一切追究的权利";

// ma()的周期.
extern string	平均周期计算 = " 平均周期计算 ";
extern double	m = 5; 
extern double	n = 13;
extern int	SDL1_period = 100;
extern int	SDL1_method = 3;
extern int	SDL1_price = 0;

// 用点差, 滤掉无效的杂波.
extern string	关键去杂波参数 = "时间周期越小,取值相应变小";
extern double	bodong = 8.8;

// ma()的计算公式.
extern string	MA方法 = "0 sma 1 ema 2 smma 3 lwma";
extern double	d = 1 ;

// 交易定单的信息.
extern string	交易设定 = "交易设定" ;
extern double	Lot = 0.1;
extern double	slippage = 3;
extern int	maxlots = 1;
extern int	SL = 2000;
extern int	TP = 2000;
extern int	dindan_13_5 = 55356;


// 允许交易的标志. 0:允许; 1:禁止.
int  jy=1;

// 当前图表的点值.
double g_point;


int init() {
	// 设置隐藏智能交易使用的指标.
	HideTestIndicators(TRUE);
	// 当前图表的点值
	if (Point == 0.00001)
		g_point = 0.0001;
	else if (Point == 0.001)
		g_point = 0.01;
	else
		g_point = Point;

	return(0);
}

int start() {
	double d1_main, d1_sign, i, CurrEMA1Up_1, CurrEMA1Dn_1, CurrEMA1Up_2, CurrEMA1Dn_2, buy, sell, Lots, zijin, QQE_1, QQE_2, d1_main_2, d1_sign_2,
		d1_main_3, d1_sign_3, d1_main_4, d1_sign_4, d1_main_5, d1_sign_5, d1_main_6, d1_sign_6, chazhi_2, chazhi_3;

	// 最进6根k线的 ma(5, 13)值.
	d1_main = iMA(NULL, 0, m, 0, d, 0, 1);
	d1_sign = iMA(NULL, 0, n, 0, d, 0, 1);
	d1_main_2 = iMA(NULL, 0, m, 0, d, 0, 2);
	d1_sign_2 = iMA(NULL, 0, n, 0, d, 0, 2);
	d1_main_3 = iMA(NULL, 0, m, 0, d, 0, 3);
	d1_sign_3 = iMA(NULL, 0, n, 0, d, 0, 3);
	d1_main_4 = iMA(NULL, 0, m, 0, d, 0, 4);
	d1_sign_4 = iMA(NULL, 0, n, 0, d, 0, 4);
	d1_main_5 = iMA(NULL, 0, m, 0, d, 0, 5);
	d1_sign_5 = iMA(NULL, 0, n, 0, d, 0, 5);
	d1_main_6 = iMA(NULL, 0, m, 0, d, 0, 6);
	d1_sign_6 = iMA(NULL, 0, n, 0, d, 0, 6);


	// 计算指定的客户指标并且退回它的值. 客户指标完成程序名称: "###QQE_Alert_MTF_v2###".
	// "Slope Direction Line"中, 最进1根k线的0#, 1#画线的值. 
	// 函数的参数: (2, 0).
	QQE_1 = iCustom(Symbol(), PERIOD_D1, "###QQE_Alert_MTF_v2###", 2, 0, 0, 0);
	QQE_2 = iCustom(Symbol(), PERIOD_D1, "###QQE_Alert_MTF_v2###", 2, 0, 1, 0);

	// 计算指定的客户指标并且退回它的值. 客户指标完成程序名称: "Slope Direction Line".
	// "Slope Direction Line"中, 最进2根k线的0#画线的值.
	// 函数的参数: (SDL1_period, SDL1_method, SDL1_price).
	CurrEMA1Up_1 = iCustom(NULL, 0, "Slope Direction Line", SDL1_period, SDL1_method, SDL1_price, 0,0);
	CurrEMA1Up_2 = iCustom(NULL, 0, "Slope Direction Line", SDL1_period, SDL1_method, SDL1_price, 0,1);
	// "Slope Direction Line"中, 最进2根k线的1#画线的值.
	CurrEMA1Dn_1 = iCustom(NULL, 0, "Slope Direction Line", SDL1_period, SDL1_method, SDL1_price, 1,0);
	CurrEMA1Dn_2 = iCustom(NULL, 0, "Slope Direction Line", SDL1_period, SDL1_method, SDL1_price, 1,1);



	buy = CurrEMA1Up_1 - CurrEMA1Up_2;
	sell = CurrEMA1Dn_2 - CurrEMA1Dn_1; 

	// ma(5)加速上升/下降.
	chazhi_2 = (d1_main + d1_main_2+d1_main_3) - (d1_main_4 + d1_main_5 + d1_main_6);

                 
	if (chazhi_2 > 0)
		// ma(5)加速下降.
		chazhi_3=chazhi_2;
	else if (chazhi_2 < 0)
		// ma(5)加速下降.
		chazhi_3 = 0 - chazhi_2;


	// 如果未平定单的交易方向与ma(5)的走势不同, 平仓.
	int	total = OrdersTotal();
	if (total > 0 )
		for (i=OrdersTotal()-1; i >= 0; i--) {
			if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false)
				break;
			if (OrderMagicNumber() == dindan_13_5) {
				if (OrderType() == OP_BUY)
					if ((sell > 0 && d1_main < d1_sign) || chazhi_3 < bodong * g_point) {
						OrderClose(OrderTicket(), OrderLots(), Bid, slippage * g_point, White);
						Sleep(5000);
					}

				if (OrderType() == OP_SELL)
					if ((buy > 0 &&  d1_main > d1_sign) || chazhi_3 < bodong * g_point) {
						OrderClose(OrderTicket(), OrderLots(), Ask, slippage * g_point, White);
						Sleep(5000);
					}
			}
		}

	// 根据可用资金的大小, 计算交易数量.
	zijin = AccountFreeMargin();
	if (zijin <= 2500)
		Lots = Lot;
	else if (zijin > 2500)
		Lots = NormalizeDouble((zijin/25000), 1);

	// 如果ma(5, 13)的金叉, jy=0.
	if (d1_main > d1_sign && d1_main_3 < d1_sign_3)
		jy = 0;

	// 开多单.
	if (jy == 0 && QQE_1 > QQE_2 && buy > 0 && total < maxlots && d1_main > d1_sign && chazhi_3 > bodong * g_point) {
		OrderSend(Symbol(), OP_BUY, Lots, Ask, slippage, Ask - SL * g_point, Ask + TP * g_point, "BUY", dindan_13_5, 0, Red);
		jy = 1;
	}

	// 如果ma(5, 13)的死叉, jy=0.
	if (d1_main < d1_sign && d1_main_3 > d1_sign_3 )
		jy = 0;

	// 开空单.
	if (jy == 0 && QQE_1 < QQE_2 && sell > 0 && total < maxlots && d1_main < d1_sign && chazhi_3 > bodong * g_point) {
		jy = 1;
		OrderSend(Symbol(), OP_SELL, Lots, Bid, slippage, Bid + SL * g_point, Bid - TP * g_point, "SELL", dindan_13_5, 0, Green);
	}  

	return(0);
}
//+------------------------------------------------------------------+


看了一下。

由于不熟悉“神经网络”等东西,因此只能从均线的切线斜率、多头/空头、金叉/死叉来分析。


买/卖信号,由曲线ma(5)最近6个值的切线斜率来判断。

如果切线斜率增加,即加速上升,发出买入信号。

如果切线斜率减少,即加速下降,发出卖入信号。


通过这个程序, 学到了新的知识.
iCustom(), 计算指定的客户指标并且退回它的值.
这个函数非常很好, 减少了ea调用其它指标, 需要重复编程的问题.


谢谢!

 

神经网络有必要研究一下

 
神经网络很神经,不太好控制!
 

y2k_connect

谢谢你的注释!这个细节我倒是没有想到!对新人还是很有帮助的!

这个程序并非神经网络书写,就像y2k_connect说的一样是利用ma5的斜率,这个是程序的关键,

实际上单纯的均线 交易系统 指标交易系统 资金曲线是无法达到我们想要的相对完美的状态,这个小的斜率的改动是我大脑在交易、思考中的一个小的细节,

其实为什么我们的 人工交易和系统交易不能够达到我们所期望的值

决定性的因素就是:“人和计算机的沟通障碍,以及人脑的抽象思维没有很好给予计算机合理的执行要素”(如有定义失误的地方还请大家补充,因为只有我们知道问题并定义了才能通过科学的方法解决它)

随着讨论的深入,会慢慢的深入到神经网络这块,希望大家集思广益。

一个人的智慧和生命是有限的,所以一个人发现和解决不了所有的问题。