如何编码? - 页 46

 
antone:
例如,它只能在早上5点至10点交易一个订单,但可以在其他时间再次交易。

这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。

 
Kalenzo:
这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。

你能给我一个如何使用它们的简单脚本吗? 我不是一个程序员,对不起

谢谢!

 

一个跟踪止损/多个订单

我想做一个EA,将所有未结订单的止损修改为与当前的止损相同,这样所有的订单就会在同一水平上关闭。

extern int profit = 100;

extern int stop = 20;

int start()

{

int i, HstTotal=OrdersHistoryTotal();

for(i = HstTotal-1; i >= 0; i --)

{

if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;

OrderModify(i,OrderOpenPrice(),Bid-Point*stop,profit,0,Green);

}

}

 

使用OrdersTotal()和MODE_TRADES代替。

 
 
Kalenzo:
这很简单,你需要检查历史上最后一笔订单的开仓时间,然后用TimeDay函数检查日期。如果是今天,就不要交易。

for(int k=0;k<OrdersTotal();k++)

{

OrderSelect(k,SELECT_BY_POS,MODE_TRADES;

如果(OrderSymbol()== "GBPUSD" && OrderMagicNumber()== Magic_Number)

{

if(OrderOpenTime() != TimeCurrent () ) {Trade = true;}

如果(OrderOpenTime() == TimeCurrent () ) {Trade = false;}

}

}

我做错了什么?请帮助

 

以下是红色的更正。

罗伯特

antone:

for(int k=0;k<OrdersTotal();k++)

{

OrderSelect(k,SELECT_BY_POS,MODE_TRADES)

如果(OrderSymbol()==Symbol()&& OrderMagicNumber()== Magic_Number)

{

如果(TimeDay( OrderOpenTime())!=Day()) {Trade = true;}.

如果(TimeDay(OrderOpenTime())==Day()){Trade = false;}

}

}

同样类型的代码可以用来检查开仓时间是否在两个小时之间,甚至是精确到分钟的时间,如11:45,以防止新的交易。

int openHour = TimeHour(OrderOpenTime())。

如果(openHour > 10 && openHour < 13)Trade = false。

如果(openHour = 13) Trade = true;

我做错了什么?请帮助
 

ATTN程序员 - 新的6位数价格的问题

致所有程序员。

我注意到,有些经纪商在价格上使用额外的小数点位,这是一个问题。这将导致在计算诸如StopLoss、TakeProfit或Breakout Levels 时使用Point的地方出现问题。

有一个简单的解决方案。

我现在使用以下函数,用myPoint替换所有对Point的引用。

我在EA的顶部声明一个变量。

double myPoint。

然后在init中使用该函数来设置数值。

init()

{

myPoint = SetPoint()。

}

然后是这个函数。

// 设置点值为小数点后2位或4位

//以处理使用3位和5位小数的经纪商

double SetPoint()

{

double mPoint;

如果(Digits < 4)

mPoint = 0.01。

否则

mPoint = 0.0001。

return(mPoint);

}

一些使用Point来确定画线位置或柱状图大小的指标也会出现问题。

请把这个问题传给任何有程序员需要这些信息的论坛或小组。

我已经在Yahoo group MTE & I上发了帖子。

希望这有帮助。

罗伯特

 

日子

我在寻找一些帮助,我似乎无法解决如何在特定的条数/天 内退出一个头寸。

任何帮助都是好的

欢呼声

贝诺

 

贝诺。

你可以使用与上述帖子类似的代码来进行非交易。只需检查当前日期是否与开盘日期相隔天数,以便收盘。该代码也可以修改为使用小时或分钟。

另一种方法是在交易开始时计算出关闭交易的时间作为exit_time。然后退出,只需在你的检查退出代码中检查退出时间。

你需要使用适当的公式将正确的值加到开仓时间 上以获得平仓时间。这将使用每条柱子的分钟数*关闭后的柱子数加到OrderOpenTime()中。

希望这有帮助。

罗伯特

Beno:
尊敬的先生

我在寻找一些帮助,我似乎无法解决如何在特定的条数/天内退出一个头寸。

任何帮助都是好的

欢呼声

贝诺