Ema Cross! - 页 17

 
Audio:
VIVA codersguru !!!!---嗨,hellkas,你在哪里,很高兴看到这些,我的朋友。

嗨,音频我的朋友...

这个EA真是太棒了...非常感谢SuperCodersGuru...

我有个简单的问题...

我一直在测试这个EA v2,我注意到一些奇怪的事情......

我在不同的平台上有4个不同的设置,但都在同一个经纪商(NorthFinance),昨天我只开了一个头寸,我认为这很正常,但今天同样的头寸仍然开着,我觉得很奇怪。我重新启动平台,新的头寸就开始了。

为什么EA在我重启平台之前会停止交易?

谢谢

附加的文件:
emacross.htm  22 kb
 

一些评论

仍然在使用这个EA。我注意到,大多数的失败者都是逆势交易。有没有可能在这个EA中做一个选项,只做顺应趋势的交易?

继续保持良好的工作,Guru!

 

逆转选择!

Hendrick:
我还在使用这个EA。我注意到,大多数的失败者都是逆势交易。有没有可能在这个EA中做一个选项,只做顺应趋势的交易? 继续保持良好的工作,大师!

亨德利克。

这个选项已经包含了!

如果你想跟随趋势,只需将反转 选项设置为!

 

哎呀!

codersguru:
亨德里克。

这个选项已经包含了!

如果你想跟随趋势,只需将反转 选项设置为false!

哎呀。对不起,古鲁。

 
hellkas:
你好,我的朋友...

这款EA真是太棒了...非常感谢SuperCodersGuru...

我有一个简单的问题...

我一直在测试这个EA v2,我注意到一些奇怪的事情......

我在不同的平台上有4个不同的设置,但都在同一个经纪商(NorthFinance),昨天我只开了一个头寸,我认为这很正常,但今天同样的头寸仍然开着,我觉得很奇怪。我重新启动平台,新的头寸就开始了。

为什么EA在我重启平台之前会停止交易?

谢谢

你好,很久没有见到你了,你在哪里?我想codersguru可以用更好的方式回答。

 

嗨,CodersGuru。

我对您的EA有一个想法。我想通过删除TP、TS和SL来使其尽可能简单!是的,我知道,这很疯狂。是的,我知道,很疯狂!

然后简单地让它在交叉点之间交易MA值。

1,在一个向上的交叉点,等待一个条形并做多。

2,在下一个下降交叉点时,关闭该交易。

3,再等一个柱子,如果MA's仍然向下,就做空。

唯一需要设定的是手数。

在未平仓的交易中,一旦MA's交叉回到另一个方向,就立即关闭交易。

这必须用在像电缆这样的小点差的趋势性货币对上,因为如果市场开始波动,大点差的货币对会拿走利润。

这听起来可能很疯狂,但你将纯粹依靠价格行为来进行交易,完全没有外部影响。实际上,市场将自己进行交易。

玩弄时间框架和MA设置会很有趣。

到目前为止,我已经加入了关闭TP、SL和TS的选项。

//+------------------------------------------------------------------+

//| EMA_CROSS.mq4|

//| Coders Guru | |

//|https://www.mql5.com/en/forum

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| TODO: 添加资金管理程序 | |

//+------------------------------------------------------------------+

#属性版权 "Coders Guru"

#property link "https://www.forex-tsd.com"

//---- 输入参数

extern double TakeProfit=300;

extern bool UseTakeProfit = false;

extern double Lots=1;

extern double TrailingStop=15;

extern bool UseTrailingStop = false;

外置双倍StopLoss=100。

外置 bool UseStopLoss = false;

extern int ShortEma = 10;

extern int LongEma = 80;

//+------------------------------------------------------------------+

//|专家初始化函数 |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//|专家的去初始化功能|

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

bool isNewSymbol(string current_symbol)

{

//循环所有打开的订单并比较符号

int total = OrdersTotal();

for(int cnt = 0 ; cnt < total ; cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。

Print( "OrderSymbol = " + OrderSymbol() + ": Symbol = " + current_symbol);

string selected_symbol = OrderSymbol();

如果(current_symbol == selected_symbol)

返回(False)。

}

返回(True)。

}

int Crossed (double line1 , double line2)

{

static int last_direction = 0;

static int current_direction = 0;

//在第一次加载时不工作,要等第一次交叉时才工作!

static bool first_time = true;

if(first_time == true)

{

first_time = false。

返回(0)。

}

if(line1>line2)current_direction = 1; //向上

if(line1<line2)current_direction = 2; //向下

如果(current_direction != last_direction) //改变了

{

last_direction = current_direction;

return (last_direction);

}

否则

{

返回 (0); //没有改变

}

}

//+------------------------------------------------------------------+

//|专家启动功能|

//+------------------------------------------------------------------+

int start()

{

//----

int cnt, ticket, total;

双重SEma, LEma。

如果(Bars<100)

{

Print("小于100的条数")。

return(0);

}

如果(TakeProfit<10)

{

Print("TakeProfit小于10")。

return(0); // 检查TakeProfit

}

SEma = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0)。

LEma = iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,0)。

static int isCrossed = 0;

isCrossed = Crossed (LEma,SEma);

total = OrdersTotal();

if(total < 1 || isNewSymbol(Symbol()))

{

如果(isCrossed == 1 )

{

如果(UseStopLoss)

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point, "EMA_CROSS",12345,0,Green) 。

否则

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "EMA_CROSS",12345,0,Green) 。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY order opened : ",OrderOpenPrice());

}

否则 Print("打开BUY订单错误。",GetLastError())。

return(0);

}

如果(isCrossed == 2)

{

如果(UseStopLoss)

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point, "EMA_CROSS",12345,0,Red);

否则

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "EMA_CROSS",12345,0,Red) 。

如果(ticket>0)

{

如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("Sell order opened : ",OrderOpenPrice());

}

否则 Print("打开卖出订单错误。",GetLastError())。

return(0);

}

return(0);

}

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。

//OrderPrint()。

如果(OrderType()<=OP_SELL && OrderSymbol()==Symbol())

{

如果(OrderType()==OP_BUY) // 多头头寸被打开

{

//应该平仓吗?

/* 移除--只平仓追踪止损

如果(isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); //关闭头寸

return(0); // 退出

}

*/

// 检查拖曳止损

如果(TrailingStop>0)

{

如果(Bid-OrderOpenPrice()>Point*TrailingStop)

{

如果(OrderStopLoss()<Bid-Point*TrailingStop))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green) 。

返回(0)。

}

}

}

}

否则 // 转入空头头寸

{

//应该平仓吗?

/* 移除--只关闭Trailling Stop。

如果(isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); //平仓

return(0); // 退出

}

*/

// 检查拖曳止损

如果(TrailingStop>0)

{

如果((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

如果((OrderStopLoss()>(Ask+Point*TrailingStop))|| (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(), Ask+Point*TrailingStop,OrderTakeProfit(),0,Red)。

返回(0)。

}

}

}

}

}

}

return(0);

}

//+----------------------------------------------------------------+

我唯一不确定的是你现在如何关闭交易。我说你禁用了TS,对吗?

我希望你不要介意我修改你的代码。

谢谢。

 

我认为这个想法很好,即事后开仓,并在下一个十字星时平仓(也许使用追踪止损会有助于锁定利润)。"顺势 "比 "逆势 "更有意义,尤其是当市场在主要货币对上再次开始走势时。 在平淡/横盘的市场中,反趋势交易者是有意义的,但风险更大,你可能需要等待3个月(日线图)才能使你的交易转为正数,而不是立即使用顺趋势交易者。

我很喜欢MA_Cross在+20左右的时候将止损转移到利润中的方式,所以一旦交易盈利,你就不必再有保证金风险。

格雷厄姆

 

嗨,格雷厄姆。

是的,这个想法是在观察一些更有趋势的货币对时产生的。在大多数的移动中,总是会出现点子,长线或短线都无所谓。

我只是想利用这个优势。

通过简单地将这一行的状态从 "假 "改为 "真",就可以选择使用追踪止损。

"外部 bool UseTrailingStop = false;"

但是,由于我是一个绝对的编码新手(感谢CodersGuru ),我不确定程序目前是如何关闭交易的。它是在寻找一个止损点吗?我还在研究关闭订单。

它肯定要顺着趋势交易,我认为反趋势会让你很快被淘汰。

我还在考虑将其用于较小的TF,如5、15、30分钟甚至1小时,通过使MA值变小来捕捉较小的趋势。

 

错误!

hellkas:
嗨,音频我的朋友...

这款EA真是太棒了...非常感谢SuperCodersGuru...

我有一个简单的问题...

我一直在测试这个EA v2,我注意到一些奇怪的事情......

我在不同的平台上有4个不同的设置,但都在同一个经纪商(NorthFinance),昨天我只开了一个头寸,我认为这很正常,但今天同样的头寸仍然开着,我觉得很奇怪。我重新启动平台,新的头寸就开始了。

为什么EA在我重启平台之前会停止交易?

谢谢

hellkas,

谢谢你的贡献!

我必须要检查一下 星期一。