[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 606 1...599600601602603604605606607608609610611612613...652 新评论 Sceptic Philozoff 2012.03.02 15:43 #6051 Roman.: 伙计们,请指教--我从经纪公司网站下载了终端设置,我想在策略测试器中用这个特定经纪公司的报价测试猫头鹰,但当我按下F2并下载报价时,测试器显示这个窗口...是否可以从选定的经纪公司下载报价? 罗曼,我只能给你一个建议:去你的经纪公司网站上看看他们的历史。 [删除] 2012.03.02 16:03 #6052 下午好。我想把我的.dll连接到一个脚本。试图测试这个例子。 #import "user32.dll" int MessageBoxA(int hWnd, string lpText, string lpCaption, int uType); #import int start() { MessageBoxA(0, "Some", "Some", 0); return; } 它起作用了,一个窗口弹了出来。写了我的dll。 #ifndef DLLTEST_H #define DLLTEST_H #pragma once extern "C" __declspec(dllexport) int __stdcall Test() { return 2; } #endif // DLLTEST_H 通过与专业人员的普通程序的连接进行了测试,它可以工作,一切正常。但是当我试图把它连接到一个脚本时,什么也没有发生,它甚至没有问我是否要连接到我的dll。显然,它不理解这个出口。所以我的问题是:它能理解什么样的出口?从Visual C++?或者是我做错了什么,需要用钻石做一些特殊的出口? Сергей 2012.03.02 16:59 #6053 下午好!在这个版本的随机指数中,我决定增加平线(在图表上)。在超买/超卖区。在删除历史上的 "旧 "行方面存在一个问题。 有什么问题,我应该注意什么? //+------------------------------------------------------------------+ //| Stochastic_flat | //| Copyright © 2012 Fox.RM | //| fox.rm@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2012 Fox.RM" #property link "fox.rm@mail.ru" //---- #property indicator_separate_window #property indicator_buffers 4 //---- fan style #property indicator_color1 Red #property indicator_color2 Black #property indicator_color3 Blue #property indicator_color4 DarkGray #property indicator_style1 0 #property indicator_style2 0 #property indicator_style3 0 #property indicator_style4 0 #property indicator_width4 2 #property indicator_level1 88.2 #property indicator_level2 11.8 #property indicator_levelcolor DarkGray #property indicator_levelstyle 0 //---- basic fan indicator parameters extern bool Show_STOCH_1=true; extern int K_period1=13; extern int S_period1=1; extern bool Show_STOCH_2=true; extern int K_period2=34; extern int S_period2=1; extern bool Show_STOCH_3=true; extern int K_period3=89; extern int S_period3=1; extern bool Show_STOCH_4=true; extern int K_period4=233; extern int S_period4=1; extern int delete=2; //---- indicator buffers double MainBuffer1[]; double MainBuffer2[]; double MainBuffer3[]; double MainBuffer4[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- stochastic line 1 (fast) if(Show_STOCH_1 ==true){Show_STOCH_1=DRAW_LINE; } else {Show_STOCH_1=DRAW_NONE; } SetIndexBuffer(0,MainBuffer1); SetIndexStyle(0,Show_STOCH_1,0); SetIndexLabel(0,"fast WPR ( "+K_period1+" )"); //---- stochastic line 2 (basic) if(Show_STOCH_2 ==true){Show_STOCH_2=DRAW_LINE; } else {Show_STOCH_2=DRAW_NONE; } SetIndexBuffer(1,MainBuffer2); SetIndexStyle(1,Show_STOCH_2); SetIndexLabel(1,"basic WPR ( "+K_period2+" )"); //---- stochastic line 3 (flat) if(Show_STOCH_3 ==true){Show_STOCH_3=DRAW_LINE; } else {Show_STOCH_3=DRAW_NONE; } SetIndexBuffer(2,MainBuffer3); SetIndexStyle(2,Show_STOCH_3,0); SetIndexLabel(2,"slow WPR ( "+K_period3+" )"); //---- stochastic line 4 (control) if(Show_STOCH_4 ==true){Show_STOCH_4=DRAW_LINE; } else {Show_STOCH_4=DRAW_NONE; } SetIndexBuffer(3,MainBuffer4); SetIndexStyle(3,Show_STOCH_4,0,2); SetIndexLabel(3,"control WPR ( "+K_period4+" )"); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Stochastic_flat"); } //---- return(0); //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectsDeleteAll(); //---- return(0); } //+------------------------------------------------------------------+ //| Stochastic_fan | //+------------------------------------------------------------------+ int start() { int i,shift,limit,y=0,counted_bars=IndicatorCounted(); double x1,x2; datetime y1,y11,y2,y22; //---- Plot defined timeframe on to current timeframe limit=Bars-counted_bars; //---stroim stohastik for(i=0,y=0;i<limit;i++,y++) { MainBuffer1[i]=iStochastic(NULL,0,K_period1,1,S_period1,0,0,MODE_MAIN,y); MainBuffer2[i]=iStochastic(NULL,0,K_period2,1,S_period2,0,0,MODE_MAIN,y); MainBuffer3[i]=iStochastic(NULL,0,K_period3,1,S_period3,0,0,MODE_MAIN,y); MainBuffer4[i]=iStochastic(NULL,0,K_period4,1,S_period4,0,0,MODE_MAIN,y); //---flat zona if (MainBuffer1[i] < 11.8) //---pervoe uslovie { x1=Low[i]; y1=Time[i]; //--- opredelyaem koordinaty dlya x1,y1 } if (MainBuffer1[i] > 88.2) //---vtoroe uslovie { x2=High[i]; y2=Time[i]; //--- opredelyaem koordinaty dlya x2,y2 } } for(i=Bars; i>0; i--) { //--- opredelyaem koordinaty dlya x11,y11 if (Low[i]<x1) { y11=Time[i]; } //--- opredelyaem koordinaty dlya x22,y22 if (High[i]>x2) { y22=Time[i]; } } string up_line = "upline"; string down_line = "downline"; flatlineup(up_line+TimeToStr(Time[i]), y2,x2,y22,x2,Red,1); flatlinedown(down_line+TimeToStr(Time[i]), y1,x1,y11,x1,Blue,1); dellline(up_line,i); //---- return(0); } //+------------------------------------------------------------------+ void flatlineup(string labebe,datetime time1,double price1,datetime time2,double price2,color colir, int W) { ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2); ObjectSet(labebe, OBJPROP_COLOR, colir); ObjectSet(labebe, OBJPROP_STYLE,0); ObjectSet(labebe, OBJPROP_RAY,0); ObjectSet(labebe, OBJPROP_WIDTH,W); ObjectSet(labebe, OBJPROP_BACK, true); } void flatlinedown(string labebe1,datetime time1,double price1,datetime time2,double price2,color colir, int W) { ObjectCreate(labebe1, OBJ_TREND, 0,time1,price1,time2,price2); ObjectSet(labebe1, OBJPROP_COLOR, colir); ObjectSet(labebe1, OBJPROP_STYLE,0); ObjectSet(labebe1, OBJPROP_RAY,0); ObjectSet(labebe1, OBJPROP_WIDTH,W); ObjectSet(labebe1, OBJPROP_BACK, true); } void dellline(string name_line, int i) //--- первый вариант с удалением линий { string name = ObjectName(i); if (StringFind(name,name_line)!=-1)ObjectDelete(name); // if (StringFind(name,name_line)!=-1)del1++; // if (del1>2)ObjectDelete(name); } void dellline(string name_line) //--- второй вариант с удалением линий { string name, dellname; bool del = false; for(int i=ObjectsTotal(); i>=0;i--) { if (del == false){ //---при этом условии должна происходить идентификация первой линии name = ObjectName(i); //--выполняется при первом обращении к функции dellname=name; del = true;} if (del == true){ if (StringFind(dellname,name_line)!=-1)ObjectDelete(dellname); dellname=name;} } } //---Были и промежуточные варианты, которые также не дали желаемого результата. 在下面的版本中,它成功了。但也不尽然。 上面的线在新的线出现时被删除,下面的线则立即被删除。为什么? //------ функция удаляющая ненужные линии void dellline(string name_line_up, string name_line_down) { string name_l; int obj=ObjectsTotal(OBJ_TREND); // --- в этой версии интуитивно добавил свойство OBJ_TREND for (int i=obj; i>=0; i--) { name_l=ObjectName(i); if(StringFind(name_l,name_line_up)!=-1)ObjectDelete(name_l); if(StringFind(name_l,name_line_down)!=-1)ObjectDelete(name_l); }} 在这里,我们有一个额外的问题,为什么在没有添加的情况下,该函数不能像它应该的那样工作? OBJ_TREND,因为在这种情况下,它似乎并没有做出任何根本性的改变? 然后我对主代码中的行名进行了一些实验。 //-------------- первый вариант (рабочий) string up_line = "upline_", down_line = "downline_"; flatlineup(up_line+TimeToStr(Time[i]), y2,x2,y22,x2,Red,1); flatlinedown(down_line+TimeToStr(Time[i]), y1,x1,y11,x1,Blue,1); dellline(up_line, down_line); //---TimeToStr(Time[i]) указывал в имени тренд лайн в теле функции //--------------- второй вариант (нерабочий) string up_line = "upline_"+TimeToStr(Time[i]); //--или пробовал StringConcatenate() string down_line = "downline_"+TimeToStr(Time[i]); //--или пробовал StringConcatenate() flatlineup(up_line, y2,x2,y22,x2,Red,1); flatlinedown(down_line, y1,x1,y11,x1,Blue,1); dellline(up_line, down_line); TimeToStr(Time[i])在主代码中被指定为一个变量。 问题。为什么第二种变体不工作(意思是说,函数 dellline(),当应用于第二种变体时,并没有删除名字被指定为 到up_line和down_line的变量? И 最后一个问题 我从以前的帖子中复制一下,它在截图上。可以找到它的答案 不可能。 谢谢你! Alekseu Fedotov 2012.03.02 17:58 #6054 rustein:谢谢你,我在有条件的情况下试了一下。它仍然给出一个错误。 试试这样的方式 if(SummBullLots()>0){double BullAveragePrice =NormalizeDouble(BullSummOpenPrice()/SummBullLots(),Digits); } khorosh 2012.03.02 18:12 #6055 yosuf: 请告诉我,是否有一个指标可以显示某一时间的未结头寸数量?如果能显示出其中有多少是买入的,有多少是卖出的,那就更好了。 有的。 附加的文件: iexposure4.mq4 11 kb Vadim Zhunko 2012.03.02 20:32 #6056 Solree: 下午好。我想把我的.dll连接到一个脚本。试图测试这个例子。 它起作用了,一个窗口弹了出来。我已经写了我的dll。 我通过连接到plusses上的常规程序进行了检查,一切正常,一切正常。但是当我试图把它连接到一个脚本时,什么也没有发生,它甚至没有问我是否要连接到我的dll。显然,它不理解这个出口。所以我的问题是:它能理解什么样的出口?从Visual C++?或者是我做错了什么,需要用钻石做一些特殊的出口? 在MT4文件夹中,有一个用于MQL4所有情况的C++示例代码。编译该代码并在其中粘贴你自己的代码。你会立即看到你的和例子之间的区别。 Григорий 2012.03.02 21:13 #6057 我想在一个文件中记录EA的行动 我从MQL编辑器的手册中抽取了一个例子,并根据我的需要稍作修改 int init() { int handle=FileOpen("OrdersReport.csv",FILE_WRITE|FILE_CSV,"\t"); if(handle<0) return(0); // запишем заголовок в файл FileWrite(handle,"#","Цена открытия","Время открытия","Символ","Лоты"); return(0); } int deinit() { return(0); } int start() { ......................... ........................... int handle=FileOpen("OrdersReport.csv",FILE_READ | FILE_WRITE,"\t"); if(handle<0) return(0); // записываем в файл только открытые ордера for(int pos=0;pos<OrdersTotal();pos++) { if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue; FileWrite(handle,OrderTicket(),OrderOpenPrice(),OrderOpenTime(),OrderSymbol(),OrderLots()); } FileClose(handle); //Закрытие файла, ранее открытого функцией FileOpen(). } return(0); } 结果,文件OrdersReport.csv是空的,尽管订单已经打开。 costy_ 2012.03.02 23:38 #6058 griha: 我想在一个文件中记录EA的行动 我从MQL编辑器的手册中抽取了一个例子,根据我自己的需要稍作修改 结果,文件OrdersReport.csv是空的,尽管订单已经打开。 这样试试吧。 //+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2012, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ int handle; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { handle=FileOpen("OrdersReport.csv",FILE_WRITE|FILE_CSV,"\t"); if(handle<0) return(0); // запишем заголовок в файл FileWrite(handle,"#","Цена открытия","Время открытия","Символ","Лоты"); return(0); } int deinit() { FileClose(handle); //Закрытие файла, ранее открытого функцией FileOpen(). return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { if(handle<0) return(0); // записываем в файл только открытые ордера for(int pos=0;pos<OrdersTotal();pos++) if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) FileWrite(handle,OrderTicket(),OrderOpenPrice(),OrderOpenTime(),OrderSymbol(),OrderLots()); return(0); } //+------------------------------------------------------------------+ costy_ 2012.03.02 23:58 #6059 Fox_RM: 下午好!在这个版本的随机指数中,我决定增加扁平线的构造(在图表上)。 不能。 谢谢你! //------ функция удаляющая ненужные линии void dellline(string name_line_up,string name_line_down) { string name_l; int obj=ObjectsTotal(); // найдем количество объектов for(int i=obj-1; i>=0; i--) // obj-1 т.к. >=0 { name_l=ObjectName(i); // узнаем имя if(ObjectType(name_l)!=OBJ_TREND)continue; // если не трендлиния продолжим цикл * for(int i=obj-1; i>=0; i--) if(StringFind(name_l,name_line_up)!=-1)ObjectDelete(name_l); if(StringFind(name_l,name_line_down)!=-1)ObjectDelete(name_l); } } //+------------------------------------------------------------------+ 创建趋势线,名称=time1+price1+time2,便于在deinit中删除。 Роман 2012.03.03 00:40 #6060 Mathemat: 罗曼,我只能给你一个建议:去DC的网站看看他们的历史。 我做到了。已经写信给他们的客户支持。谢谢你,Mathemat。 1...599600601602603604605606607608609610611612613...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
下午好。我想把我的.dll连接到一个脚本。试图测试这个例子。
它起作用了,一个窗口弹了出来。写了我的dll。
通过与专业人员的普通程序的连接进行了测试,它可以工作,一切正常。但是当我试图把它连接到一个脚本时,什么也没有发生,它甚至没有问我是否要连接到我的dll。显然,它不理解这个出口。所以我的问题是:它能理解什么样的出口?从Visual C++?或者是我做错了什么,需要用钻石做一些特殊的出口?
在删除历史上的 "旧 "行方面存在一个问题。 有什么问题,我应该注意什么?
在下面的版本中,它成功了。但也不尽然。 上面的线在新的线出现时被删除,下面的线则立即被删除。为什么?
在这里,我们有一个额外的问题,为什么在没有添加的情况下,该函数不能像它应该的那样工作?
OBJ_TREND,因为在这种情况下,它似乎并没有做出任何根本性的改变?
然后我对主代码中的行名进行了一些实验。
TimeToStr(Time[i])在主代码中被指定为一个变量。
问题。为什么第二种变体不工作(意思是说,函数
dellline(),当应用于第二种变体时,并没有删除名字被指定为
到up_line和down_line的变量?
И 最后一个问题 我从以前的帖子中复制一下,它在截图上。可以找到它的答案
不可能。
谢谢你!
谢谢你,我在有条件的情况下试了一下。
它仍然给出一个错误。
试试这样的方式
if(SummBullLots()>0){double BullAveragePrice =NormalizeDouble(BullSummOpenPrice()/SummBullLots(),Digits); }
请告诉我,是否有一个指标可以显示某一时间的未结头寸数量?如果能显示出其中有多少是买入的,有多少是卖出的,那就更好了。
下午好。我想把我的.dll连接到一个脚本。试图测试这个例子。
它起作用了,一个窗口弹了出来。我已经写了我的dll。
我通过连接到plusses上的常规程序进行了检查,一切正常,一切正常。但是当我试图把它连接到一个脚本时,什么也没有发生,它甚至没有问我是否要连接到我的dll。显然,它不理解这个出口。所以我的问题是:它能理解什么样的出口?从Visual C++?或者是我做错了什么,需要用钻石做一些特殊的出口?
在MT4文件夹中,有一个用于MQL4所有情况的C++示例代码。编译该代码并在其中粘贴你自己的代码。你会立即看到你的和例子之间的区别。
我从MQL编辑器的手册中抽取了一个例子,并根据我的需要稍作修改
结果,文件OrdersReport.csv是空的,尽管订单已经打开。
我想在一个文件中记录EA的行动
我从MQL编辑器的手册中抽取了一个例子,根据我自己的需要稍作修改
结果,文件OrdersReport.csv是空的,尽管订单已经打开。
这样试试吧。
不能。
谢谢你!
罗曼,我只能给你一个建议:去DC的网站看看他们的历史。