[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 388

 
KostelloArtua:
2011.05.16 09:06:08 专家级移动平均线New-Svecha EURUSD,M30:加载成功
2011.05.16 09:04:21 专家级移动平均线New-Svecha EURUSD,M30:加载成功
2011.05.16 08:14:25 '81415': 数据中心连接失败 [6] 。


如果你先运行终端,然后再运行EA,日志中没有出现其他内容,而EA显示工作...


如果蜱虫在运行,EA的图标是 "微笑",EA应该进行交易(即出现交易条件),但它没有进行交易,那么就有必要进行调试。

在EA的代码中安排price() 命令,特别是在那些被比较的地方,看看到底被比较的是什么。也许,比较结果总是假的,而你却假设变量是相等的。

 

大家下午好。

我学习MQL4大约有一个月了。我写了一个简单的专家顾问,在MACD柱状图变化时买入或卖出(如果需要,我可以在晚上发送代码)。它的编译没有问题,我的模拟账户在右上角有一个笑脸(我 在偏好中启用了我的EA进行交易)。策略测试器显示了策略的结果(虽然是负面的,但这是进一步完善的步骤)。但在MT4的模拟账户上,专家顾问根本不开交易。在我看来,问题不是出在程序上(否则为什么测试器会显示结果?

你能告诉我这可能是什么吗?

 
Sersad:.

你能告诉我可能出了什么问题吗?


你的账户里有多少钱,你输入的是什么批次?
 
Roger:

你的账户里有多少钱,你输入的是什么批次?

在一个 10,000美元的模拟账户上,我以0.1手(迷你手)进入。

如果你指的是资金管理,我认为情况并非如此......

 
Sersad:

大家下午好。

我学习MQL4大约有一个月了。我写了一个简单的专家顾问,在MACD柱状图变化时买入或卖出(如果需要,我可以在晚上发送代码)。它的编译没有问题,我的模拟账户在右上角有一个笑脸(我在偏好中启用了我的EA进行交易)。策略测试器显示了策略的结果(虽然是负面的,但这是进一步完善的步骤)。但在MT4的模拟账户上,专家顾问根本不开交易。在我看来,问题不是出在程序上(否则为什么测试器会显示结果?

你能告诉我可能是什么问题吗?


没有代码,就很难说。有可能EA是为4 位数编写的,而模拟账户是为5位数编写的。你看,如果我们为订单设置,例如10个点的止损,它与5位数的EA的距离和4位数的1个点是一样的。如果我们将设置止损单的最小允许距离设定为,例如3点,那么在一个五位数的市场上,这将是30点,而不是3点。服务器会很好理解地拒绝在五位数上设置10点止损的订单的命令。

但原因可能是不同的。你看,你问过别人为什么他们的车不能启动。如果不打开引擎盖,听一听汽车对试图启动的反应,人们是无法告诉你原因的。

 


对不起,我在这里写了一些废话,如果你能告诉我,我哪里完全不懂。

姿势似乎根本没有打开,什么都没有发生。

我去掉了除以零--仍然如此,而且日志中没有写错误。

//+------------------------------------------------------------------+
//|为雪崩.mq4 | |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"Copyright © 2011, MetaQuotes Software Corp."
#属性链接 "http://www.metaquotes.net"
外部的双倍止损=0;外部的双倍获利=20;外部的int otstup=20;外部的datetime expiration=0。

//+------------------------------------------------------------------+
//|专家初始化功能 |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1;double price=PRICE_OPEN。
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss。


int start()
{
//----

OrderSelect()tiket,SELECT_BY_TICKET, MODE_TRADES )。
如果(OrderSymbol()==Symbol()){
如果(OrderMagicNumber()==1000||OrderMagicNumber()==2000){i=OrdersTotal() 。
如果(i<2){
tiket= OrderSend( Symbol(), OP_BUYSTOP, volume*A, price+otstup*Point, Point*3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red) 。
Alert("OP_BUYSTOP", GetLastError( );
tikett= OrderSend( Symbol(), OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' ) 。
提醒("OP_SELLSTOP", GetLastError( );
i=OrdersTotal() ; } } }

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

也就是说,开了两个挂单,一个在价格上方,距离otstup=20,另一个在价格下方,没有止损,在开仓前检查是否没有这个EA的订单,而且不超过两个。

 
alexr7:
非常感谢您的快速回复!!!!!!!!!!!!!! 该标准是一个标准的布林线指标,参数为:周期20,移位0,偏差2,加权收盘价(HLCC/4)!!!!!!!

这些都不是我问你的标准。这些是布林参数。它们可能是不同的,它们在设置中被设定...

我问你--你如何确定该位置是否 布林中线上

 
alexr7:
非常感谢您的快速回复!!!!!!!!!!!!!!该标准是一个标准的布林线指标,参数为:周期20,移位0,偏差2,加权收盘价(HLCC/4)!!!!!!!

布林平均线是iMA(NULL, 0,20, 0,MODE_SMA, PRICE_WEIGHTED, 1)。
 
Dimka-novitsek:


对不起,我在这里写了一些废话,如果你能告诉我,我哪里完全是在放羊。姿势似乎根本没有打开,什么都没有发生。

我去掉了除以0的部分--仍然如此,而且日志中没有写出错误。

//+------------------------------------------------------------------+
//| for avalanche.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp. "
#property link "http://www.

metaquotes.net"
extern double stoploss=0; extern double takeprofit=20; extern int otstup=20; extern datetime expiration=0;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
returns(0);
}
//+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----

//
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能 |
//+------------------------------------------------------------------+
int tiket,tikit;double volume=0.1;int i=0,R1=0,R2=0,A=1;double price=PRICE_OPEN;
// R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss; R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;


int start()
{
//----

OrderSelect( tiket,SELECT_BY_TICKET, MODE_TRADES );
if(OrderSymbol()==Symbol()){
if (OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 ){i=OrdersTotal( ) ;
if (i<2){
tiket= OrderSend(, OP_BUYSTOP, volume*A, price+otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000, expiration, Red);
Alert ( "OP_BUYSTOP", GetLastError( ) 。)
tikett= OrderSend( Symbol(, OP_SELLSTOP, volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP", 2000, expiration,C'0,128,255' );
Alert ( "OP_SELLSTOP", GetLastError( ) );
i=OrdersTotal( ) ; }}

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

也就是说,打开像两个挂单,一个在价格之上,距离otstup=20,另一个在价格之下,没有停止,在打开之前检查这个EA的订单是否不超过两个。

1)使用SRC

2) 你的第一个命令是OrderSelect。在设定订单之前,你打算选择谁?

 

当EA什么都不启动的时候,它只是为了检查,所以新的骑手不会在之后的每一次勾选中 打开。

1)使用SRC A,它是一个根,谢谢你!

也就是说,如果根本没有订单,或者少于2个,就会立即打开。