[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 594 1...587588589590591592593594595596597598599600601...652 新评论 Алексей Тарабанов 2012.02.26 20:40 #5931 for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && // check for opened position OrderSymbol() ==lSymbol()) // check for symbol { ? Иван 2012.02.26 23:14 #5932 请帮助解决代码问题!为什么我在这个代码中得到了138,这与它有什么关系?交易打开,但当你关闭时,价格不知为何不一样,这是什么?一切都很简单。专家顾问在S蜡烛应该关闭交易,当分形被穿透时打开。提前感谢提示 外来的int s=5; Extern int stime=60; extern int lots=1; extern int slippage=5; extern double sl=NULL; extern double tp=NULL; double upfr,dnfr=0.0;//最后分形的水平 double tClose=NULL; double tOpen=NULL; int flag=0; int init() { //---- return(0); } //+ //|专家去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- // return(0); } //+------------------------------------------------------------------+ //|专家启动函数 | //+------------------------------------------------------------------+ int start()//在故障时打开,在s烛光后关闭 { //---- upfr=iFractals(Symbol(),PERIOD_H1,MODE_UPPER,4) dnfr=iFractals(Symbol(),PERIOD_H1,MODE_LOWER,4); //OPPER ORDERS ON PROBIT if(upfr>0 && High[1]>upfr &&)flag==0) //如果分形上升,并且超过了分形水平 { tOpen=Time[0]; tClose=tOpen+s*stime*60; OrderSend(Symbol(),OP_BUY,lot,Bid,slipage,tp); flag=1; } 如果(dnfr>0 && Low[1]<dnfr && flag==0)//如果分形下跌且分形水平下降 { tOpen=Time[0]; tClose=tOpen+s*stime*60; OrderSend(Symbol(,OP_SELL,lot,Ask,sl, sl, tp); flag=1; } //在时间结束时关闭订单 if(Time[0]>=tClose )//如果关闭前的时间已过 { Print("CLOSE FUNCTION"); OrClose(); flag=0; } //---- return(0); } //+------------------------------------------------------------------+ //关闭所有订单 void OrClose() { for(int i=OrdersTotal()-1;i>=1;i-) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { OrderClose(OrderTicket(),lot,OrderOpenPrice(),0.0005); } } return(0); } [ARCHIVE] Any rookie question, 非滞后工具 [警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 Сергей 2012.02.27 04:33 #5933 Qwertee: 请帮助解决代码问题!为什么我在这段代码中得到一个138的错误? 这和它有什么关系? OrderClose(OrderTicket(),lots,OrderOpenPrice(),0.0005); 改为 if(OrderType()==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),Bid,slippage); } else { OrderClose(OrderTicket(),OrderLots(),Ask,slippage); } [删除] 2012.02.27 13:16 #5934 下午好。处理Zigzag指标的专业人士,建议如何获得顶部的最后两个值:High和Low? link1 2012.02.27 14:55 #5935 下午好。 请帮助我开启订单。我在模拟账户 上使用一个EA,当我得到一个买入或卖出条件时,它显示130个错误。 这里是订单开放功能。 int NewOrder(int Cmd,double Lot) {double TP=0; //тейкпрофит double SL=0; //стоплосс double PR=0; //Цена while(!IsTradeAllowed()) Sleep(100); RefreshRates (); if(Cmd==OP_BUY) {PR=Ask; if(TakeProfit>0) TP=NormalizeDouble(Ask+TakeProfit*Point,Digits); if(StopLoss>0) SL=NormalizeDouble(Bid-StopLoss*Point,Digits);} if(Cmd==OP_SELL) {PR=Bid; if(TakeProfit>0) TP=NormalizeDouble(Bid-TakeProfit*Point,Digits); if(StopLoss>0) SL=NormalizeDouble(Ask+StopLoss*Point,Digits);} int tic=OrderSend(Symbol(),Cmd,Lot,PR,20,SL,TP,"",0,0,CLR_NONE); if(tic<0) Print("Ошибка открытия ордера: ",GetLastError()); return(tic);} 我检查了其他的EA,发现地段计算一切正常。 在Alpari的模拟账户,微观类型。采取和停止是100p,所以,10点,因为Alpari有5个标记。 Рустам 2012.02.27 15:06 #5936 使开盘价 正常化 link1 2012.02.27 15:38 #5937 FAQ: 使开盘价正常化。 你如何使它正常化? 对吗? PR=NormalizeDouble(Ask,Digits); 如果是这样,就没有什么变化。 我在编程方面还没有什么经验。能否请你解释一下如何将其规范化? Рустам 2012.02.27 16:18 #5938 然后事先检查止损和利润的大小,如果它大于你的止损和利润--调整它们。如果它是零,那么你需要先设置一个止损和利润为零的订单,然后将它们修改到合适的水平。 NADYA 2012.02.27 17:43 #5939 晚上好。问题:当我关闭一个交易的一部分时,EA会用一个新的票据打开一个新的交易。新秩序的魔力是否依然如故? [删除] 2012.02.27 17:58 #5940 安装了MetaTrader 4,开设了一个模拟账户。试图打开/关闭订单。现在我怎样才能使终端本身在价格上涨时触发卖单,在价格下跌时触发买单,使用 "你需要2个蜡烛的差价来关闭旧的订单并开立新的订单 "这样的信息? 1...587588589590591592593594595596597598599600601...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // check for opened position
OrderSymbol() ==lSymbol()) // check for symbol
{
?
请帮助解决代码问题!为什么我在这个代码中得到了138,这与它有什么关系?交易打开,但当你关闭时,价格不知为何不一样,这是什么?一切都很简单。专家顾问在S蜡烛应该关闭交易,当分形被穿透时打开。提前感谢提示
外来的int s=5;
Extern int stime=60;
extern int lots=1;
extern int slippage=5;
extern double sl=NULL;
extern double tp=NULL;
double upfr,dnfr=0.0;//最后分形的水平
double tClose=NULL;
double tOpen=NULL;
int flag=0;
int init()
{
//----
return(0);
}
//+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//
return(0);
}
//+------------------------------------------------------------------+
//|专家启动函数 |
//+------------------------------------------------------------------+
int start()//在故障时打开,在s烛光后关闭
{
//----
upfr=iFractals(Symbol(),PERIOD_H1,MODE_UPPER,4)
dnfr=iFractals(Symbol(),PERIOD_H1,MODE_LOWER,4);
//OPPER ORDERS ON PROBIT
if(upfr>0 && High[1]>upfr &&)flag==0) //如果分形上升,并且超过了分形水平
{
tOpen=Time[0];
tClose=tOpen+s*stime*60;
OrderSend(Symbol(),OP_BUY,lot,Bid,slipage,tp);
flag=1;
}
如果(dnfr>0 && Low[1]<dnfr && flag==0)//如果分形下跌且分形水平下降
{
tOpen=Time[0];
tClose=tOpen+s*stime*60;
OrderSend(Symbol(,OP_SELL,lot,Ask,sl, sl, tp);
flag=1;
}
//在时间结束时关闭订单
if(Time[0]>=tClose )//如果关闭前的时间已过
{
Print("CLOSE FUNCTION");
OrClose();
flag=0;
}
//----
return(0);
}
//+------------------------------------------------------------------+
//关闭所有订单
void OrClose()
{
for(int i=OrdersTotal()-1;i>=1;i-)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),lot,OrderOpenPrice(),0.0005);
}
}
return(0);
}
请帮助解决代码问题!为什么我在这段代码中得到一个138的错误? 这和它有什么关系?
改为
下午好。
请帮助我开启订单。我在模拟账户 上使用一个EA,当我得到一个买入或卖出条件时,它显示130个错误。
这里是订单开放功能。
我检查了其他的EA,发现地段计算一切正常。
在Alpari的模拟账户,微观类型。采取和停止是100p,所以,10点,因为Alpari有5个标记。
使开盘价正常化。
你如何使它正常化?
对吗?
如果是这样,就没有什么变化。
我在编程方面还没有什么经验。能否请你解释一下如何将其规范化?
晚上好。问题:当我关闭一个交易的一部分时,EA会用一个新的票据打开一个新的交易。新秩序的魔力是否依然如故?