[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 232 1...225226227228229230231232233234235236237238239...537 新评论 [删除] 2011.03.11 04:59 #2311 drknn: 你需要以编程方式请求该级别的价格。要做到这一点,你必须将 "Fibo "对象放在图表上并进行配置(全部以编程方式进行)。这并不像第一眼看上去那么容易。然而,神明不会烧毁陶器。我曾经不得不玩过Fibo水平。而现在我正在处理这些层面的工作。一般来说,如果你愿意,你可以想出办法。 下面是一个在图表上创建Fibo的代码例子。 我不得不做一个子程序来要求水平的价格。这里是(如果你想的话,你可以想办法)。 也就是说,我们应该以编程方式将斐波那契对象添加到斐波那契扇形中,并仅通过这种方式找出该级别的价格。 我说对了吗? Artyom Trishkin 2011.03.11 05:13 #2312 fury2006: 换句话说,我们需要将斐波那契对象添加到斐波那契向量中,并仅通过这种方式找出水平的价格。 我说对了吗? 你不必在图表上附加一个标准的Fibo对象。考虑到现有的条件,你可以简单地以编程方式计算出所有的Fibo水平。 将它们输入变量或数组中,并将价格与自己计算的这些水平进行比较。这正是我所做的...。尽管--所有这些都是IMHO。 [删除] 2011.03.11 05:14 #2313 artmedia70: 没有必要在图表上放一个标准的Fibo对象。你可以简单地根据现有条件以编程方式计算出所有的飞博水平。 把它们放在变量或数组中,并将价格与你计算的这些水平进行比较。这正是我所做的...。尽管--所有这些都是IMHO。 能否请你写一个代码例子? Artyom Trishkin 2011.03.11 05:47 #2314 fury2006: 能否请你写一个代码例子? 这比弗拉基米尔提供给你的那个更复杂...:)) [删除] 2011.03.11 07:04 #2315 artmedia70: 而且它比弗拉基米尔建议的那个更复杂...:)) 我可能更喜欢它 :)此外,你也不想在屏幕上有多余的物体,反正有很多,任何不必要的物体都会妨碍你。 Artyom Trishkin 2011.03.11 07:39 #2316 fury2006: 好吧,也许我会更喜欢它 :)此外,我不希望屏幕上有额外的物体。 那里已经有很多了,任何不必要的东西只会阻碍 。 我的代码与为其编写的专家顾问所获得的数据紧密结合。该函数只是必要计算的一部分,对你不会有任何实际价值--只作为自我理解的教程。而这是与代码的其余部分,所有的初步计算都是在这里进行的。 如果我让它通用,它就会工作得更慢,但我不希望这样......:) 但是不客气。这个函数是从Excel改写的,我在那里检查了它的计算结果。两个参数被传入其中--ZigZag的断裂(下部或上部,取决于所开仓位的类型)和纤维的价格水平23.6。纤维没有像一般人接受的那样被绘制出来,但是价格被认为已经突破了23.6纤维,并且高于事先计算的巩固水平。纤维的零点被放在ZZ的断点上,并在23.6(当它被打破时)打开一个姿势。剩余的水平被写入全局水平上声明的变量中,并随后进入订单数组,任何未结头寸 的水平都从中获取。 //========================================================================================================= void CalcFiboLevel(double priceZZ, double price23) // Рассчитывает уровни Фибы по нулевому и 23.6 значениям цен { double A2,A3,A4,A5,A6,A7,A8,A9,A10,A11, B2,B3,B4,B5,B6,B7,B8,B9,B10,B11; A2 = 0; // Уровни фибы A3 = 23.6; A4 = 38.2; A5 = 50.0; A6 = 61.8; A7 = 78.6; A8 = 100.0; A9 = 161.8; A10= 261.8; A11= 423.6; B2 = priceZZ; // Цена нулевого уровня фибы (нижний/верхний перелом ЗигЗага) B3 = price23; // Цена уровня 23.6 фибы (цена открытия позы) B4 = ((B3-B2) *(A4-A2) +(A3-A2) *B2)/(A3 -A2); B5 = ((B4-B3) *(A5-A3) +(A4-A3) *B3)/(A4 -A3); B6 = ((B5-B4) *(A6-A4) +(A5-A4) *B4)/(A5 -A4); B7 = ((B6-B5) *(A7-A5) +(A6-A5) *B5)/(A6 -A5); B8 = ((B7-B6) *(A8-A6) +(A7-A6) *B6)/(A7 -A6); B9 = ((B8-B7) *(A9-A7) +(A8-A7) *B7)/(A8 -A7); B10= ((B9-B8) *(A10-A8)+(A9-A8) *B8)/(A9 -A8); B11= ((B10-B9)*(A11-A9)+(A10-A9)*B9)/(A10-A9); Fibo38_Price = B4; // ((B3-B2)*(A4-A2)+(A3-A2)*B2)/(A3-A2) Fibo50_Price = B5; // ((B4-B3)*(A5-A3)+(A4-A3)*B3)/(A4-A3) Fibo61_Price = B6; // ((B5-B4)*(A6-A4)+(A5-A4)*B4)/(A5-A4) Fibo78_Price = B7; // ((B6-B5)*(A7-A5)+(A6-A5)*B5)/(A6-A5) Fibo100_Price = B8; // ((B7-B6)*(A8-A6)+(A7-A6)*B6)/(A7-A6) Fibo161_Price = B9; // ((B8-B7)*(A9-A7)+(A8-A7)*B7)/(A8-A7) Fibo261_Price = B10; // ((B9-B8)*(A10-A8)+(A9-A8)*B8)/(A9-A8) Fibo423_Price = B11; // ((B10-B9)*(A11-A9)+(A10-A9)*B9)/(A10-A9) return; } 至于它的用法,我必须把整个专家顾问的内脏掏出来才能了解它...... Dmitry Tolmachev 2011.03.11 09:44 #2317 artmedia70: 我的代码与它所编写的专家顾问获得的数据紧密相连。该函数只是必要计算的一部分,对你不会有任何实际价值--只是作为一个自我理解的教程。而这与代码的其他部分一起,所有的初步计算都是在这里进行的。 如果我让它普及,它就会更慢,而我不希望这样......:) 但是不客气。这个函数是从Excel改写的,我在那里检查了它的计算结果。两个参数被传递给它--ZigZag断点(下部或上部,取决于所开仓位的类型)和纤维的价格水平23.6。纤维没有像一般人接受的那样被绘制出来,但是价格被认为已经突破了23.6纤维,并且高于事先计算的巩固水平。纤维的零点被放在ZZ的断点上,并在23.6(当它被打破时)打开一个姿势。剩余的水平被写入全局水平上声明的变量中,并随后进入订单数组,任何未结头寸的水平都从中获取。 至于如何使用它,你应该把整个专家顾问开膛破肚,让它变得清晰... 这很好,你给了我一个想法。 [删除] 2011.03.11 09:50 #2318 大家好!请帮助我结合以下事情。结果应该是:两条线跟随价格,一条比Ask低20点.., 此外,如果价格每变化1个点,我就会收到提示音。 所有这些都能单独正常工作。提前感谢! 1)在 "问价 "下方的线,20个点。 //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int start() { ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask-20*Point) ; ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask-20*Point); return(0); } //+------------------------------------------------------------------+ 2) 该线在Ask上方20点。 //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int start() { ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask+20*Point) ; ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask+20*Point); return(0); } //+------------------------------------------------------------------+ 3)价格随时间变化 的速度。 #property show_inputs extern int pips=2; //изменение аск extern double Time_=0.1; //c. ~ tick extern bool все_из_обзора_рынка=true; // только текущий символ - false int i, l, p, количество_символов; string val[], на_экран; int Ask_save[]; //+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= void start(){ количество_символов=SymbolsList(val, true);//запись в массив val инструменты и их количество вызов функции SymbolsList ArrayResize(Ask_save,количество_символов); if(количество_символов == -1){ Alert("Ошибка открытия файла в SymbolsList(string &Symbols[], bool Selected)"); return;} if(!все_из_обзора_рынка){ количество_символов=1; ArrayResize(Ask_save,количество_символов); ArrayResize(val,количество_символов); val[0]=Symbol(); } while(true&&!IsStopped()){ //если разрешить и не отанавливать скрипт продолжим Alert("пересчитаем через "+Time_+" сек."); for(i=0;i<количество_символов;i++){//посчитаем стоимость спреда для инструментов из обзора рынка if((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT))>=pips){ Alert(val[i]+","+Period()+" изменился вниз на "+DoubleToStr((Ask_save[i]-MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)),0)+" pips"); PlaySound("timeout.wav"); } if((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i])>=pips){ Alert(val[i]+","+Period()+" изменился вверх на "+DoubleToStr((MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT)-Ask_save[i]),0)+" pips"); PlaySound("email.wav"); } Ask_save[i]=MarketInfo(val[i],MODE_ASK)/MarketInfo(val[i],MODE_POINT); } Sleep(Time_*1000);//пауза сек. } /* количество_символов=SymbolsList(val, true);//запись в массив val инструменты и их количество вызов функции SymbolsList if(количество_символов == -1){ Alert("Ошибка открытия файла в SymbolsList(string &Symbols[], bool Selected)"); return;} while(true&&!IsStopped()){ //если разрешить и не отанавливать скрипт продолжим на_экран="\r\n"; //отступ for(i=0;i<количество_символов;i++)//посчитаем стоимость спреда для инструментов из обзора рынка на_экран=на_экран+val[i]+" стоимость спреда = " + DoubleToStr(MarketInfo(val[i],MODE_SPREAD)*MarketInfo(val[i],MODE_TICKVALUE),0)+"\r\n"; Comment(на_экран);//выведем на экран Alert("Пересчитаем");//сигнал Sleep(3000);//пауза 3 сек. } */ } void deinit(){Comment("");} //+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= //+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= // функция читает из обзора рынка все фин.инстр. //+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= int SymbolsList(string &Symbols[], bool Selected){ int Offset, SymbolsNumber; string SymbolsFileName; if(Selected) SymbolsFileName = "symbols.sel"; else SymbolsFileName = "symbols.raw"; int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ); if(hFile < 0) return(-1); if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116; } else { SymbolsNumber = FileSize(hFile) / 1936; Offset = 1924; } ArrayResize(Symbols, SymbolsNumber); if(Selected) FileSeek(hFile, 4, SEEK_SET); for(int i = 0; i < SymbolsNumber; i++){Symbols[i] = FileReadString(hFile, 12); FileSeek(hFile, Offset, SEEK_CUR);} FileClose(hFile); return(SymbolsNumber); } [删除] 2011.03.11 17:21 #2319 请解释为什么这段代码有时会冻结在一个地方,而你必须重新启动终端来恢复它? int ticket,err; Alert("nachalo"); ticket = OrderSend(Symbol (), OP_BUY, 1, Ask, 10,0,0, "dsgdsf", 0, 0, CLR_NONE); err = GetLastError(); Alert (err); Alert("konec"); OrderClose (ticket,1,Bid,5,CLR_NONE); Alert ("zakrito"); Artyom Trishkin 2011.03.11 17:41 #2320 globad:大家好!请帮助我结合以下事情。结果应该是:两条线跟随价格,一条比Ask低20点.., 此外,如果价格每变化1个点,我就会收到提示音。 所有这些都能单独正常工作。提前感谢! 1)在 "问价 "下方的线,20个点。 2) 该线在Ask上方20点。 3)价格随时间变化的速度。 似乎已经很无聊了...这是最基本的,华生。 ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask-20*Point) ; 这是一个单行的名称。 提示:查一下第二行的名字。它与第一个不同吗? 是的,为什么要继续建造一个已经建成的设施? //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int start() { ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask+20*Point) ; ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask+20*Point); return(0); } //+------------------------------------------------------------------+ 现在看看区别吧。 //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int start() { if (ObjectFind("MyPriceLine")<0) ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask+20*Point) ; ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask+20*Point); return(0); } //+------------------------------------------------------------------+ 1...225226227228229230231232233234235236237238239...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你需要以编程方式请求该级别的价格。要做到这一点,你必须将 "Fibo "对象放在图表上并进行配置(全部以编程方式进行)。这并不像第一眼看上去那么容易。然而,神明不会烧毁陶器。我曾经不得不玩过Fibo水平。而现在我正在处理这些层面的工作。一般来说,如果你愿意,你可以想出办法。
下面是一个在图表上创建Fibo的代码例子。
我不得不做一个子程序来要求水平的价格。这里是(如果你想的话,你可以想办法)。
换句话说,我们需要将斐波那契对象添加到斐波那契向量中,并仅通过这种方式找出水平的价格。 我说对了吗?
将它们输入变量或数组中,并将价格与自己计算的这些水平进行比较。这正是我所做的...。尽管--所有这些都是IMHO。
没有必要在图表上放一个标准的Fibo对象。你可以简单地根据现有条件以编程方式计算出所有的飞博水平。
把它们放在变量或数组中,并将价格与你计算的这些水平进行比较。这正是我所做的...。尽管--所有这些都是IMHO。
能否请你写一个代码例子?
而且它比弗拉基米尔建议的那个更复杂...:))
好吧,也许我会更喜欢它 :)此外,我不希望屏幕上有额外的物体。 那里已经有很多了,任何不必要的东西只会阻碍 。
我的代码与为其编写的专家顾问所获得的数据紧密结合。该函数只是必要计算的一部分,对你不会有任何实际价值--只作为自我理解的教程。而这是与代码的其余部分,所有的初步计算都是在这里进行的。
如果我让它通用,它就会工作得更慢,但我不希望这样......:)
但是不客气。这个函数是从Excel改写的,我在那里检查了它的计算结果。两个参数被传入其中--ZigZag的断裂(下部或上部,取决于所开仓位的类型)和纤维的价格水平23.6。纤维没有像一般人接受的那样被绘制出来,但是价格被认为已经突破了23.6纤维,并且高于事先计算的巩固水平。纤维的零点被放在ZZ的断点上,并在23.6(当它被打破时)打开一个姿势。剩余的水平被写入全局水平上声明的变量中,并随后进入订单数组,任何未结头寸 的水平都从中获取。
至于它的用法,我必须把整个专家顾问的内脏掏出来才能了解它......
我的代码与它所编写的专家顾问获得的数据紧密相连。该函数只是必要计算的一部分,对你不会有任何实际价值--只是作为一个自我理解的教程。而这与代码的其他部分一起,所有的初步计算都是在这里进行的。
如果我让它普及,它就会更慢,而我不希望这样......:)
但是不客气。这个函数是从Excel改写的,我在那里检查了它的计算结果。两个参数被传递给它--ZigZag断点(下部或上部,取决于所开仓位的类型)和纤维的价格水平23.6。纤维没有像一般人接受的那样被绘制出来,但是价格被认为已经突破了23.6纤维,并且高于事先计算的巩固水平。纤维的零点被放在ZZ的断点上,并在23.6(当它被打破时)打开一个姿势。剩余的水平被写入全局水平上声明的变量中,并随后进入订单数组,任何未结头寸的水平都从中获取。
至于如何使用它,你应该把整个专家顾问开膛破肚,让它变得清晰...
大家好!请帮助我结合以下事情。结果应该是:两条线跟随价格,一条比Ask低20点..,
此外,如果价格每变化1个点,我就会收到提示音。
所有这些都能单独正常工作。提前感谢!
1)在 "问价 "下方的线,20个点。
2) 该线在Ask上方20点。
3)价格随时间变化 的速度。
请解释为什么这段代码有时会冻结在一个地方,而你必须重新启动终端来恢复它?
大家好!请帮助我结合以下事情。结果应该是:两条线跟随价格,一条比Ask低20点..,
此外,如果价格每变化1个点,我就会收到提示音。
所有这些都能单独正常工作。提前感谢!
1)在 "问价 "下方的线,20个点。
2) 该线在Ask上方20点。
3)价格随时间变化的速度。
似乎已经很无聊了...这是最基本的,华生。
这是一个单行的名称。
提示:查一下第二行的名字。它与第一个不同吗?
是的,为什么要继续建造一个已经建成的设施?
现在看看区别吧。