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

 

我在脚本中增加了几行(增加了BUYSTOP和SELLSTOP),但它无法编译,产生了错误。能否请你告诉我什么是错的?

#property copyright"Copyright © 2010, Khlystov Vladimir".
#属性链接 "cmillion@narod.ru"
#property show_inputs
//--------------------------------------------------------------------
外部int stoploss = 0, // SL的水平,如果是0,SL没有被展示。
extern int takeprofit = 0, //t TP水平,如果为0,则TP不被展示。
extern int Magic = 123456; //一个订单的号码
外部 bool BUY = false; //打开BUY订单
外部 bool SELL = false; //打开卖出订单
外部 bool BUYSTOP = false, //打开BUYSTOP订单
外部 bool SELLSTOP = false, //打开SELLSTOP订单
外部双数 Lot = 0.1; // 订单量
外置 int slippage = 3; //市场订单的最大允许价格偏差
//--------------------------------------------------------------------
双重SL,TP。
//--------------------------------------------------------------------
int start()
{
如果(购买)
{
如果(takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); 否则TP=0。
如果(stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); 否则SL=0;
OPENORDER("购买")。
}
如果 (SELL)
{
如果(takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); 否则TP=0。
如果(stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); 否则 SL=0;
OPENORDER("卖出")。
}
如果 (BUYSTOP)
{
如果(takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); 否则TP=0。
如果(stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); 否则 SL=0;
OPENORDER("买入停止")。
}
如果(SELLSTOP)
{
如果(takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); 否则TP=0。
如果(stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); 否则 SL=0;
OPENORDER("卖出止损")。
}
return(0);
}
//--------------------------------------------------------------------
空白的OPENORDER(string ord)。
{
int error,err;
while (true)
{ error=true;
如果(ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slipage,SL,TP, "BUY",Magic,0,Blue);
如果(ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slipage,SL,TP, "SELL",Magic,0,Red);
如果(ord=="BuyStop" ) error=OrderSend(Symbol(,OP_BUYSTOP, Lot,NormalizeDouble(Ask,Digits),SL,TP, "BUYSTOP",Magic,0,Blue);
如果(ord=="SellStop") error=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid,Digits),SL,TP, "SELLSTOP",Magic,0,Red);
如果(error==-1) //购买失败 OK
{
ShowERROR()。
err++;Sleep(2000);RefreshRates()。
}
如果(错误||err >10)返回。
}
返回。
}
//--------------------------------------------------------------------
空白的ShowERROR()
{
int err=GetLastError()。
switch ( err )
{
情况1:返回。
case 2: Alert("No connection to trade server" ,Symbol());return;
case 3: Alert("Error incorrect parameters",Symbol());return;
case 130: Alert("Error close Ticket stops",Symbol()); return;
case 134: Alert("Not enough money",Symbol());return;
case 146: Alert("Error Trade Subsystem is busy",Symbol()); return;
case 129: Alert("Error Wrong price",Symbol());return;
case 131: Alert("Error Incorrect volume",Symbol()); return;
case 4200:Alert("Error Object already exists",Symbol());return;
默认:Alert("Error",err," ",Symbol());返回。
}
}
//--------------------------------------------------------------------

提前感谢。

 
nemo811:

你能用"; "代替", "来结束运算吗?

 
FreeLance:

你能用"; "代替", "来结束运算吗?


谢谢,我只是在学习:)))谢谢。
 
nemo811:

谢谢你,我只是在学习:)))谢谢。

谢谢!我自己也是这样...;)
 
FreeLance:

谢谢你!我自己也是这样...;)

:))))更加紧迫的问题。这个脚本打开市场订单,但不下挂单。我又搞砸了。能否请你告诉我什么是错的?
 
nemo811:

:))))更加紧迫的问题是。这个脚本打开市场订单,但不下挂单。我又搞砸了。你能告诉我什么是错的吗?

它背后的交易理念是什么?
 
我有一个EA,它忽略了手动设置的订单。我试图修改的脚本是为了把 "手动 "订单变成一个带有魔法参数的订单。就是这个意思)。
 
nemo811:
我有一个EA,它忽略了 "手动 "设置的未结订单。我试图修改的脚本是为了把 "手动 "订单变成带有魔法参数的订单。就是这个意思)。


晚安!

我想不明白--所以我把它搁置起来。

但你也一样--慢慢来--研究数学!"。

操作的语言和对象都很简单...

执行力有时很蹩脚?

因此,双方都有松懈的情况。

;)

 

纠正了上述代码。坠子没有被镶嵌。请帮助我找到错误。

#property copyright"Copyright © 2010, Khlystov Vladimir"
#属性链接 "cmillion@narod.ru"
#property show_inputs
//--------------------------------------------------------------------
外部int stoploss = 0; // SL的水平,如果是0,SL不被展示。
extern int int takeprofit = 0; //t TP水平,如果是0,TP没有被展示。
extern int int Magic = 123456; //一个订单的号码
外部 bool BUY = false; //打开BUY订单
外部 bool SELL = false; //打开卖出订单
外部 bool BUYSTOP = false; //开启BUYSTOP订单
外部 bool SELLSTOP = false; //打开SELLSTOP订单
外部双数 Lot = 0.1; // 订单量
外置 int slippage = 3; //市场订单的最大允许价格偏差
外部int DistanceSet = 20; //市场距离
//--------------------------------------------------------------------
双重SL,TP。
//--------------------------------------------------------------------
int start()
{
如果(购买)
{
如果(takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); 否则TP=0。
如果(stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); 否则 SL=0;
OPENORDER("购买")。
}
如果 (SELL)
{
如果(takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); 否则TP=0。
如果(stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); 否则 SL=0;
OPENORDER("卖出")。
}
如果 (BUYSTOP)
{
如果(takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); 否则TP=0。
如果(stoploss!=0) SL = NormalizeDouble(Ask - stoploss*Point,Digits); 否则SL=0;
OPENORDER("买入停止")。
}
如果(SELLSTOP)
{
如果(takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); 否则TP=0。
如果(stoploss!=0) SL = NormalizeDouble(Bid + stoploss*Point,Digits); 否则 SL=0;
OPENORDER("卖出止损")。
}
return(0);
}
//--------------------------------------------------------------------
空白的OPENORDER(string ord)。
{
int error,err;
while (true)
{ error=true;
如果(ord=="Buy" ) error=OrderSend(Symbol(,OP_BUY, Lot,NormalizeDouble(Ask,Digits),slipage,SL,TP,"",Magic,0);
如果(ord=="Sell") error=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slipage,SL,TP,",Magic,0);
如果(ord=="BuyStop" ) error=OrderSend(Symbol(,OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),slipage,SL,TP,",Magic,0);
如果(ord=="SellStop") error=OrderSend(Symbol(,OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),slipage,SL,TP,"",Magic,0);
如果(error==-1) //购买失败 OK
{
ShowERROR()。
err++;Sleep(2000);RefreshRates()。
}
如果(错误||err >10)返回。
}
返回。
}
//--------------------------------------------------------------------
空白的ShowERROR()
{
int err=GetLastError()。
switch ( err )
{
情况1:返回。
case 2: Alert("No connection to trade server" ,Symbol());return;
case 3: Alert("Error incorrect parameters",Symbol());return;
case 130: Alert("Error close Ticket stops",Symbol()); return;
case 134: Alert("Not enough money",Symbol());return;
case 146: Alert("Error Trade Subsystem is busy",Symbol()); return;
case 129: Alert("Error Wrong price",Symbol());return;
case 131: Alert("Error Incorrect volume",Symbol()); return;
case 4200:Alert("Error Object already exists",Symbol());return;
默认:Alert("Error",err," ",Symbol());返回。
}
}
//--------------------------------------------------------------------

谢谢。

 
Dimka-novitsek:


不,正好相反,比你写的要好。 当然,谢谢你的关注。 我努力思考,这样想,那样想,你错了。

实际上,我发现问题不在轴和位上,而且我还没有解决。

你的这个断言非常奇怪。一个苹果不会因为你思想的力量而向上飞,但它会落在你的头上......。

事情 就是这样,没有别的。

或者你生活在一个特定的国家,那里的一切都严格地反过来:利润 - 价值与减去?想一想:在1.0100买入,在1.0200卖出(在这个水平拿下,即 买入价)。我们有100个点的利润。没有其他办法。如果你试图在1.0000的水平上设置取值,你会得到错误130 - 错误的止损。买入(OP_BUY)不能低于开盘价。而止损则相反,应该低于买入头寸的开盘价。卖出则反之--买入价低于开盘价,止损价则高于开盘价。

看来你不仅需要学习数学,还需要学习一年级的数学...没有冒犯的意思。