如何编码? - 页 164 1...157158159160161162163164165166167168169170171...347 新评论 ralphronnquist 2009.03.07 21:11 #1631 MiniMe: 谢谢你,拉尔夫,但我将会错过掉期,我想把掉期的利润/亏损包括在订单决定的关闭中。 但第一个循环同时累积了利润和互换,不是吗? 我在想Equity的数字是与5点对开仓手的意义进行比较的数字....,这样你就不需要实际计算收支平衡的价格了。 MiniMe 2009.03.07 22:33 #1632 嗨,拉尔夫 我有3个变量 OrdLots;以手为单位,代表未平仓的手,但这将跳过掉期。 Equity ; 这是总的利润损失,这个将包括掉期。 MinPro;这是我的获利,是5点+盈亏平衡点。 我不能用OrdLots来计算盈利/亏损,因为这将跳过互换。 我不能用Equity来计算点数盈亏,因为我需要知道使用了多少手,但我对手数的计算会跳过交换。 我需要使用OrdLots和Equity的一个函数来知道有多少个点被打开。 在MT4中可能有一些与账户余额 或账户净值有关的东西,但我没有找到。 你提出的解决方案是在不考虑掉期的情况下,以点为单位计算利润/亏损,但我已经为此设置了一个函数 ...我想在高于盈亏平衡点5个点时退出,并进行掉期。 PipStalking 2009.03.08 05:01 #1633 比较时间和做循环 大家好。 我对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。 休息。 } } } 返回。 } 我真的希望你能在这方面提供帮助。 谢谢 How to code? 编码帮助 关闭所有'/'打开'工具 ralphronnquist 2009.03.08 06:06 #1634 MiniMe: 嗨,拉尔夫我有3个变量 OrdLots;以手为单位,代表未平仓的手数,但这将跳过掉期。 Equity ; 这是总的利润损失,这个将包括掉期。 MinPro;这是我的获利,是5点+盈亏平衡点 我不能用OrdLots来计算盈利/亏损,因为这将跳过互换。 我不能用Equity来计算点数盈亏,因为我需要知道使用了多少手,但我对手数的计算会跳过交换。 我需要使用OrdLots和Equity的一个函数来知道有多少个点被打开。 在MT4中可能有一些与账户余额或账户净值有关的东西,但我没有找到。 你提出的解决方案是在不考虑掉期的情况下,以点为单位计算盈亏,但我已经为此设置了一个函数 ...我想在超过盈亏平衡点5个点时退出,并进行掉期。 啊...也许我明白了...所以,如果你在第一个循环中也将没有掉期的利润累积到EquityNoSwap中,那么你可以在我的 "if "语句中使用它而不是Equity。(?) 因为那样的话,测试将是 "相对于盈亏平衡+掉期价格,是否有5个点的利润?"这实际上与 "忽略掉期,是否有5个点的利润?"(也许我还是不明白) 基本上 "利润+掉期 "是相对于 "盈亏平衡 "的,因此 "利润 "是相对于 "盈亏平衡+掉期 "的,而 "利润 "是分布在 "OrdLots "的。总而言之,你仍然不需要为 "收支平衡 "确定一个实际的点数价格。 yingli 2009.03.08 16:11 #1635 最佳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望大家看一下问题到底在哪里,为什么不下订单。 Sam 2009.03.09 02:54 #1636 伟大而勇敢的编剧们 谁能为这个EA增加最大仓位 还是让它只运行一个头寸? 谢谢 附加的文件: reverse_1.mq4 16 kb BeepBoop 2009.03.09 15:38 #1637 删除的帖子 biddick 2009.03.09 16:12 #1638 偏离主题的问题 是否有可能从非开放源程序中嗅到数据? 他们的编程语言很差(类似于Metastock,但更差,不允许有''previous''功能)。他们只允许自己的指标,而且他们有数据垄断权(根据法律)。不可能写一个DLL扩展来让我的指标在实时环境下运行。 非常感谢所有程序员的回答。 jan100 2009.03.12 16:44 #1639 为不同的对子开设订单 你好。 是否有办法为不同的货币对 开立订单。 例如,EA在欧元兑美元的图表中运行,但我想为美元兑日元开立订单。 这是否可能。 谢谢 Roger09 2009.03.12 19:44 #1640 OrderSend("USDJPY",OP_BUY,0.1,MarketInfo("USDJPY", MODE_ASK),10,0,0, "Com",0,0,CLR_NONE)。 1...157158159160161162163164165166167168169170171...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你,拉尔夫,但我将会错过掉期,我想把掉期的利润/亏损包括在订单决定的关闭中。
但第一个循环同时累积了利润和互换,不是吗?
我在想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。
休息。
}
}
}
返回。
}
我真的希望你能在这方面提供帮助。
谢谢
嗨,拉尔夫
我有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增加最大仓位
还是让它只运行一个头寸?
谢谢
删除的帖子
偏离主题的问题
是否有可能从非开放源程序中嗅到数据?
他们的编程语言很差(类似于Metastock,但更差,不允许有''previous''功能)。他们只允许自己的指标,而且他们有数据垄断权(根据法律)。不可能写一个DLL扩展来让我的指标在实时环境下运行。
非常感谢所有程序员的回答。
为不同的对子开设订单
你好。
是否有办法为不同的货币对 开立订单。
例如,EA在欧元兑美元的图表中运行,但我想为美元兑日元开立订单。
这是否可能。
谢谢
OrderSend("USDJPY",OP_BUY,0.1,MarketInfo("USDJPY", MODE_ASK),10,0,0, "Com",0,0,CLR_NONE)。