[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 67 1...606162636465666768697071727374...537 新评论 [Deleted] 2011.02.07 03:37 #661 我在脚本中增加了几行(增加了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());返回。 } } //-------------------------------------------------------------------- 提前感谢。 [Archive!] Any rookie question, 100% Risk Free Margin [存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. Freelance 2011.02.07 03:43 #662 nemo811: 你能用"; "代替", "来结束运算吗? [Deleted] 2011.02.07 03:47 #663 FreeLance: 你能用"; "代替", "来结束运算吗? 谢谢,我只是在学习:)))谢谢。 Freelance 2011.02.07 03:51 #664 nemo811: 谢谢你,我只是在学习:)))谢谢。 谢谢!我自己也是这样...;) [Deleted] 2011.02.07 04:00 #665 FreeLance: 谢谢你!我自己也是这样...;) :))))更加紧迫的问题。这个脚本打开市场订单,但不下挂单。我又搞砸了。能否请你告诉我什么是错的? Freelance 2011.02.07 04:02 #666 nemo811: :))))更加紧迫的问题是。这个脚本打开市场订单,但不下挂单。我又搞砸了。你能告诉我什么是错的吗? 它背后的交易理念是什么? [Deleted] 2011.02.07 04:07 #667 我有一个EA,它忽略了手动设置的订单。我试图修改的脚本是为了把 "手动 "订单变成一个带有魔法参数的订单。就是这个意思)。 Freelance 2011.02.07 04:13 #668 nemo811: 我有一个EA,它忽略了 "手动 "设置的未结订单。我试图修改的脚本是为了把 "手动 "订单变成带有魔法参数的订单。就是这个意思)。 晚安! 我想不明白--所以我把它搁置起来。 但你也一样--慢慢来--研究数学!"。 操作的语言和对象都很简单... 执行力有时很蹩脚? 因此,双方都有松懈的情况。 ;) [Deleted] 2011.02.07 05:27 #669 纠正了上述代码。坠子没有被镶嵌。请帮助我找到错误。 #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());返回。 } } //-------------------------------------------------------------------- 谢谢。 [Archive!] Any rookie question, 100% Risk Free Margin 任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. Artyom Trishkin 2011.02.07 05:36 #670 Dimka-novitsek: 不,正好相反,比你写的要好。 当然,谢谢你的关注。 我努力思考,这样想,那样想,你错了。 实际上,我发现问题不在轴和位上,而且我还没有解决。 你的这个断言非常奇怪。一个苹果不会因为你思想的力量而向上飞,但它会落在你的头上......。 事情 就是这样,没有别的。 或者你生活在一个特定的国家,那里的一切都严格地反过来:利润 - 价值与减去?想一想:在1.0100买入,在1.0200卖出(在这个水平拿下,即比 买入价高 )。我们有100个点的利润。没有其他办法。如果你试图在1.0000的水平上设置取值,你会得到错误130 - 错误的止损。买入(OP_BUY)不能低于开盘价。而止损则相反,应该低于买入头寸的开盘价。卖出则反之--买入价低于开盘价,止损价则高于开盘价。 看来你不仅需要学习数学,还需要学习一年级的数学...没有冒犯的意思。 1...606162636465666768697071727374...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我在脚本中增加了几行(增加了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());返回。
}
}
//--------------------------------------------------------------------
提前感谢。
你能用"; "代替", "来结束运算吗?
你能用"; "代替", "来结束运算吗?
谢谢,我只是在学习:)))谢谢。
谢谢你,我只是在学习:)))谢谢。
谢谢!我自己也是这样...;)
谢谢你!我自己也是这样...;)
:))))更加紧迫的问题。这个脚本打开市场订单,但不下挂单。我又搞砸了。能否请你告诉我什么是错的?
:))))更加紧迫的问题是。这个脚本打开市场订单,但不下挂单。我又搞砸了。你能告诉我什么是错的吗?
它背后的交易理念是什么?
我有一个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());返回。
}
}
//--------------------------------------------------------------------
谢谢。
不,正好相反,比你写的要好。 当然,谢谢你的关注。 我努力思考,这样想,那样想,你错了。
实际上,我发现问题不在轴和位上,而且我还没有解决。
你的这个断言非常奇怪。一个苹果不会因为你思想的力量而向上飞,但它会落在你的头上......。
事情 就是这样,没有别的。
或者你生活在一个特定的国家,那里的一切都严格地反过来:利润 - 价值与减去?想一想:在1.0100买入,在1.0200卖出(在这个水平拿下,即比 买入价高 )。我们有100个点的利润。没有其他办法。如果你试图在1.0000的水平上设置取值,你会得到错误130 - 错误的止损。买入(OP_BUY)不能低于开盘价。而止损则相反,应该低于买入头寸的开盘价。卖出则反之--买入价低于开盘价,止损价则高于开盘价。
看来你不仅需要学习数学,还需要学习一年级的数学...没有冒犯的意思。