int y; int totalOrders = 4; datetime toT; // Time of Trade datetime doT; // Day of Trade datetime now = TimeCurrent(); datetime boD=now-now%86400; // Beginning of day
for(y=0;y<totalOrders; y++) {
if(OrderSelect(y,SELECT_BY_POS,MODE_HISTORY)) { toT=OrderOpenTime(); // Time of Trade doT=toT-toT%86400; // Day of Trade. if(doT==boD) { // Time of Trade within Current Day.
for(j=OrdersTotal()-1;j>=0; j--) { if(OrderType()==OP_BUY) totalOrders++; // Check # of long trades. if(OrderType()==OP_SELL) totalOrders++; // Check # of short trades }
datetime today = StringToTime(TimeToString(TimeCurrent(),TIME_DATE)); int totalOrdersLong = 0, totalOrdersShort = 0; for(int y=OrdersHistoryTotal()-1;y>=0; y--) { if (OrderSelect(y,SELECT_BY_POS,MODE_HISTORY)) if (OrderCloseTime()>=today) { if (OrderType()==OP_BUY) totalOrdersLong++; if (OrderType()==OP_SELL) totalOrdersShort++; } } for(int y=OrdersTotal()-1;y>=0; y--) { if (OrderSelect(y,SELECT_BY_POS,MODE_TRADES)) if (OrderOpenTime()>=today) { if (OrderType()==OP_BUY) totalOrdersLong++; if (OrderType()==OP_SELL) totalOrdersShort++; } }
嗨,Mladen,我已经下载了你的
stepma_pdf_4_4.ex4以及histgram。
将它们复制到MT4中。把它们钻到图表窗口中
我得到以下信息,请看图片。
你能告诉我如何使用你的指标吗?
李亚
ps. 同样的情况发生在: averages_-_mtf__alerts_7_4.ex4和直方图上。
使用这些:
使用这些:
再次感谢您!当你有一些空闲时间......希望你喜欢鱼。
李亚
当你有一些空闲时间......希望你喜欢鱼。
李亚
你好,Mladen先生。
请更新它
注意
你好,Mladen先生。
请更新它
注意
现在就试试。
现在就去试试。
哪条鱼在附近躺着?
你在同一时间只开了一个订单(我指的是同一个魔术,符号)吗?
如果是的话,那就可以了。
嗨,Mladen。
谢谢您的建议。是的,该EA将只交易一个头寸。
我将执行该代码并进行一些测试。
祝您有一个愉快的一周。
嗨---
祝大家好运
尊敬的专业编码人员。
我想在我的EA中实现 "每天四次交易 "的功能。如果达到最大交易限额
达到最大交易限额,EA应该等到第二天再继续交易。
我想知道是否有人能审查我的代码,我在这里有点 "脑震荡"...;-)
请先谢谢您!
extern int MaxLongTrades = 2;
// Count Trades per Day.
int y;
int totalOrders = 4;
datetime toT; // Time of Trade
datetime doT; // Day of Trade
datetime now = TimeCurrent();
datetime boD=now-now%86400; // Beginning of day
for(y=0;y<totalOrders; y++)
{
if(OrderSelect(y,SELECT_BY_POS,MODE_HISTORY))
{
toT=OrderOpenTime(); // Time of Trade
doT=toT-toT%86400; // Day of Trade.
if(doT==boD)
{ // Time of Trade within Current Day.
for(j=OrdersTotal()-1;j>=0; j--)
{
if(OrderType()==OP_BUY) totalOrders++; // Check # of long trades.
if(OrderType()==OP_SELL) totalOrders++; // Check # of short trades
}
}
}
}
if(totalOrders<MaxLongTrades && Indicator_LONG_signal) Order=SIGNAL_BUY;
if(totalOrders<MaxShortTrades && Indicator_SHORT_signal) Order=SIGNAL_SELL;
为了检查 历史记录(在当前日期关闭的订单)和已开立的订单,请尝试这样做。
int totalOrdersLong = 0, totalOrdersShort = 0;
for(int y=OrdersHistoryTotal()-1;y>=0; y--)
{
if (OrderSelect(y,SELECT_BY_POS,MODE_HISTORY))
if (OrderCloseTime()>=today)
{
if (OrderType()==OP_BUY) totalOrdersLong++;
if (OrderType()==OP_SELL) totalOrdersShort++;
}
}
for(int y=OrdersTotal()-1;y>=0; y--)
{
if (OrderSelect(y,SELECT_BY_POS,MODE_TRADES))
if (OrderOpenTime()>=today)
{
if (OrderType()==OP_BUY) totalOrdersLong++;
if (OrderType()==OP_SELL) totalOrdersShort++;
}
}
if(totalOrdersLong <MaxLongTrades && Indicator_LONG_signal) Order=SIGNAL_BUY;
if(totalOrdersShort<MaxShortTrades && Indicator_SHORT_signal) Order=SIGNAL_SELL;