如何编码? - 页 343

 
techmac:
隐藏的止损和止盈是有风险的。如果EA不工作,没有什么可以关闭你的EA--EA可以从经纪商方面被停止。

亲爱的techmac。

你能不能多解释一下,为什么EA不能工作,如果EA在一般情况下或在VPS...........(没有什么可以关闭你的EA)应用前不会被检查和测试几十次,我不明白你的意思是什么?....(EA可以从经纪商方面停止)....,当EA在经纪商允许/同意的情况下应用时,经纪商还有什么原因可以停止它。如果你是说由于一些隐藏的参数 原因?

 
mladen:
是的。当订单的止损字段被设置为某个值时(然后显示该行),当经纪人有责任在期望的价格执行止损时(与 "软""隐藏 "止损不同,当是你的EA必须关闭订单时)。

亲爱的MLADEN,

谢谢你,你真好,确切地了解,这在现实中是如何运作的。

是否有任何方法和可能性,我们的EA试图在某个点/水平上执行TP/SL,而经纪人方面的一些隐藏活动(在处理客户交易活动的经纪商软件中编码,允许或拒绝进一步处理)阻止它这样做?

lol,所以在这种情况下,谁是更可靠的,有效的和负责任的EA或经纪人。....,现在经纪人的声誉......软商品和非人类感情设备的更真诚和忠诚。

问候

 
mntiwana:
亲爱的MLADEN。

谢谢你,太客气了,准确地理解了实际工作中的情况。

lol,所以在这种情况下,谁是更可靠的,有效的和负责任的EA和经纪人。....,对于现在的经纪人的声誉。软商品和非人类情感设备的更真诚和忠诚。

问候

事情是这样的。

在SNB的案例中,如果人们使用 "隐藏 "的 "软 "止损,他们没有任何理由得到任何退款(因为他们没有填写止损栏,经纪人根本没有义务对这些订单做任何事情)。而那些填写了该字段的人,也有一些投诉的理由--不是说他们得到了所有的回报,但至少他们可以做一些事情。

 
mladen:
事情是这样的:在SNB的情况下,如果人们使用 "隐藏的""软 "止损,他们没有任何理由得到任何退款(因为他们没有填写止损栏,经纪人根本没有义务对这些订单做什么)。而那些确实填写了该字段的人,也有一些投诉的理由--不是说他们得到了所有的回报,但至少他们可以做一些事情。

亲爱的MLADEN。

再次感谢您对事情的专业眼光....,所以总的来说....,交易者的损失是确认的,由于任何和只有一点点的原因,当收益在任何和每一种情况下都是可疑的....,事情是这样的,现在的日子。这是通常的。

有一个问题,老板,当市场价格下跌或上涨如此之快,就像光速一样....,是否有任何机会和可能性,我们所有的损失断路器(BE,SL和追踪止损)可能被忽略/拒绝/通过....,或者....,他们在任何情况下都有效地工作。

问候

 
mntiwana:
最亲爱的MLADEN。

再次感谢您对事情的专业眼光....,所以总的来说....,交易者的损失是确认的,由于任何和只有一点点的原因,当收益在任何和每一种情况下都是可疑的....,事情是这样的,现在的日子。这是通常的。

有一个问题,老板,当市场价格下跌或上涨如此之快,就像光速一样....,是否有任何机会和可能性,我们所有的损失断路器(BE,SL和追踪止损)可能被忽略/拒绝/通过....,或者....,他们在任何情况下都有效地工作。

问候

mntiwana

这不应该发生,但通过各种方式,阅读你与经纪人签订的合同。关于这样的事情,必须在合同中说明。

 

什么是最简单的方法来检查 两个值的交叉?

 
apprentice coder:
检查两个值的交叉的最简单方法是什么?

这取决于你所比较的数值。你能给出一个具体的例子吗?

 
mladen:
这取决于你所比较的数值。你能给出一个具体的例子吗?

例如:两个平均数的交叉

 

嗨,我的EA遇到了一些问题,似乎陷入了死胡同。如果有人能帮助我解决这个问题,我会很感激。我试图让我的EA每天只触发一次交易。基本上,这是一个突破性的EA,一旦蜡烛突破了一定数量的点,就会开启交易。然而,我似乎无法让EA每天只触发一笔交易。

目前我的EA会在同一根蜡烛上再次触发另一笔交易,如果在我的交易已经完成TP或SL后再次满足条件。

如果有人能帮助我解决这个问题,我将非常感激。谢谢。

以下是我的程序设计。

注意事项

//---- 输入参数

extern double TakeProfit = 1000.0;

extern double Lots = 0.1;

extern double StopLoss = 980.0;

extern int Entry_Hour_1st = 21;

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

//| 专家初始化函数|

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

int init()

{

//----

//----

return(0);

}

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

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

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

int deinit()

{

//----

//----

return(0);

}

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

//|专家启动功能|

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

int start()

{

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

//-- 触发贸易

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

int ticket, total;

双TP_Value, SL_Value。

total = OrdersTotal(); // 检查当前开放的交易总数

如果(total < 1)

{

if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0.00100) && ((High[1] - Low[1]) > 0.00100)

{

如果((Close[1] - Open[1]) > 0.00100)

{

TP_Value = (Close[1] - Open[1]); // 多头机构的价值

SL_Value = (Low[1] - 0.0010); // 对多头来说总是一样的

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green)。

返回(0)。

}

如果((Open[1] - Close[1]) > 0.00100)

{

TP_Value = (Open[1] - Close[1]); // 空头主体的价值

SL_Value = (Low[1] - 0.0010); // 对多头来说总是一样的

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green)。

返回(0)。

}

如果((Open[1] - Close[1]) <= 0.00100)

{

TP_Value = (High[1] - Low[1]); // 包括头部和尾部的整个蜡烛的值

SL_Value = (Low[1] - 0.0010); // 对多头来说总是一样的。

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green)。

返回(0)。

}

}

如果(Hour()==Entry_Hour_1st &&((Low[1] - Low[0]) > 0.00100) &&((High[1] - Low[1]) > 0.00100))

{

//-------------------------------------------------------//

//--------,如果H7长线蜡烛体超过10点 --------//

//-------------------------------------------------------//

如果((Close[1] - Open[1]) > 0.00100)

{

TP_Value = (Close[1] - Open[1]); // 多头体的价值

SL_Value = (High[1] + 0.0010); // 对空头来说总是一样的

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red)。

返回(0)。

}

如果((Open[1] - Close[1]) > 0.00100)

{

TP_Value = (Open[1] - Close[1]); // 空头主体的价值

SL_Value = (High[1] + 0.0010); // 对空头来说总是一样的

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red)。

返回(0)。

}

如果((Open[1] - Close[1]) <= 0.00100)

{

TP_Value = (High[1] - Low[1]); // 包括头部和尾部的整个蜡烛的值

SL_Value = (High[1] + 0.0010); // 对空头来说总是一样的。

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red)。

返回(0)。

}

}

}

return(0);

}

}

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

 
tkuan77:
你好,我的EA遇到了一些问题,似乎陷入了死胡同。如果有人能帮助我解决这个问题,我会很感激。我正试图让我的EA每天只触发一次交易。基本上,这是一个突破性的EA,一旦蜡烛突破了一定数量的点,就会开启交易。然而,我似乎无法让EA每天只触发1笔交易。

目前,我的EA将在同一根蜡烛上再次触发另一笔交易,如果在我的交易已经完成TP或SL后再次满足条件。

如果有人能帮助我解决这个问题,我将非常感激。谢谢。

以下是我的程序设计。

注意事项

//---- 输入参数

extern double TakeProfit = 1000.0;

extern double Lots = 0.1;

extern double StopLoss = 980.0;

extern int Entry_Hour_1st = 21;

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

//| 专家初始化函数 |

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

int init()

{

//----

//----

return(0);

}

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

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

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

int deinit()

{

//----

//----

return(0);

}

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

//|专家启动功能|

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

int start()

{

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

//-- 触发贸易

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

int ticket, total;

双TP_Value, SL_Value。

total = OrdersTotal(); // 检查当前开放的交易总数

如果(total < 1)

{

if (Hour()==Entry_Hour_1st && ((High[0] - High[1]) > 0.00100) && ((High[1] - Low[1]) > 0.00100)

{

如果((Close[1] - Open[1]) > 0.00100)

{

TP_Value = (Close[1] - Open[1]); // 多头机构的价值

SL_Value = (Low[1] - 0.0010); // 对多头来说总是一样的

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green)。

返回(0)。

}

如果((Open[1] - Close[1]) > 0.00100)

{

TP_Value = (Open[1] - Close[1]); // 空头主体的价值

SL_Value = (Low[1] - 0.0010); // 对多头来说总是一样的

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green)。

返回(0)。

}

如果((Open[1] - Close[1]) <= 0.00100)

{

TP_Value = (High[1] - Low[1]); // 包括头部和尾部的整个蜡烛的值

SL_Value = (Low[1] - 0.0010); // 对多头来说总是一样的。

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,SL_Value,Ask+TP_Value, "My EA",200,0,Green)。

返回(0)。

}

}

如果(Hour()==Entry_Hour_1st &&((Low[1] - Low[0]) > 0.00100) &&((High[1] - Low[1]) > 0.00100))

{

//-------------------------------------------------------//

//--------,如果H7长线蜡烛体超过10点 --------//

//-------------------------------------------------------//

如果((Close[1] - Open[1]) > 0.00100)

{

TP_Value = (Close[1] - Open[1]); // 多头体的价值

SL_Value = (High[1] + 0.0010); // 对空头来说总是一样的

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red)。

返回(0)。

}

如果((Open[1] - Close[1]) > 0.00100)

{

TP_Value = (Open[1] - Close[1]); // 空头主体的价值

SL_Value = (High[1] + 0.0010); // 对空头来说总是一样的

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red)。

返回(0)。

}

如果((Open[1] - Close[1]) <= 0.00100)

{

TP_Value = (High[1] - Low[1]); // 包括头部和尾部的整个蜡烛的值

SL_Value = (High[1] + 0.0010); // 对空头来说总是一样的。

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,SL_Value,Bid-TP_Value, "My EA",200,0,Red)。

返回(0)。

}

}

}

return(0);

}

}

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

tkuan77

你必须要找到最后一个收盘条,并且要看最后一个收盘条的日期是否与当前日期相同。

你可以使用类似这样的函数 来获取最后一个平仓的时间。

datetime GetLastClosedOrderTime()

{

datetime CloseTime = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

CloseTime = OrderCloseTime();

}

return(CloseTime);

}

然后你可以检查日期是否相同

原因: