[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1034

 
Techno:
你可以。通常的专家/脚本

也许已经有了类似的东西,你能告诉我在哪里可以找到吗?或者知道谁能写一个?

 

请帮帮我吧,亲

下面这段代码不起作用。

MA值被计算并分配给MA变量

正确,但它们没有被分配到一个数组中。数组定义为双倍

充满活力。打印过程打印出数组的空值。

i=i_max; // ...计算给出的数字。

如果(flag_NewBar==true) //只在第一个tick到达时重新计算。

{

while(i>=0) //在未读条上循环。

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i) 。

MA=NormalizeDouble(MA,Digits)。

mas_MA[i]=MA。

i--; }

 

我不明白为什么有一个错误130?请帮助。

下面是代码。

   double myPrice      = NormalizeDouble(Bid - 10*Pnt*10,Digits);
   double myTakeProfit = NormalizeDouble(myPrice + TakeProfit * Pnt*10,Digits);                                                     //
   if (RAVI0_2_24_D1 > 1 && RAVI0_2_24_D1 < 5 && RAVI0_2_24_D1_1 < RAVI0_2_24_D1 && RAVI0_2_24_D1_2 < RAVI0_2_24_D1_1 && RAVI0_2_24_D1_3 < RAVI0_2_24_D1_2) myTakeProfit = myTakeProfit + 25 * Pnt*10;
   double myStopLoss   = NormalizeDouble(myPrice - StopLoss * Pnt*10,Digits);
   datetime myTimeEnd  = TimeCurrent() + wait*60;
   Alert("OP_BUYLIMIT: Spread=",MarketInfo(Symbol(),MODE_SPREAD)," Stop=",DoubleToStr(MarketInfo(Symbol(), MODE_STOPLEVEL), 2)," lot=",DoubleToStr(lotMM,3)," Pr=",DoubleToStr(myPrice,6)," SL=",DoubleToStr(myStopLoss,6)," TP=",DoubleToStr(myTakeProfit,6));
   ticket=OrderSend(Symbol(),OP_BUYLIMIT,lotMM,myPrice,Slippage,myStopLoss,myTakeProfit,ExpertName, MagicNumber,myTimeEnd,myColor);

特意插入Alert来看看问题,但我找不到它。

以下是Alert的信息。

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 cent iK EURUSD,M1: OrderSend error130

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50美分 iK EURUSD,M1: 提示: OP_SELLLIMIT: Spread=1 Stop=10.00 lot=0.010 Pr=1.280300 SL=1.320300 TP=1.240300

 
VNG:

请帮帮我吧,亲

下面这段代码不起作用。

MA值被计算并分配给MA变量

正确,但它们没有被分配到一个数组中。数组定义为双倍

充满活力。打印过程打印出数组的空值。

i=i_max; // ...计算给出的数字。

如果(flag_NewBar==true) //只在第一个tick到达时重新计算。

{

while(i>=0) //在未读条上循环。

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i) 。

MA=NormalizeDouble(MA,Digits)。

mas_MA[i]=MA。

i--; }

IMHO数组应该有一定的大小,除了为 "绘图 "设计的指标中的数组。我认为应该插入。
ArrayResize(mas_MA,i_max);
 
globad:

乡亲们,请指教!有没有可能制作一个程序,当价格在0.1-0.4秒内超过10-11便士时发出提示音?

我建议用另一种方式,0.1-0.4s大约是一个刻度,每一个刻度的变化确定整个市场概况。
附加的文件:
temp_4.mq4  4 kb
 
ikatsko:

我不明白为什么有一个错误130?请帮助。

下面是代码。

特意插入Alert来看看问题,但我找不到它。

以下是Alert的信息。

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50 cent iK EURUSD,M1: OrderSend error 130

2010.12.13 12:39:36 2010.09.01 11:35 DVD 100-50美分 iK EURUSD,M1: 提示: OP_SELLLIMIT: Spread=1 Stop=10.00 lot=0.010 Pr=1.280300 SL=1.320300 TP=1.240300


一步一步地,改变止损点采取超额开盘价(因为钟摆离价格较低)到常数,几乎找出误差所在。

来自帮助 "如果挂单的开盘价不正确,将产生错误 130(ERR_INVALID_STOPS)"。

ticket=OrderSend(Symbol(),OP_BUYLIMIT,1,Close[0]+DoubleToStr(MarketInfo(Symbol(), MODE_STOPLEVEL), 2)*2,15,0,0,ExpertName, MagicNumber,myTimeEnd,myColor);
 
VNG:

请帮帮我吧,亲

下面这段代码不起作用。

MA值被计算并分配给MA变量

正确,但它们没有被分配到一个数组中。数组定义为双倍

充满活力。打印过程打印出数组的空值。

i=i_max; // ...计算出一个给定的数字。

如果(flag_NewBar==true) //只在第一个tick到达时重新计算。

{

while(i>=0) //在未读条上循环。

MA=iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i) 。

MA=NormalizeDouble(MA,Digits)。

mas_MA[i]=MA。

i--; }

阅读它

https://book.mql4.com/ru/operators/while

https://docs.mql4.com/ru/series/iBarShift

我将做以下工作

if (flag_NewBar) // пересчитываем только во время прихода первого тика
 for(i=i_max;i>=0;i--) // Цикл по непосчитанным барам
    mas_MA[i]=NormalizeDouble(iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,
                                                             iBarShift(g_ext_smb,g_ext_TameFrame,Time[i],false)),Digits);
if (flag_NewBar==true) // пересчитываем только во время прихода первого тика
while(i>=0){ // Цикл по непосчитанным барам
mas_MA[i]=NormalizeDouble(iMA(g_ext_smb,g_ext_TameFrame,g_ext_Period_MA,0,g_ext_Method,g_ext_PRICE,i),Digits);
i--; 
} 
 
告诉我,多少个小于零的易拉宝可以用来画物体? 最小的是什么?
 
costy_:

一步一步地,改变止损点采取超额开盘价(因为钟摆在价格下方较高)到常数,实际识别错误所在。

从帮助中" 如果挂单的开盘价是错误的,将产生错误130(ERR_INVALID_STOPS)"。

是的,UZH :)事实上,错误在于挂牌的开盘价与现价接近。修正了它,得到了它的工作。谢谢你

 
eddy:
告诉我,多少个小于0的eibarshift可以用来绘制物体? 最小是多少?

ebarshift是按时间搜索一个酒吧(没有任何东西可以工作)。

在终端中,最后一个条形是0,时间与条形相连,也就是说,只有这样才能通过字符串到达未来。

ObjectCreate("ff",OBJ_VLINE,0,StrToTime("2010.12.13 20:00"),0); //
原因: