如何编码? - 页 79

 

很好,谢谢你们,这两个建议可能都比我正在做的要好。

 

谁能帮帮我....

你好...

我希望这里有人能帮助我如何编码。这是个马蒂尔角的EA,我想做的是。

1 .如果第3层打开,第1层和第2层的目标点可以移动到第3层的目标点价格,所以我们可以同时关闭。

2.需要锁定点数。当第一层打开,并获得利润,例如15点(TP 32),EA在低价位进行锁定(例如5点),所以当价格逆转10点时,帖子可以自动关闭并获得5点利润。

我很抱歉我的英语不好。希望有人能帮助我在这个EA上输入代码。谢谢你

martiangle_rsi_.mq4

征求意见

真正需要帮助的人

附加的文件:
 

请提供评论帮助

我正试图设置一个评论来显示在屏幕上,但运气不好。

我已经设法获得了单个货币对的点数,但我似乎无法显示多个货币对的合计点数。

任何帮助都将是巨大的

这是该代码的一个例子

//========== FUNCTION getPipValue

double getPipValue(double ord,int dir)

{

double val;

RefreshRates()。

如果(dir == 1) val=(NormalizeDouble(ord,Digits) -

NormalizeDouble(Ask,Digits))。

否则val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits))。

val = val/Point*co;

返回(val)。

}

//==函数结束

int getSpread()

{

int spread=MarketInfo(Symbol(),MODE_SPREAD);

return(spread);

}

//========== FUNCTION getOpenOrders

空白 getOpenOrders()

{

int nsl, nsd;

字符串 mngMagic, trailon;

int totalorders = OrdersTotal();

for(int j=0; j<totalorders;j++)

{

OrderSelect(j, SELECT_BY_POS, MODE_TRADES)。

如果((OrderType() == OP_BUY || OrderType() == OP_Sell) &&

OrderSymbol() == Symbol()&&(MagicNumber==0 ||MagicNumber ==)

OrderMagicNumber())

{

double val=getPipValue(OrderOpenPrice(),OrderType()) 。

//int val = OrderProfit()/(OrderLots()*10)。

}

如果(MagicNumber == 0)

mngMagic = "所有 "+Symbol()+"交易"。

否则

mngMagic = "魔法数字="+魔法数字的交易。

//RefreshRates();

评论("余额。",AccountBalance(),",Account Equity:",AccountEquity(),", Account Profit:",AccountProfit(), "OrderOpen: ",OrderOpenPrice(),

"/nPip Count:", val,

"/nMy Account Cutoff Limit: ",Open_Loss_To_CloseTrades,

"/nManaging:", mngMagic)。

欢呼声

 

当前订单的点值可以通过以下方式获得。

( OrderClosePrice() - OrderOpenPrice() ) / MarketInfo( OrderSymbol(), MODE_POINT )

如果你想使用 "bid "和 "ask",你也需要使用与订单符号 相关的,即MarketInfo( OrderSymbol(), MODE_BID )和MarketInfo( OrderSymbol(), MODE_ASK )。

 

拉尔夫-朗奎斯特(Ralph.Ronnquist

纪晓岚

谢谢你的代码,我已经使用了它,但它只计算了一对,而不是所有对的总数。

我一直在试验各种情况,但还是不行。

我有一个开了3个头寸的EA,我在5个货币对上运行,我可以看到每个货币对的点数,但不是集体的。

 
Beno:
拉尔夫-朗奎斯特(Ralph.Ronnquist)

纪晓岚

谢谢你的代码,我已经使用了它,但它只计算了一对,而不是所有对的总数。

我一直在试验各种情况,但仍然没有成功。

我有一个EA,在5个货币对上开了3个头寸,我可以看到每个货币对的点数,但看不到集体。

好吧,如果你熟悉全局变量,你可以用它们来存储每个符号所引用的每个货币对的点子信息。创建另一个引用总点数的全局变量,并调用这个特定的全局变量,随着点数的增加而更新,并将其存储。全局变量可以被每个EA访问,因为它被存储在MT4的内存中。

如果需要,我可以帮助你编码。

 

你好,ShahJB

我以前在代码中见过全局变量,但对它们没有任何经验,所以是的,我想接受你的帮助来编写这个代码,因为它使我发疯。

 
Beno:
Gidday ShahJB 我以前在代码中见过全局变量,但对它们的经验是零,所以是的,我想接受你的帮助来编写这个代码,因为它使我发疯。

我刚刚及时编码了以下内容。你为什么不先添加这段代码。试一试,如果失败了就给我打电话。我需要睡一会。

string val_old_string = "val_old" + Symbol();

int val_old = GlobalVariableGet(val_old_string);

if(val != val_old)

{

int pips_increment_decrement;

int current_total_pips;

string counter = "Pips Counter";

double pips_counter = GlobalVariableGet(counter);

如果(val>val_old)

{

pips_increment_decrement = val - val_old;

current_total_pips = pips_increment_decrement + pips_counter;

GlobalVariableSet(counter, current_total_pips);

GlobalVariableSet(val_old_string, val);

}

否则

{

pips_increment_decrement = val_old - val;

current_total_pips = pips_counter - pips_increment_decrement;

GlobalVariableSet(counter, current_total_pips);

GlobalVariableSet(val_old_string, val);

}

}

 

为什么不工作?

你好。

我是一个完全陌生的编程新手。 感谢本网站的帖子和学习资源,我鼓起勇气尝试建立几个EA,其中一个将使用Lguerre作为触发器之一(我使用这个网站来帮助我;MetaTrader 4的专家顾问生成器)。我的EA的问题是,当触发器被击中时,它不会打开买单。我已经使用上述网站建立了几个EA,它们可以很好地执行多头和空头订单(这些EA使用RSI)。请看一下所附的EA,3-28,让我知道我做得不对....,我是否使用了错误的格式,在交易执行前要达到的水平?Laguerre需要额外的参数吗?

我在这个问题上花费了大量令人尴尬的时间,我都快放弃了....,非常感谢任何帮助!!!!!。

我似乎已经找到了答案......为什么我需要在我的EA中乘以Laguerre,虽然?????。

附加的文件:
3-31.mq4  10 kb
 

我遇到了一个平仓问题。请帮助我

我遇到了一个问题,我不知道如何解决。我的程序有一些未平仓的订单,并将它们全部平仓,但有时我认为有些订单没有成交,因此它一直在等待,直到它们成交,这就锁住了我的程序。你们发现关闭所有未结订单的最佳方法是什么?谢谢你们的帮助。

以下是代码。

int OrdersTotalLong()

{

int order_total = 0;

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

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES)。

如果(OrderType() == OP_BUY)

order_total++;

}

return(order_total);

}

int MaxLongOrder()

{

int order = 0;

double lotsbuyed = 0;

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

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES)。

如果((OrderType() == OP_BUY) && (OrderLots() > lotsbuyed))

{

lotsbuyed = OrderLots();

订单 = i;

}

}

return(order);

}

int CloseLong()

{

while (OrdersTotalLong() > 0) //until there's no Orders open (close all)

{

如果(OrderSelect(MaxLongOrder(), SELECT_BY_POS, MODE_TRADES) == false) 继续。

OrderClose(OrderTicket(),OrderLots(), Bid, 3, Green)。

}

}

return(0);

}