如何编码? - 页 164

 
MiniMe:
谢谢你,拉尔夫,但我将会错过掉期,我想把掉期的利润/亏损包括在订单决定的关闭中。

但第一个循环同时累积了利润和互换,不是吗?

我在想Equity的数字是与5点对开仓手的意义进行比较的数字....,这样你就不需要实际计算收支平衡的价格了。

 

嗨,拉尔夫

我有3个变量

OrdLots;以手为单位,代表未平仓的手,但这将跳过掉期。

Equity ; 这是总的利润损失,这个将包括掉期。

MinPro;这是我的获利,是5点+盈亏平衡点。

我不能用OrdLots来计算盈利/亏损,因为这将跳过互换。

我不能用Equity来计算点数盈亏,因为我需要知道使用了多少手,但我对手数的计算会跳过交换。

我需要使用OrdLots和Equity的一个函数来知道有多少个点被打开。

在MT4中可能有一些与账户余额 或账户净值有关的东西,但我没有找到。

你提出的解决方案是在不考虑掉期的情况下,以点为单位计算利润/亏损,但我已经为此设置了一个函数 ...我想在高于盈亏平衡点5个点时退出,并进行掉期。

 

比较时间和做循环

大家好。

我对Mql4语言很没有经验。我想把openordertime和一个Int var进行比较,如果它超过了一定的时间,而订单仍然是开放的,我想增加允许的开放订单的数量,这样我就可以尝试达到Breakeven的情况,或者也许是盈利的情况,然后同时关闭所有的开放订单,把最大的订单设置为原来允许的最大订单。有人能帮助我吗,或者告诉我其他帖子上的代码已经做了这样的事情。

我正在使用这段代码,但它似乎不起作用。

// 如果订单开了很久,就关闭订单,并试图达到收支平衡。

空白时间保护()

{

int totalorders = OrdersTotal();

for(int i=totalorders-1;i>=0;i-)

{

OrderSelect(i, SELECT_BY_POS)。

if ( OrderSymbol()==Symbol() )

{

prTime = OrderOpenTime();

prTime = prTime * CallTime;

如果(prTime >= TimeCurrent())

{

MaxAllowable_Trades = MaxAllowable_Trades + 3;

flag = 1。

休息。

}

}

}

返回。

}

我真的希望你能在这方面提供帮助。

谢谢

 
MiniMe:
嗨,拉尔夫

我有3个变量

OrdLots;以手为单位,代表未平仓的手数,但这将跳过掉期。

Equity ; 这是总的利润损失,这个将包括掉期。

MinPro;这是我的获利,是5点+盈亏平衡点

我不能用OrdLots来计算盈利/亏损,因为这将跳过互换。

我不能用Equity来计算点数盈亏,因为我需要知道使用了多少手,但我对手数的计算会跳过交换。

我需要使用OrdLots和Equity的一个函数来知道有多少个点被打开。

在MT4中可能有一些与账户余额或账户净值有关的东西,但我没有找到。

你提出的解决方案是在不考虑掉期的情况下,以点为单位计算盈亏,但我已经为此设置了一个函数 ...我想在超过盈亏平衡点5个点时退出,并进行掉期。

啊...也许我明白了...所以,如果你在第一个循环中也将没有掉期的利润累积到EquityNoSwap中,那么你可以在我的 "if "语句中使用它而不是Equity。(?) 因为那样的话,测试将是 "相对于盈亏平衡+掉期价格,是否有5个点的利润?"这实际上与 "忽略掉期,是否有5个点的利润?"(也许我还是不明白)

基本上 "利润+掉期 "是相对于 "盈亏平衡 "的,因此 "利润 "是相对于 "盈亏平衡+掉期 "的,而 "利润 "是分布在 "OrdLots "的。总而言之,你仍然不需要为 "收支平衡 "确定一个实际的点数价格。

 

最佳EA编码的想法

我发起这个帖子是为了得到一些帮助。我正在学习所附指标的编码,但它没有成功。有人能帮助我吗?这是一个非常可靠的指标,如果有人能为它制作一个EA,这几乎是一个圣杯。

基本原则是。

1.当红色箭头出现时打开卖出头寸。

2.当白色箭头出现时打开买入头寸,并自动关闭所有卖出头寸/位置。

3.适用于任何时间框架。

4.没有止损。

5.添加订单功能。

期待您的回复!

//+------------------------------------------------------------------+

//| IINWMARROWS.mq4|

//|基于EMA_CROSS.mq4 |/|

//| Copyright ?2006, MetaQuotes Software Corp.|

//|外汇交易软件。外汇交易平台MetaTrader 4

//| 最后一点修改:Iin Zulkarnain |/|

//+------------------------------------------------------------------+

#property copyright "Copyright ?2006, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

//----

#属性 indicator_chart_window

#属性 indicator_buffers 2

#属性 indicator_color1 White

#属性 indicator_color2 红色

#属性 indicator_width1 2

#perty indicator_width2 2

//----

double CrossUp[];

double CrossDown[];

extern int FasterMode=3; //0=sma, 1=ema, 2=smma, 3=lwma

extern int FasterMA=3;

Extern int SlowerMode=3; //0=sma, 1=ema, 2=smma, 3=lwma

外置int SlowerMA= 3;

//+------------------------------------------------------------------+

//|自定义指标初始化函数

//+------------------------------------------------------------------+

int init()

{

//---- 指标

SetIndexStyle(0, DRAW_ARROW, EMPTY);

SetIndexArrow(0, 233);

SetIndexBuffer(0, CrossUp);

SetIndexStyle(1, DRAW_ARROW, EMPTY);

SetIndexArrow(1, 234);

SetIndexBuffer(1, CrossDown)。

//----

return(0);

}

//+------------------------------------------------------------------+

//|自定义指标去初始化函数|

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//|自定义指标迭代函数|

//+------------------------------------------------------------------+

int start()

{

int limit, i, counter;

double fasterMAnow, slowerMAnow, fasterMAprevious, slowerMAprevious, fasterMAafter, slowerMAafter;

双重Range, AvgRange;

int counted_bars=IndicatorCounted()。

//----,检查可能的错误

if(counted_bars<0) return(-1);

//---- 最后一个被计算的柱子将被重新计算。

如果(counted_bars>0) counted_bars--。

//----

limit=Bars-counted_bars。

for(i=0; i<=limit; i++)

{

counter=i;

范围=0。

平均范围=0。

for(counter=i ;counter<=i+9; counter++)

{

AvgRange=AvgRange+MathAbs(High[counter]-Low[counter])。

}

Range=AvgRange/10。

fasterMAnow=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i)。

fasterMAprevious=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i+1);

fasterMAafter=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i-1)。

//----

slowerMAnow=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i);

slowerMAprevious=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i+1);

slowerMAafter=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i-1)。

如果((fasterMAnow > slowerMAnow) && (fasterMAprevious slowerMAafter))

{

CrossUp=Low - Range*0.5。

}

否则如果((fasterMAnow slowerMAprevious) && (fasterMAafter < slowerMAafter))

{

CrossDown=High + Range*0.5;

}

}

返回(0)。

}

//+------------------------------------------------------------------+本线程用于学习如何正确编码,我正在学习编码。

 

伟大而勇敢的编剧们

谁能为这个EA增加最大仓位

还是让它只运行一个头寸?

谢谢

附加的文件:
reverse_1.mq4  16 kb
 

删除的帖子

 

偏离主题的问题

是否有可能从非开放源程序中嗅到数据?

他们的编程语言很差(类似于Metastock,但更差,不允许有''previous''功能)。他们只允许自己的指标,而且他们有数据垄断权(根据法律)。不可能写一个DLL扩展来让我的指标在实时环境下运行。

非常感谢所有程序员的回答。

 

为不同的对子开设订单

你好。

是否有办法为不同的货币对 开立订单。

例如,EA在欧元兑美元的图表中运行,但我想为美元兑日元开立订单。

这是否可能。

谢谢

 

OrderSend("USDJPY",OP_BUY,0.1,MarketInfo("USDJPY", MODE_ASK),10,0,0, "Com",0,0,CLR_NONE)。

原因: