//--- input parametersinputint g_maPeriod = 14;
inputint g_maShift = 1;
inputENUM_APPLIED_PRICE g_maPrice = PRICE_CLOSE; //Applied priceinputENUM_MA_METHOD g_maMethod = MODE_SMA; //Method MainputENUM_TIMEFRAMES g_timeFrame = PERIOD_CURRENT; //Timeframe for calculatedatetime g_barTime=0;
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---if(g_barTime != iTime(NULL,g_timeFrame,0))
{
if(isCrossing()==1)
{
Print("enter to '1. if (isCrossing)'"); g_barTime = iTime(NULL,g_timeFrame,0);
}
if(isCrossing()==2)
{
Print("enter to '2. if (isCrossing)'"); g_barTime = iTime(NULL,g_timeFrame,0);
}
}
}
//+------------------------------------------------------------------+int isCrossing()
{
int res=0;
double low = iLow(Symbol(), g_timeFrame, 1);
double high = iHigh(Symbol(), g_timeFrame, 1);
double ma = iMA(_Symbol, g_timeFrame, g_maPeriod, g_maShift, g_maMethod, g_maPrice, 0);
if(high > ma && Bid <= ma) res=1;
if(low < ma && Bid >= ma) res=2;
return (res);
}
//+------------------------------------------------------------------+
2021.08.2509:24:56.6292021.08.2023:50:00 Nerd Trader EURUSD,M5: enter to '1. if (isCrossing)'
2021.08.2509:24:56.6242021.08.2023:45:00 Nerd Trader EURUSD,M5: enter to '2. if (isCrossing)'
2021.08.2509:24:56.5922021.08.2021:35:00 Nerd Trader EURUSD,M5: enter to '2. if (isCrossing)'
2021.08.2509:24:56.5822021.08.2021:05:00 Nerd Trader EURUSD,M5: enter to '1. if (isCrossing)'
2021.08.2509:24:56.5662021.08.2020:20:00 Nerd Trader EURUSD,M5: enter to '1. if (isCrossing)'
2021.08.2509:24:56.5542021.08.2018:50:00 Nerd Trader EURUSD,M5: enter to '2. if (isCrossing)'
2021.08.2509:24:56.5532021.08.2018:45:00 Nerd Trader EURUSD,M5: enter to '2. if (isCrossing)'
2021.08.2509:24:56.5532021.08.2018:40:00 Nerd Trader EURUSD,M5: enter to '1. if (isCrossing)'
2021.08.2509:24:56.6292021.08.2023:50:00 Nerd Trader EURUSD,M5: enter to '1. if (isCrossing)'
2021.08.2509:24:56.6242021.08.2023:45:00 Nerd Trader EURUSD,M5: enter to '2. if (isCrossing)'
2021.08.2509:24:56.5922021.08.2021:35:00 Nerd Trader EURUSD,M5: enter to '2. if (isCrossing)'
2021.08.2509:24:56.5822021.08.2021:05:00 Nerd Trader EURUSD,M5: enter to '1. if (isCrossing)'
2021.08.2509:24:56.5662021.08.2020:20:00 Nerd Trader EURUSD,M5: enter to '1. if (isCrossing)'
2021.08.2509:24:56.5542021.08.2018:50:00 Nerd Trader EURUSD,M5: enter to '2. if (isCrossing)'
2021.08.2509:24:56.5532021.08.2018:45:00 Nerd Trader EURUSD,M5: enter to '2. if (isCrossing)'
2021.08.2509:24:56.5532021.08.2018:40:00 Nerd Trader EURUSD,M5: enter to '1. if (isCrossing)'
两个条件都符合......所以你得到第一个结果
两个条件都符合......所以你得到第一个结果
由于某些原因,我认为它也不会返回1。
这种情况
告诉人们一个新的酒吧已经被打开。在条形图的第一个刻度上,开盘==高点==低点==收盘和==出价--因此,条件是
或
无法实现...今天有一个关于条件if(i != i)的问题,这些条件大致相同。
P.S.
,用isCrossing() 函数把所有东西都保持原样。
由于某些原因,我认为它也不会返回1。
这种情况
讲述了一个新酒吧的开业。在条形图的第一个刻度上,开盘==高点==低点==收盘和==出价--因此,条件是
或
无法实现...今天有一个关于条件if(i != i)的问题,这些条件是差不多的。
"1 "返回,在MetaEditor中做了代码调试。
此外,即使所有的东西都是平等的,它也只是在第一个刻度上。
"1 "返回,在MetaEditor中做了代码调试。
此外,即使所有的东西都是平等的,它也只是在第一个刻度上。
嗯,是的,我错了。只有在整个条件得到满足后,才会有新酒吧。
尝试用开放来代替高和低。也许这不会对战略产生太大影响。
"1 "返回,在MetaEditor中做了代码调试。
此外,即使一切平等,也只是在第一个刻度上。
它的工作原理是这样的
它的工作原理是这样的。
我这样做了,一切正常,只有来自isCrossing()的信息是重复的,因为一个tick的f-e被调用两次。
所以我把它保持原样,只是现在isCrossing()的所有内容都返回到变量。没有任何东西是重复的,所有东西都能正常工作。谢谢大家 :)
你能解释一下这些功能之间的区别吗?
for (int j = OrdersHistoryTotal()-1; j >= 0; j--)
{
如果(OrderSelect(j, SELECT_BY_POS,MODE_HISTORY))
и
int i=OrdersHistoryTotal()。
for(int pos=0; pos<i; pos++)
{
如果(OrderSelect(pos, SELECT_BY_POS,MODE_HISTORY))