向鉴赏家提问 - 页 2 123456789...21 新评论 Константин Скворцов 2008.06.06 13:12 #11 我在这里找到了代码的一个变体。 如何将其插入我的EA???????????? //+----------------------------------------------------------------------------+ //| Возвращает номер бара открытия последней позиции или -1. | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| tf - таймфрейм ( 0 - текущий таймфрейм) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ int NumberOfBarOpenLastPos(string sym="", int tf=0, int op=-1, int mn=-1) { datetime oot; int i, k=OrdersTotal(); if (sym=="") sym=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sym) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (oot<OrderOpenTime()) oot=OrderOpenTime(); } } } } } } return(iBarShift(sym, tf, oot, True)); } Александр 2008.06.06 13:19 #12 Kostay: 专家顾问现在发生了一件奇怪的事情,它在关闭头寸时不工作。结果是:一切都输在了同一个问题上,尽管是在一个修改过的版本中! 修正了它,试试吧。 extern double Lots = 0.1; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double P_up0,P_down0,P_up1,P_down1; double st_m1, st_s1, st_m2, st_s2,Pivot,ma_s1; int i, cnt, ticket, total; bool flag=true; if(Bars<100) { Print("bars less than 100"); return(0); } // Проверяем стоит ли открываться cnt=OrdersHistoryTotal()-1; for(i=cnt;i>=0;i--) { if(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY )) continue; if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа flag=false; break; } } cnt=OrdersTotal()-1; for(i=cnt;i>=0;i--) { if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа flag=false; break; } } //----------------------------------------------- P_up0=iCustom(0,0,"Ценовой канал",11,0,0); P_down0=iCustom(0,0,"Ценовой канал",11,1,0); P_up1=iCustom(0,0,"Ценовой канал",11,0,1); P_down1=iCustom(0,0,"Ценовой канал",11,1,1); st_m1=iStochastic(0,0,10,3,3,MODE_SMA,0,MODE_MAIN,1); st_s1=iStochastic(0,0,10,3,3,MODE_SMA,0,MODE_SIGNAL,1); st_m2=iStochastic(0,0,10,3,3,MODE_SMA,0,MODE_MAIN,2); st_s2=iStochastic(0,0,10,3,3,MODE_SMA,0,MODE_SIGNAL,2); Pivot=iCustom(0,0,"Pivot",0,1); ma_s1=iMA(0,0,4,0,MODE_SMA,PRICE_CLOSE,1); //задали все данные // Проверка свободной маржи if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } total=OrdersTotal(); // Условие открытие позиции BUY if(st_m2>st_s2&&st_m1>st_s1&&st_m2<25&&Pivot<ma_s1) { if((total>0) || (!flag)) return(0); ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",0,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Alert("Покупка: ",OrderOpenPrice()); } else Alert("ошибка:по цене ",OrderOpenPrice()); return(0); } // Условие открытие позиции SELL if(st_m2<st_s2&&st_m1<st_s1&&st_m2>75&&Pivot>ma_s1) { if((total>0) || (!flag)) return(0); ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",0,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Alert("Покупка: ",OrderOpenPrice()); } else Alert("ошибка:по цене ",OrderOpenPrice()); return(0); } for(i=cnt;i>=0;i--) { 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); } } else { // условие закрытия короткой позиции if(P_up1<P_up0) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); return(0); } } } } return(0); } Артём 2008.11.10 14:05 #13 你好。 在为一个神经网络 编程时,我遇到了以下问题。 我有一个数组。 double X[3]; X[0]=1; X[1]=2; X[2]=3; X[3]=4; Comment(X[3]); 当我测试时,我得到的是0而不是4。同样的事情在二维数组中,我应该怎么做? 并借此机会问第二个问题:据我所知,mql4不能为分配给随机数的变量设置一个特定的范围? 在Delphi中,它看起来像这样 随机化。 i:=Random(10); //同样的范围,从0到10 Виктор 2008.11.10 15:06 #14 Chris_Brown >> : ...我有一个数组。 当测试时,我得到的是0而不是4。同样的事情发生在二维数组中,我应该怎么做? 这个数组很简单,你定义了维度[3],你调用了第四个缺失的单元。 写双倍X[4];,一切都会成功。 Артём 2008.11.10 15:52 #15 granit77 >> : 对于一个数组来说,这很简单,你已经定义了维度[3],并且你正在调用第四个,缺少的单元。 写双倍X[4];,一切都会成功。 谢谢,我会试试的,但随机的情况如何? Артём 2008.11.10 16:01 #16 而如果有一个二维数组,一个4乘9的矩阵,每个元素都被赋予 0.1的值,这是否差不多? int i, j; double W[4][9]; for ( i=0; i<=3; i++) for ( j=0; j<=8; j++) W[ i][ j]=0.1; Виктор 2008.11.10 19:32 #17 Chris_Brown >> : 如果你有一个二维数组,一个4乘9的矩阵,给每个元素赋值0.1,会是这样的吗? 它应该是有效的。如果你不觉得自己很懒,在注释中逐行显示整个矩阵,你会看到结果。 顺便说一下,你可以把注释变成一个函数,用它来检查数组的内容。 而关于随机性的问题,我就不说了。我只是路过,我看到了这个错误。:)) rsi 2008.11.10 19:54 #18 Chris_Brown писал(а)>> 谢谢,我会试一试,但随机的情况如何? double i=MathRand()/32767.0*10; 帮助就在里面。 Александр 2008.11.11 07:17 #19 Chris_Brown писал(а)>> 而如果有一个二维数组,一个4乘9的矩阵,每个元素被赋予0.1的值,会不会是这样的? 可以使用 阵列初始化(ArrayInitialize) 双倍数&array[], 双倍数值) 将一个数字数组的所有元素设置为相同的值。返回初始化元素的数量。 PapaYozh 2008.11.11 07:47 #20 Chris_Brown писал(а)>> 而如果你有一个二维数组,一个4乘9的矩阵,给每个元素分配一个0.1的值,会不会像这样? int i, j; double W[4][9]; for ( i=0; i<=3; i++) for ( j=0; j<=8; j++) W[ i][ j]=0.1; 这将是可行的,但它应该这样写。 int i, j; double W[4][9]; for ( i=0; i<4; i++) for ( j=0; j<9; j++) W[ i][ j]=0.1; 123456789...21 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我在这里找到了代码的一个变体。
如何将其插入我的EA????????????
专家顾问现在发生了一件奇怪的事情,它在关闭头寸时不工作。结果是:一切都输在了同一个问题上,尽管是在一个修改过的版本中!
修正了它,试试吧。
你好。
在为一个神经网络 编程时,我遇到了以下问题。
我有一个数组。
当我测试时,我得到的是0而不是4。同样的事情在二维数组中,我应该怎么做?
并借此机会问第二个问题:据我所知,mql4不能为分配给随机数的变量设置一个特定的范围?
在Delphi中,它看起来像这样
随机化。
i:=Random(10); //同样的范围,从0到10
...我有一个数组。
当测试时,我得到的是0而不是4。同样的事情发生在二维数组中,我应该怎么做?
这个数组很简单,你定义了维度[3],你调用了第四个缺失的单元。
写双倍X[4];,一切都会成功。
对于一个数组来说,这很简单,你已经定义了维度[3],并且你正在调用第四个,缺少的单元。
写双倍X[4];,一切都会成功。
谢谢,我会试试的,但随机的情况如何?
而如果有一个二维数组,一个4乘9的矩阵,每个元素都被赋予 0.1的值,这是否差不多?
如果你有一个二维数组,一个4乘9的矩阵,给每个元素赋值0.1,会是这样的吗?
它应该是有效的。如果你不觉得自己很懒,在注释中逐行显示整个矩阵,你会看到结果。
顺便说一下,你可以把注释变成一个函数,用它来检查数组的内容。
而关于随机性的问题,我就不说了。我只是路过,我看到了这个错误。:))
谢谢,我会试一试,但随机的情况如何?
而如果有一个二维数组,一个4乘9的矩阵,每个元素被赋予0.1的值,会不会是这样的?
可以使用
而如果你有一个二维数组,一个4乘9的矩阵,给每个元素分配一个0.1的值,会不会像这样?
这将是可行的,但它应该这样写。