int timemin=TimeMinute(Time[59]==0); int timehour=TimeHour(Time[1] && TimeMinute(Time[0]))。 int timemin1=TimeMinute(Time[0]==0); int timehour1=TimeHour(Time[1] && TimeMinute(Time[59))
int max=iHighest(Symbol(),1,MODE_HIGH,60,timehour); int min=iLowest(Symbol(),1,MODE_LOW,60,timehour);
double barup=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1)); double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1)); ObjectDelete("FiboLevels"); //------ New level
你好。我想为MT4编写一个EA,其任务之一是在一小时内画出M1的菲波线。也就是说,当11.00时,它应该在10.00至10.59的区间内画线,重点关注高点和低点。尝试了不同的方法,贴出了最后的方法。你也许可以缩短代码来绘制水平线。问题是它没有在给定的区域内绘制线条。
int timemin=TimeMinute(Time[59]==0);
int timehour=TimeHour(Time[1] && TimeMinute(Time[0]))。
int timemin1=TimeMinute(Time[0]==0);
int timehour1=TimeHour(Time[1] && TimeMinute(Time[59))
int max=iHighest(Symbol(),1,MODE_HIGH,60,timehour);
int min=iLowest(Symbol(),1,MODE_LOW,60,timehour);
double barup=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1));
double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1));
ObjectDelete("FiboLevels"); //------ New level
如果(barup)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[min],Low[min],Time[timehour1],High[max]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrGreen) 。
}
if (bardn)
{
WindowRedraw();
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[max],Low[max],Time[timehour1],High[min]);
ObjectSet("FiboLevels",OBJPROP_COLOR,clrRed) 。
}
double f1=ObjectGet("FiboLevels",OBJPROP_PRICE1); //选择第一个价格
double f2=ObjectGet("FiboLevels",OBJPROP_PRICE2) 。//选择第二个价格并绘制
double Diff=f2-f1;
string a11=DoubleToStr(f2-Diff*0.0,Digits);
string a12=DoubleToStr(f2-Diff*0.236,Digits);
string a13=DoubleToStr(f2-Diff*0.382,Digits);
string a14=DoubleToStr(f2-Diff*0.50,Digits);
string a15=DoubleToStr(f2-Diff*0.618,Digits);
string a16=DoubleToStr(f2-Diff*1.0,Digits) 。
bool a1=ObjectSet("FiboLevels",OBJPROP_FIBOLEVELS,6);
bool a2=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+0,0.0;
bool a3=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+1,0.236);
bool a4=ObjectSet("FiboLevels", OBJPROP_FIRSTLEVEL+2,0.382);
bool a5=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+3,0.50);
bool a6=ObjectSet("FiboLevels", OBJPROP_FIRSTLEVEL+4,0.618);
bool a7=ObjectSet("FiboLevels",OBJPROP_FIRSTLEVEL+5,1.0)。
bool a111=ObjectSetFiboDescription("FiboLevels",0, "0.0%");
bool a122=ObjectSetFiboDescription("FiboLevels",1, "23.6%");
bool a133=ObjectSetFiboDescription("FiboLevels",2, "38.2%";
bool a144=ObjectSetFiboDescription("FiboLevels",3, "50.0%");
bool a155=ObjectSetFiboDescription("FiboLevels",4, "61.8%";
bool a166=ObjectSetFiboDescription("FiboLevels",5, "100.0%")。
你好。我想为MT4编写一个EA,其任务之一是在一小时内画出M1的菲波线。也就是说,当11.00时,它应该在10.00至10.59的区间内画线,重点关注高点和低点。尝试了不同的方法,贴出了最后的方法。你也许可以缩短代码来绘制水平线。问题是它不能在给定的区域内画线。
double barup=(iOpen(Symbol(),60,1)>iClose(Symbol(),60,1))。double bardn=(iOpen(Symbol(),60,1)<iClose(Symbol(),60,1))。
ObjectDelete("FiboLevels"); //------New level
如果 (barup)
{
WindowRedraw()。
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[min],Low[min],Time[timehour1],High[max];
ObjectSet("FiboLevels",OBJPROP_COLOR,clrGreen)。
}
如果 (bardn)
{
WindowRedraw()。
ObjectCreate(0, "FiboLevels",OBJ_FIBO,0,Time[max],Low[max],Time[timehour1],High[min])。
ObjectSet("FiboLevels",OBJPROP_COLOR,clrRed)。
}
这个更短吗? bool barup=...WindowRedraw(); 仍然会被执行--从if中取出。
它也可以更短......见我的文件
请正确插入代码。
这就更清楚了。
伙计们,为什么我的订单在每次打钩 时都会打开?你能告诉我如何集中精力在酒吧吗?
伙计们,为什么我的订单在每次打钩 时都会打开?你能告诉我如何集中精力在酒吧吗?
根据ATS中描述的条件,给予开放的许可,所以它开放了。
在这种情况下,有很多解决方案。这完全取决于什么更适合你。
我们可以确定,只有当价格离开上一个订单N个点时,才应该开立下一个订单。您可以要求在1根柱子上建立不超过一个订单。诸如此类,不一而足。
写下你需要的条件,并将它们应用于你的测试。
根据ATS中描述的条件,它打开订单。
在这种情况下,有很多解决方案。这完全取决于什么更适合你。
我们可以确定,只有当价格离开上一个订单N个点时,才应该开立下一个订单。您可以要求在1根柱子上建立不超过一个订单。诸如此类,不一而足。
写下你需要的条件,并将它们应用于你的测试。
相反,如果( iTime(Symbol(),PERIOD_M1,0)){ 我应该怎么写才能在一个柱子上开出一个订单?
这个问题已经被问过很多次,相应地也被回答过很多次。使用搜索,例如这里
这个问题已经被问过很多次,相应地也被回答过很多次。使用搜索,例如这里
谢谢你!
下午好!
我有一个做某些计算的EA。它使用不同的数学运算、数组、循环。它 将结果保存到一个文件中。它必须在执行完所有行动后从头开始做所有事情。它已经做了一次所有的计算,然后第二次挂起,没有采取任何行动。你能告诉我们,在开始新的计算之前,是否有必要将变量清零,清除数组或其他东西?
下午好!
我有一个做某些计算的EA。它使用不同的数学运算、数组、循环。它 将结果保存到一个文件中。它必须在执行完所有行动后从头开始做所有事情。它已经做了一次所有的计算,然后第二次挂起,没有采取任何行动。你能告诉我们,在开始新的计算之前,是否有必要将变量清零,清除数组或其他东西?