[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 308 1...301302303304305306307308309310311312313314315...432 新评论 [删除] 2013.04.23 06:36 #3071 如何在不重启mt4的情况下运行我刚刚编辑的脚本? [删除] 2013.04.23 06:59 #3072 我正在尝试,但没有成功,我在代码中得到很多错误((. [删除] 2013.04.23 07:42 #3073 你会分享一些东西吗?) [删除] 2013.04.23 07:49 #3074 可能是有用的。这个工作很好!在元编辑器中,按F5键进行编译。重要提示:元编辑器必须从与终端相同的文件夹中运行。 [删除] 2013.04.23 07:56 #3075 亚历克斯,你是来找我的吗?我是mql4的新手,我想弄清楚这个代码。#property indicator_chart_window#property indicator_buffers 2 Extern int TimeFrame=0;//如果=0,则为当前的。 Extern int Distanse=0;//以点为单位的线与分形的距离 extern string FrApNam="Ap";//对应于分形向上的线的名称。 extern string FrDnNam="Dn";//根据分形向下的线的名称。 extern color ClAp=Blue;//color line对应于Fractal upwards。 Extern color ClDn=Red;//根据Fractal Down,线条的颜色。 外部 bool comment=true;//允许评论的权限//-----------------------------------------------------------------------------+ 双重FrPrise,znach1,znach2。 双重FrApPrise=0,FrDnPrise=0。 double ind_buffer1[]; double ind_buffer2[];//+----------------------------------------------------------------------------+ 空白的init(){if(TimeFrame==0)}TimeFrame=Period();} SetIndexBuffer(0,ind_buffer1);//Buffer SetIndexBuffer(1,ind_buffer2)。 返回;} 空白的deinit(){ 返回;} //+----------------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted()。 int限制。 双重临时工。 int i, j,k; if(counted_bars<0) return(-1); 如果(counted_bars>0) counted_bars--。 limit=Bars-counted_bars。//-----------------------------------------------------------------------------+ LineAp()。 LineDn()。 double FAP=NormalizeDouble((FrApPris-Distanse*Point),5);//Normalize double FDP=NormalizeDouble((FrDnPrise+Distanse*Point),5)。 int diap=MathRound((FrApPrie-FrDnPrise)/Point)。 ind_buffer1[0]=FAP。 ind_buffer2[1]=FDP。 Comment("TimeFrame="+TimeFrame+") "\nApPrise =",FAP。 "\nDnPrise =",FDP。 "nFractal Channel =" ,diap+"Point")。 return(0); }//-----------------------------------------------------------------------------+//根据名称搜索水平线,如果价格发生变化,则重新绘制|。 //-----------------------------------------------------------------------------+ 空白的LineDn(){ FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS))。 FrPrise=NormalizeDouble(FrPrise-Distance*Point,MarketInfo(Symbol(),MODE_DIGITS))。 //Comment(FrPrise)。 如果(ObjectFind(FrDnNam)==0){ 如果(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){返回;}}。 FrDnPrise=FrPrise。 ObjectDelete(FrDnNam)。 SetHLine(ClDn,FrDnNam,FrDnPrise,0,1)。 WindowRedraw()。 返回;} //-----------------------------------------------------------------------------+//按名称搜索水平线,如果价格有变化则重画 //-----------------------------------------------------------------------------+ 空白的LineAp(){ FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS))。 FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS))。 如果(ObjectFind(FrApNam)==0){ 如果(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){返回;}}。 FrApPrise=FrPrise。 ObjectDelete(FrApNam)。 SetHLine(ClAp,FrApNam,FrApPrise,0,1)。 WindowRedraw()。 返回;}//-----------------------------------------------------------------------------+ //| 说明:搜索最近的分形。返回一个价格水平。//+----------------------------------------------------------------------------+//| 参数: |//| sy - 仪器名称(""或NULL - 当前符号)|//| tf - 时间框架 ( 0 - 当前 TF) ||//|模式--分形类型(MODE_LOWER|MODE_UPPER)|//+----------------------------------------------------------------------------+ double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) { 如果(sy=="" || sy=="0") sy=Symbol(); double f=0。 int d=MarketInfo(sy, MODE_DIGITS), s; 如果(d==0) 如果(StringFind(sy, "JPY"<0) d=4; 否则d=2; for (s=2; s<100; s++) { f=iFractals(sy, tf, mode, s)。 如果(f!=0) 返回(NormalizeDouble(f, d)) } Print("FindNearFractal(): Fractal not found")。 return(0);}//+----------------------------------------------------------------------------+//| 说明:设置对象OBJ_HLINE水平线。//+----------------------------------------------------------------------------+//| 参数: |//| cl - 线条颜色|//| nm - 名称 ("" - 当前条形图的开盘时间)//| p1 - 价格水平(0 - Bid)|//| st - 线条风格(0 - 简单线条)|//| wd - 线条宽度(0 - 默认)|//+----------------------------------------------------------------------------+ void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) { 如果(nm=="")nm=DoubleToStr(Time[0], 0); 如果(p1<=0)p1=Bid。 如果(ObjectFind(nm)<0)ObjectCreate(nm, OBJ_HLINE, 0, 0,0;) ObjectSet(nm, OBJPROP_PRICE1, p1)。 ObjectSet(nm, OBJPROP_COLOR , cl)。 ObjectSet(nm, OBJPROP_STYLE , st)。 ObjectSet(nm, OBJPROP_WIDTH , wd)。}有必要为这个指标编写一个专家顾问,它将在М1和М5时间段内通过上、下限价格。 [ARCHIVE]Any rookie question, so [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. [ARCHIVE] Any rookie question, Boris 2013.04.23 08:35 #3076 palomnik: 亚历克斯,你是来找我的吗?我是mql4的新手,我想弄清楚这个代码。#property indicator_chart_window #property indicator_buffers 2 extern int TimeFrame=0;//Если=0, то текуший extern int Distanse=0;//Дистанция линии от фрактала в пунктах extern string FrApNam="Ap";//Имя линии соотв.Фракталу вверх extern string FrDnNam="Dn";//Имя линии соотв.Фракталу вниз extern color ClAp=Blue;//Цвет линии соотв.Фракталу вверх extern color ClDn=Red;//Цвет линии соотв.Фракталу вниз extern bool comment=true;//Разрещение на комментарий //-----------------------------------------------------------------------------+ double FrPrise,znach1,znach2; double FrApPrise=0,FrDnPrise=0; double ind_buffer1[]; double ind_buffer2[]; //+----------------------------------------------------------------------------+ void init() {if(TimeFrame==0){TimeFrame=Period();} SetIndexBuffer(0,ind_buffer1);//КОРОБКА SetIndexBuffer(1,ind_buffer2); return;} void deinit(){ return;} //+----------------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int limit; double tmp; int i, j,k; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //-----------------------------------------------------------------------------+ LineAp(); LineDn(); double FAP=NormalizeDouble((FrApPrise-Distanse*Point),5);//ЗНАЧЕНИЕ double FDP=NormalizeDouble((FrDnPrise+Distanse*Point),5); int diap=MathRound((FrApPrise-FrDnPrise)/Point); ind_buffer1[0]=FAP; ind_buffer2[1]=FDP; Comment("TimeFrame="+TimeFrame+ "\nApPrise =",FAP, "\nDnPrise =",FDP, "\nFractal Channel =" ,diap+"Point"); return(0); } //-----------------------------------------------------------------------------+ // Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+ void LineDn(){ FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS)); FrPrise=NormalizeDouble(FrPrise-Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS)); //Comment(FrPrise); if(ObjectFind(FrDnNam)==0){ if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}} FrDnPrise=FrPrise; ObjectDelete(FrDnNam); SetHLine(ClDn,FrDnNam,FrDnPrise,0,1); WindowRedraw(); return;} //-----------------------------------------------------------------------------+ // Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+ void LineAp(){ FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS)); FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS)); if(ObjectFind(FrApNam)==0){ if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}} FrApPrise=FrPrise; ObjectDelete(FrApNam); SetHLine(ClAp,FrApNam,FrApPrise,0,1); WindowRedraw(); return;} //-----------------------------------------------------------------------------+ //| Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" или NULL - текущий символ) | //| tf - таймфрейм ( 0 - текущий ТФ) | //| mode - тип фрактала (MODE_LOWER|MODE_UPPER) | //+----------------------------------------------------------------------------+ double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) { if (sy=="" || sy=="0") sy=Symbol(); double f=0; int d=MarketInfo(sy, MODE_DIGITS), s; if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2; for (s=2; s<100; s++) { f=iFractals(sy, tf, mode, s); if (f!=0) return(NormalizeDouble(f, d)); } Print("FindNearFractal(): Фрактал не найден"); return(0); } //+----------------------------------------------------------------------------+ //| Описание : Установка объекта OBJ_HLINE горизонтальная линия | //+----------------------------------------------------------------------------+ //| Параметры: | //| cl - цвет линии | //| nm - наименование ("" - время открытия текущего бара) | //| p1 - ценовой уровень (0 - Bid) | //| st - стиль линии (0 - простая линия) | //| wd - ширина линии (0 - по умолчанию) | //+----------------------------------------------------------------------------+ void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) { if (nm=="") nm=DoubleToStr(Time[0], 0); if (p1<=0) p1=Bid; if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0); ObjectSet(nm, OBJPROP_PRICE1, p1); ObjectSet(nm, OBJPROP_COLOR , cl); ObjectSet(nm, OBJPROP_STYLE , st); ObjectSet(nm, OBJPROP_WIDTH , wd); } Надо к данному индикатору написать советник.Передающий верхнюю и нижнюю цены.по М1 и М5 таймфреймам. 不知道src 是用来做什么的?删除你的涂鸦! david2 2013.04.23 09:07 #3077 我如何在我的EA中实现这个功能?当任何海湾订单的TP或SL被触发时,所有海湾订单应被关闭。 [删除] 2013.04.23 09:13 #3078 大卫,这不是一个功能,它是一个小型的专家顾问,简而言之,它是在样本中比较有多少订单和多少订单被关闭,一旦我处理好从指标到专家顾问 的数据传输,我将提供详细的帮助,我已经给出了上述职权范围。 [删除] 2013.04.23 11:50 #3079 我从来没有听说过,我只是不理解它。我实际上描述了这个问题,但我得到了某种沉默(()。https://forum.mql4.com/ru/52892/page308 palomnik 23.04.2013 09:56 Vadim Zhunko 2013.04.23 12:58 #3080 palomnik: 先生,有没有人明白如何从指标中传递数值到EA?我需要帮助,我自己也不明白,只是一瞬间,然后就结束了。https://forum.mql4.com/ru/52892/page308 palomnik 23.04.2013 09:56 有很多不同的方法可以做到这一点。1.通过一个全局变量。2.通过文件。3.通过iCustom()。4.通过全局图形变量。5.绘图。你可以将数据从一个终端传输到另一个终端。或者在一个终端将数据从一个窗口转移到另一个窗口,不受MT4全局变量的限制。 1...301302303304305306307308309310311312313314315...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
可能是有用的。这个工作很好!
在元编辑器中,按F5键进行编译。
重要提示:元编辑器必须从与终端相同的文件夹中运行。
亚历克斯,你是来找我的吗?我是mql4的新手,我想弄清楚这个代码。
#property indicator_chart_window
#property indicator_buffers 2
Extern int TimeFrame=0;//如果=0,则为当前的。
Extern int Distanse=0;//以点为单位的线与分形的距离
extern string FrApNam="Ap";//对应于分形向上的线的名称。
extern string FrDnNam="Dn";//根据分形向下的线的名称。
extern color ClAp=Blue;//color line对应于Fractal upwards。
Extern color ClDn=Red;//根据Fractal Down,线条的颜色。
外部 bool comment=true;//允许评论的权限
//-----------------------------------------------------------------------------+
双重FrPrise,znach1,znach2。
双重FrApPrise=0,FrDnPrise=0。
double ind_buffer1[];
double ind_buffer2[];
//+----------------------------------------------------------------------------+
空白的init()
{if(TimeFrame==0)}TimeFrame=Period();}
SetIndexBuffer(0,ind_buffer1);//Buffer
SetIndexBuffer(1,ind_buffer2)。
返回;}
空白的deinit(){
返回;}
//+----------------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted()。
int限制。
双重临时工。
int i, j,k;
if(counted_bars<0) return(-1);
如果(counted_bars>0) counted_bars--。
limit=Bars-counted_bars。
//-----------------------------------------------------------------------------+
LineAp()。
LineDn()。
double FAP=NormalizeDouble((FrApPris-Distanse*Point),5);//Normalize
double FDP=NormalizeDouble((FrDnPrise+Distanse*Point),5)。
int diap=MathRound((FrApPrie-FrDnPrise)/Point)。
ind_buffer1[0]=FAP。
ind_buffer2[1]=FDP。
Comment("TimeFrame="+TimeFrame+")
"\nApPrise =",FAP。
"\nDnPrise =",FDP。
"nFractal Channel ="
,diap+"Point")。
return(0);
}
//-----------------------------------------------------------------------------+
//根据名称搜索水平线,如果价格发生变化,则重新绘制|。
//-----------------------------------------------------------------------------+
空白的LineDn(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS))。
FrPrise=NormalizeDouble(FrPrise-Distance*Point,MarketInfo(Symbol(),MODE_DIGITS))。
//Comment(FrPrise)。
如果(ObjectFind(FrDnNam)==0){
如果(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){返回;}}。
FrDnPrise=FrPrise。
ObjectDelete(FrDnNam)。
SetHLine(ClDn,FrDnNam,FrDnPrise,0,1)。
WindowRedraw()。
返回;}
//-----------------------------------------------------------------------------+
//按名称搜索水平线,如果价格有变化则重画
//-----------------------------------------------------------------------------+
空白的LineAp(){
FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS))。
FrPrise=NormalizeDouble(FrPrise+Distanse*Point,MarketInfo(Symbol(),MODE_DIGITS))。
如果(ObjectFind(FrApNam)==0){
如果(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){返回;}}。
FrApPrise=FrPrise。
ObjectDelete(FrApNam)。
SetHLine(ClAp,FrApNam,FrApPrise,0,1)。
WindowRedraw()。
返回;}
//-----------------------------------------------------------------------------+
//| 说明:搜索最近的分形。返回一个价格水平。
//+----------------------------------------------------------------------------+
//| 参数: |
//| sy - 仪器名称(""或NULL - 当前符号)|
//| tf - 时间框架 ( 0 - 当前 TF) ||
//|模式--分形类型(MODE_LOWER|MODE_UPPER)|
//+----------------------------------------------------------------------------+
double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
如果(sy=="" || sy=="0") sy=Symbol();
double f=0。
int d=MarketInfo(sy, MODE_DIGITS), s;
如果(d==0) 如果(StringFind(sy, "JPY"<0) d=4; 否则d=2;
for (s=2; s<100; s++) {
f=iFractals(sy, tf, mode, s)。
如果(f!=0) 返回(NormalizeDouble(f, d))
}
Print("FindNearFractal(): Fractal not found")。
return(0);
}
//+----------------------------------------------------------------------------+
//| 说明:设置对象OBJ_HLINE水平线。
//+----------------------------------------------------------------------------+
//| 参数: |
//| cl - 线条颜色|
//| nm - 名称 ("" - 当前条形图的开盘时间)
//| p1 - 价格水平(0 - Bid)|
//| st - 线条风格(0 - 简单线条)|
//| wd - 线条宽度(0 - 默认)|
//+----------------------------------------------------------------------------+
void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
如果(nm=="")nm=DoubleToStr(Time[0], 0);
如果(p1<=0)p1=Bid。
如果(ObjectFind(nm)<0)ObjectCreate(nm, OBJ_HLINE, 0, 0,0;)
ObjectSet(nm, OBJPROP_PRICE1, p1)。
ObjectSet(nm, OBJPROP_COLOR , cl)。
ObjectSet(nm, OBJPROP_STYLE , st)。
ObjectSet(nm, OBJPROP_WIDTH , wd)。
}
有必要为这个指标编写一个专家顾问,它将在М1和М5时间段内通过上、下限价格。
亚历克斯,你是来找我的吗?我是mql4的新手,我想弄清楚这个代码。
先生,有没有人明白如何从指标中传递数值到EA?我需要帮助,我自己也不明白,只是一瞬间,然后就结束了。https://forum.mql4.com/ru/52892/page308 palomnik 23.04.2013 09:56
1.通过一个全局变量。
2.通过文件。
3.通过iCustom()。
4.通过全局图形变量。
5.绘图。你可以将数据从一个终端传输到另一个终端。或者在一个终端将数据从一个窗口转移到另一个窗口,不受MT4全局变量的限制。