[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 92 1...858687888990919293949596979899...1145 新评论 Yury Reshetov 2009.05.07 13:25 #911 Shniperson >> : 先生们。如何使H4交易考虑到H1柱?例如,如果(......&& Close[0](H1柱)>High[1](H1柱) ??????????? 使用iClose()和iHigh() - 你可以在这些函数中设置一个任意的时间框架 Vasiliy Sokolov 2009.05.07 20:39 #912 我不明白为什么一个缓冲区的赋值不正确(缓冲区1的结果没有打印在指标窗口)。 还有第二个问题,为什么指标要计算零点栏和前一个栏(limit=2),而它可以只限制在当前零点栏? #property indicator_separate_window #property indicator_buffers 1 extern int FastMA=3; extern int SlowMA=25; double Buffer1[]; double Buffer2[]; int init() { SetIndexBuffer(0,Buffer1); SetIndexBuffer(1,Buffer2); return(0); } int start() { int limit,counted_bars; counted_bars=IndicatorCounted(); //counted_bars=Bars-1 if(counted_bars>0) counted_bars--; //??? counted_bars=Bars-1-1 limit=Bars-counted_bars; //лимит теперь равен двум for(int i=0; i<limit; i++){ Buffer2[i]=MathAbs(Close[i]-Open[i]); } for(i=0; i<limit; i++){ Buffer1[i]=Buffer2[i]*(-1); } } [WARNING CLOSED!] Any newbie [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. 如何编码? [删除] 2009.05.07 20:57 #913 尊敬的程序员,请帮助我在指标中插入一个声音,当指标过 零时发出声音。谢谢你! 附加的文件: bullsybearsnpower.mq4 2 kb Виктор 2009.05.07 21:23 #914 C-4 >> : 我不明白为什么一个缓冲区的分配不正确(缓冲区1的结果没有输出到指示器窗口)...SetIndexStyle(0,DRAW_LINE); 对于绘图缓冲区缺少,对于计算缓冲区缺少IndicatorBuffers(2)。 Vasiliy Sokolov 2009.05.07 21:32 #915 中奖了!当然是IndicatorBuffers(2),我以为指定SetIndexBuffer就够了。顺便说一下,即使没有SetIndexStyle(0,DRAW_LINE),我也得到了一条黑色的细线--默认设置是搞的。 Константин Скворцов 2009.05.08 04:17 #916 专家们好。 我做了一个只关闭未结订单的EA!(半自动交易)。 收盘规则:主力收盘走价格通道,如果向上突破1点收盘SHELL。 如果1点下跌收盘BAY.此外,保险盈亏平衡点在一定距离。 我有一个问题,如果我做的一切都正确,代码是否正确!? extern bool check=false; extern int PeriodP=12; extern double TrailingStop = 35;// расстояние после которого будем устанавливать безубыток extern double X=5;//установка в + 5 пунктов! //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double P_up0, P_down0, P_up1, P_down1; int cnt, total; P_up0=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,0,0); P_down0=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,1,0); P_up1=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,0,1); P_down1=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,1,1); for( cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); return(0); } if( TrailingStop>0) { if(Bid-OrderOpenPrice()>Point* TrailingStop) { if(OrderStopLoss()<Bid-Point* TrailingStop && OrderStopLoss()!=OrderOpenPrice()+ X*Point) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ X*Point,OrderTakeProfit(),0,Green); return(0); } } } } else { if( P_up1< P_up0) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); return(0); } if( TrailingStop>0) { if((OrderOpenPrice()-Ask)>(Point* TrailingStop)) { if(NormalizeDouble(OrderStopLoss(),Digits) != NormalizeDouble(OrderOpenPrice()- X*Point,Digits)) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()- X*Point,OrderTakeProfit(),0,Red); return(0); } } } } } if ( check) Order_Open(); return(0); } //+------------------------------------------------------------------+ void Order_Open(){ if (OrdersTotal()<=1) { OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,"",20080421,0); OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",20080421,0); } } Alexander 2009.05.08 04:44 #917 没有关闭多头头寸的条件,现在无论如何都会关闭买入指令。 如果你有一个超额的订单,一定要把RefreshRates()放在OrderSelect 之前或之后。 Константин Скворцов 2009.05.08 05:15 #918 Roger >> : 没有条件关闭多头头寸,现在无论如何都会关闭买入订单。发现了这个错误。真的很想念BUY的关闭。 至少编译已经完成,没有错误。 extern bool check=false; extern int PeriodP=12; extern double TrailingStop = 35;// расстояние после которого будем устанавливать безубыток extern double X=5;//установка в + 5 пунктов! //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double P_up0, P_down0, P_up1, P_down1; int cnt, total; P_up0=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,0,0); P_down0=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,1,0); P_up1=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,0,1); P_down1=iCustom(Symbol(),Period(),"Ценовой канал", PeriodP,1,1); for( cnt=OrdersTotal()-1; cnt>=0; cnt--) { OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) { if( P_down1> P_down0) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); return(0); } if( TrailingStop>0) { if(Bid-OrderOpenPrice()>Point* TrailingStop) { if(OrderStopLoss()<Bid-Point* TrailingStop && OrderStopLoss()!=OrderOpenPrice()+ X*Point) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ X*Point,OrderTakeProfit(),0,Green); return(0); } } } } else { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); return(0); } if( TrailingStop>0) { if((OrderOpenPrice()-Ask)>(Point* TrailingStop)) { if(NormalizeDouble(OrderStopLoss(),Digits) != NormalizeDouble(OrderOpenPrice()- X*Point,Digits)) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()- X*Point,OrderTakeProfit(),0,Red); return(0); } } } } } if ( check) Order_Open(); return(0); } //+------------------------------------------------------------------+ void Order_Open(){ if (OrdersTotal()<=1) { OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,"",20080421,0); OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",20080421,0); } } [删除] 2009.05.08 09:29 #919 一个非常 "简单 "的问题:你如何计算1(1)手未平仓 指数的存款货币 的价格? 例子:昨天我开了1手日经,开仓时的价格是9400点。问题:我怎么知道开仓时9400点(不是存款!是手的价格)的存款货币是多少? Victor Nikolaev 2009.05.08 10:46 #920 jobber писал(а)>> 一个非常 "简单 "的问题:你如何计算1(1)手未平仓 指数的存款货币的价格? 我的问题是:我如何知道9400是多少钱(不是存款!即手的价格),在开盘时的存款货币? i>MarketInfo()对这个参数没有帮助。 1...858687888990919293949596979899...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
先生们。如何使H4交易考虑到H1柱?例如,如果(......&& Close[0](H1柱)>High[1](H1柱) ???????????
使用iClose()和iHigh() - 你可以在这些函数中设置一个任意的时间框架
#property indicator_separate_window
#property indicator_buffers 1
extern int FastMA=3;
extern int SlowMA=25;
double Buffer1[];
double Buffer2[];
int init()
{
SetIndexBuffer(0,Buffer1);
SetIndexBuffer(1,Buffer2);
return(0);
}
int start()
{
int limit,counted_bars;
counted_bars=IndicatorCounted(); //counted_bars=Bars-1
if(counted_bars>0) counted_bars--; //??? counted_bars=Bars-1-1
limit=Bars-counted_bars; //лимит теперь равен двум
for(int i=0; i<limit; i++){
Buffer2[i]=MathAbs(Close[i]-Open[i]);
}
for(i=0; i<limit; i++){
Buffer1[i]=Buffer2[i]*(-1);
}
}
我不明白为什么一个缓冲区的分配不正确(缓冲区1的结果没有输出到指示器窗口)...
SetIndexStyle(0,DRAW_LINE); 对于绘图缓冲区缺少,对于计算缓冲区缺少IndicatorBuffers(2)。
专家们好。
我做了一个只关闭未结订单的EA!(半自动交易)。
收盘规则:主力收盘走价格通道,如果向上突破1点收盘SHELL。
如果1点下跌收盘BAY.此外,保险盈亏平衡点在一定距离。
我有一个问题,如果我做的一切都正确,代码是否正确!?
发现了这个错误。真的很想念BUY的关闭。
至少编译已经完成,没有错误。
一个非常 "简单 "的问题:你如何计算1(1)手未平仓 指数的存款货币 的价格?
例子:昨天我开了1手日经,开仓时的价格是9400点。问题:我怎么知道开仓时9400点(不是存款!是手的价格)的存款货币是多少?
一个非常 "简单 "的问题:你如何计算1(1)手未平仓 指数的存款货币的价格?
我的问题是:我如何知道9400是多少钱(不是存款!即手的价格),在开盘时的存款货币?
i>MarketInfo()对这个参数没有帮助。