/********************Script program start function********************/voidOnStart()
{
MqlDateTime mqlDateTime0, mqlDateTime1;
datetime arrDateTime[7];
CopyTime(_Symbol, PERIOD_D1, 0, 7, arrDateTime);
TimeToStruct(arrDateTime[0], mqlDateTime0);
TimeToStruct(arrDateTime[6], mqlDateTime1);
if(mqlDateTime0.day_of_week == FRIDAY && mqlDateTime0.mon != mqlDateTime1.mon)
{
Print("Ура!!! Сегодня первая пятница");
// Дальше можно брать по времени пятницы открытие и закрытие бара и на основании этого определяем бычья или медвежья свеча...
}
}/********************************************************************/
知道每月的第一天是星期 几就足够了。剩下的是计算出来的。
这就像用左手抓你的右耳。
我很抱歉,你可能没有注意到这个问题。
四中的条件怎么写:如果每月的第一个星期五是看涨的,并且
第二个星期一是看跌的,那么我们就开始卖出交易。
DayOfWeek()==1 星期一很清楚,但每月的哪个星期一?)
知道了!你在谈论你的算法,这只有你自己知道。我已经写了,确定每月第一天的星期。然后我们用一个表格或两个简单的公式来确定我们感兴趣的日子的日期。
查看日历上的表格。
如果每月的第一天是6,那么第一个星期五的数字就是7。否则,第一个星期五等于6------月初的日子。
如果月份的开始日期<2,第二个星期一等于9--月份的日期。否则第二个星期一的数字是16--每月的日子。
使用数学函数,除法的余数 和模数将大大缩短
知道了!你在谈论你的算法,这只有你自己知道。我想说的是,为每月的第一天确定星期 几!然后我们用一个表格或两个简单的公式来确定关注日的日期。
查看日历上的表格。
如果一个月的第一天是6,那么第一个星期五的数字就是7。否则,第一个星期五等于6------月初的日子。
如果月份的开始日期<2,第二个星期一等于9--月份的日期。否则,第二个星期一等于16--该月的一天
谢谢你,上帝保佑你,我会继续检查的。
非常感谢您的愿望。而且还是在点的后面加一个空格,在点的前面加一个空格。这将有助于编程。祝您好运,如果您需要的话,就请盈利吧!
非常感谢您的建议。而且你可能想在句号后加一个空格,在句号前跳一个空格。这将有助于编程。祝你好运,如果你需要的话,祝你好运!
它出来的时候非常复杂。一定有一个更简单的选择。有人能分享一下吗?
比方说,明天在更新中会有一些变化,我们将不得不重写一切。
它出来的时候非常复杂。一定有一个更简单的选择。有人能分享一下吗?
假设明天在更新中发生了一些变化,我们必须重写一切。
这并不难。但对于每一种情况,我们必须设置不同的值,多少个日线应该被复制,哪些应该被导入结构中。
最好是将蜡烛图参数带入MqlRates 结构中
但对于每种情况,你必须设置不同的值,复制多少个日线,以及将哪些日线放入结构中。
这就是我所说的,我只对MQL4感兴趣。
这就是我所说的,我只对MQL4感兴趣......我们需要找到另一种解决方案。
int res;
int nomber = OrdersHistoryTotal();
int tip=OrderType();
if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))
{
tip=OrderType();
}
ma=iMA(NULL,0,MovingPeriod,120,MODE_SMA,PRICE_CLOSE,1);
if(Bid<ma)
if(tip!=OP_SELL)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TP*Point,"",MAGICMA,0,Red);
return;
}
这就是我所说的,我只对MQL4感兴趣。
我也有这个想法。
如果你需要第一个星期五,这个数字应该小于8。如果每个月的第一个星期五是星期五,那么下一个星期五就是第八个。相应地,我们可以很容易地重新计算到一周中的 任何一天和任何一天,第二,第三...