编码帮助 - 页 159 1...152153154155156157158159160161162163164165166...786 新评论 Hock 2013.10.04 12:14 #1581 mladen: 不要改变这部分代码。这部分代码是检查你的经纪人是否是4位或5位经纪人。另外,这里有一个测试,使用500美元作为初始存款(风险5%,止损20点,测试用的是欧元兑美元),即使是初始存款也能工作。 你好,姆拉登。 昨天,我问了你关于订单编码的问题。 但它太复杂了。 我很抱歉,因为我想要一个简单的编码。 就像这样。 帐户余额 500美元 有5%的风险,开仓手数=0.25美元 手数=500美元*(风险/100) 手数=500美元*(0.05/100) 手数=500美元(0.0005) 手数=0.25美元 我很喜欢这个自动开仓0.25美元的EA。 而且手数不与止损或止盈相混合。 我希望你能帮助我解决这个问题。 非常感谢您。 extern double lots = 0.1;extern double stopsize = 20; extern double profsize = 10; extern double Risk =5; int err; int ticket; double stop; double prof; int init() { return(0); } int deinit() { return(0); } int start() { int TotalOrders = 0; for (int i=0; i <= OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol() == Symbol()) TotalOrders++; } if (TotalOrders<1) { double sl = stopsize*Point*MathPow(10,Digits%2); double tp = profsize*Point*MathPow(10,Digits%2); stop = (Ask-sl); prof = (Ask+tp); ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen); OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue); } err=GetLastError(); Comment(" "); } // // // // // double getLots(double stopLoss, double risk) { RefreshRates(); double pPoint = MarketInfo(Symbol(),MODE_POINT); double step = MarketInfo(Symbol(),MODE_LOTSTEP); double minLot = MarketInfo(Symbol(),MODE_MINLOT); double maxLot = MarketInfo(Symbol(),MODE_MAXLOT); double lots = minLot; if (risk>0 && stopLoss>0) { lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint); } return(MathMax(MathMin(lots,maxLot),minLot)); } Coding help 需要编码方面的帮助 请帮忙给增加个止盈谢谢 Mladen Rakic 2013.10.04 12:22 #1582 hock87:你好,姆拉登。昨天,我问了你关于订单编码的问题。但它太复杂了。我很抱歉,因为我想要一个简单的编码。就像这样。帐户余额为500美元有5%的风险,开仓手数=0.25美元手数=500美元*(风险/100)手数=500美元*(0.05/100)手数=500美元(0.0005)手数=0.25美元我很喜欢这个自动开仓0.25美元的EA。而且手数不与止损或止盈相混合。我希望你能帮助我解决这个问题。非常感谢您。extern double lots = 0.1;extern double stopsize = 20; extern double profsize = 10; extern double Risk =5; int err; int ticket; double stop; double prof; int init() { return(0); } int deinit() { return(0); } int start() { int TotalOrders = 0; for (int i=0; i <= OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol() == Symbol()) TotalOrders++; } if (TotalOrders<1) { double sl = stopsize*Point*MathPow(10,Digits%2); double tp = profsize*Point*MathPow(10,Digits%2); stop = (Ask-sl); prof = (Ask+tp); ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen); OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue); } err=GetLastError(); Comment(" "); } // // // // // double getLots(double stopLoss, double risk) { RefreshRates(); double pPoint = MarketInfo(Symbol(),MODE_POINT); double step = MarketInfo(Symbol(),MODE_LOTSTEP); double minLot = MarketInfo(Symbol(),MODE_MINLOT); double maxLot = MarketInfo(Symbol(),MODE_MAXLOT); double lots = minLot; if (risk>0 && stopLoss>0) { lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint); } return(MathMax(MathMin(lots,maxLot),minLot)); } hock87 当考虑到净值、止损 和所需风险时,没有简单(r)的方法来计算手数。另外,在不知道止损的情况下,你无法计算风险(想想看:如果你开了一个订单,比方说,大小为1手,你在1点后关闭,或者你在100点后关闭,损失(以及所承担的风险)是不一样的,它们不可能是一样的)。 如果你这样计算(没有已知的止损),那么这不是风险计算,而是简单的手数计算(这并不意味着任何形式的风险计算)。 Hock 2013.10.04 12:44 #1583 mladen: hock87当考虑到净值、止损和所需风险时,没有简单(r)的方法来计算手数大小。另外,在不知道止损的情况下,你无法计算风险(想想看:如果你开了一个订单,比如说,大小为1手,你在1点后关闭,或者你在100点后关闭,损失(以及所承担的风险)是不一样的,它们不可能是一样的)。 如果你这样计算(没有已知的止损),那么它不是风险计算,而是简单的手数计算(这并不意味着任何种类的风险计算)。 Mladen,你是对的。 我知道这并不意味着任何形式的风险计算。 我只是想做一个简单的手数计算。 让它根据账户余额 的百分比自动计算手数。 lots=$500*(risk%/100) lots=$500*(0.05/100) lots=$500(0.0005) 手数=0.25美元 我很喜欢这个自动开仓0.25美元的EA。 而且手数不与止损或止盈相混合。 如何进行编码? 谢谢。 Mladen Rakic 2013.10.04 13:29 #1584 hock87: Mladen,你是对的。我知道这并不意味着任何形式的风险计算。 我只想做一个简单的手数计算。 让它根据账户余额的百分比自动计算手数。 lots=$500*(risk%/100) lots=$500*(0.05/100) lots=$500(0.0005) 手数=0.25美元 我很喜欢这个自动开仓0.25美元的EA。 而且手数不与止损或止盈相混合。 如何进行编码? 谢谢。 试试KimIV在这里描述的方法:b-Lots manone 2013.10.04 14:05 #1585 非常感谢mladen,我认为这与我心中的想法#1579 相似,顺便问一下,是否有可能以类似于RSI或MFI方程式的方式转换DPO,使垂直刻度正常化?去趋势价格震荡指标 - MQL4代码基础,再次感谢。 Mladen Rakic 2013.10.04 14:35 #1586 kenwa: 非常感谢mladen,我认为这与我的想法#1579 相似,顺便问一下,是否有可能以类似RSI或MFI的方式转换DPO,使垂直刻度标准化?去趋势价格震荡指标 - MQL4代码基础,再次感谢。 kenwa 一旦你有了模板,就不难了 这里是一个DPO的RSI。上面是DPO,下面是DPO的RSI。 附加的文件: rsi_of_dpo.mq4 2 kb rsi_of_dpo.gif 37 kb manone 2013.10.04 22:38 #1587 你好mladen,我以前得到过你的macd的rsi,它的制作方式/逻辑是否与最近的力指FI和DPO的相似? 我把你最近制作的新的rsi版本(FI和DPO)附在我的电脑上,我遇到一个问题,如果我用icustom 函数来调用它们的输出值,它不是像图表上显示的那样从0到100,而是从-100到0到100,有什么意见吗,是不是我把内部的缓冲值调用错了? 谢谢建议。 附加的文件: rsi_of_macd.mq4 2 kb Hock 2013.10.05 04:24 #1588 你好,姆拉登。 我有一个问题。 当买入订单的价格 向反方向移动时,距离市场价格超过25点。 它又会自动打开一个买入订单。 如何对这个策略进行编码? 谢谢。 extern double lots = 0.1; extern double stopsize = 50; extern double profsize = 20; int err; int ticket; double stop; double prof; int start() { int TotalOrders = 0; for (int i=0; i <= OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol() == Symbol()) TotalOrders++; } if (TotalOrders<1) { ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen); stop=(Ask+stopsize*Point); prof=(Ask-profsize*Point); OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue); } err=GetLastError(); // Comment("This is a test ", err, " ", stop, " ", prof); Comment(" "); return(0); } Coding help [存档!]我将免费撰写任何专家或指标。 退出策略。阶梯式止损与拖曳式止损 Mladen Rakic 2013.10.05 04:49 #1589 hock87: 你好,姆拉登。我有一个问题。 当买入订单的价格向反方向移动时,距离市场价格超过25点。 它又会自动打开一个买入订单。 如何对这个策略进行编码? 谢谢。 extern double lots = 0.1; extern double stopsize = 50; extern double profsize = 20; int err; int ticket; double stop; double prof; int start() { int TotalOrders = 0; for (int i=0; i <= OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) if (OrderSymbol() == Symbol()) TotalOrders++; } if (TotalOrders<1) { ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen); stop=(Ask+stopsize*Point); prof=(Ask-profsize*Point); OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue); } err=GetLastError(); // Comment("This is a test ", err, " ", stop, " ", prof); Comment(" "); return(0); } hock87 这段代码无法编译(用OP_BUY替换OP_Buy),我也没有看到任何打开另一个订单的条件。目前你只允许一个订单("if (TotalOrders<1) "行),这应该是你的出发点。 [删除] 2013.10.07 12:53 #1590 CCI fdoe hpp 我从一个主题中下载了这个指标,它比CCI-区间或Ma-区间指标好得多。 能否将其调整为在屏幕上显示为一个区域指标? 它被设置为CCI设置13,但如果它可以很容易地成为一个变量设置指标,那么这将是一个额外的好处--但这是一个非常次要的要求。 它是一个Forex-TSD指标,但没有mq4文件夹。 谢谢 尊敬的客户 附加的文件: cci_fdoehpp.ex4 19 kb 1...152153154155156157158159160161162163164165166...786 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不要改变这部分代码。这部分代码是检查你的经纪人是否是4位或5位经纪人。另外,这里有一个测试,使用500美元作为初始存款(风险5%,止损20点,测试用的是欧元兑美元),即使是初始存款也能工作。
你好,姆拉登。
昨天,我问了你关于订单编码的问题。
但它太复杂了。
我很抱歉,因为我想要一个简单的编码。
就像这样。
帐户余额 500美元
有5%的风险,开仓手数=0.25美元
手数=500美元*(风险/100)
手数=500美元*(0.05/100)
手数=500美元(0.0005)
手数=0.25美元
我很喜欢这个自动开仓0.25美元的EA。
而且手数不与止损或止盈相混合。
我希望你能帮助我解决这个问题。
非常感谢您。
extern double profsize = 10;
extern double Risk =5;
int err;
int ticket;
double stop;
double prof;
int init() { return(0); }
int deinit() { return(0); }
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
double sl = stopsize*Point*MathPow(10,Digits%2);
double tp = profsize*Point*MathPow(10,Digits%2);
stop = (Ask-sl);
prof = (Ask+tp);
ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
Comment(" ");
}
//
//
//
//
//
double getLots(double stopLoss, double risk)
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol(),MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);
}
return(MathMax(MathMin(lots,maxLot),minLot));
}你好,姆拉登。
昨天,我问了你关于订单编码的问题。
但它太复杂了。
我很抱歉,因为我想要一个简单的编码。
就像这样。
帐户余额为500美元
有5%的风险,开仓手数=0.25美元
手数=500美元*(风险/100)
手数=500美元*(0.05/100)
手数=500美元(0.0005)
手数=0.25美元
我很喜欢这个自动开仓0.25美元的EA。
而且手数不与止损或止盈相混合。
我希望你能帮助我解决这个问题。
非常感谢您。
extern double profsize = 10;
extern double Risk =5;
int err;
int ticket;
double stop;
double prof;
int init() { return(0); }
int deinit() { return(0); }
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
double sl = stopsize*Point*MathPow(10,Digits%2);
double tp = profsize*Point*MathPow(10,Digits%2);
stop = (Ask-sl);
prof = (Ask+tp);
ticket = OrderSend(Symbol(), OP_BUY, getLots(sl,Risk), Ask, 3, 0, 0, NULL,LimeGreen);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
Comment(" ");
}
//
//
//
//
//
double getLots(double stopLoss, double risk)
{
RefreshRates();
double pPoint = MarketInfo(Symbol(),MODE_POINT);
double step = MarketInfo(Symbol(),MODE_LOTSTEP);
double minLot = MarketInfo(Symbol(),MODE_MINLOT);
double maxLot = MarketInfo(Symbol(),MODE_MAXLOT);
double lots = minLot;
if (risk>0 && stopLoss>0)
{
lots = AccountFreeMargin()*(risk/100.0)/(stopLoss*MarketInfo(Symbol(),MODE_TICKVALUE)/pPoint);
}
return(MathMax(MathMin(lots,maxLot),minLot));
}hock87
当考虑到净值、止损 和所需风险时,没有简单(r)的方法来计算手数。另外,在不知道止损的情况下,你无法计算风险(想想看:如果你开了一个订单,比方说,大小为1手,你在1点后关闭,或者你在100点后关闭,损失(以及所承担的风险)是不一样的,它们不可能是一样的)。
如果你这样计算(没有已知的止损),那么这不是风险计算,而是简单的手数计算(这并不意味着任何形式的风险计算)。
hock87
当考虑到净值、止损和所需风险时,没有简单(r)的方法来计算手数大小。另外,在不知道止损的情况下,你无法计算风险(想想看:如果你开了一个订单,比如说,大小为1手,你在1点后关闭,或者你在100点后关闭,损失(以及所承担的风险)是不一样的,它们不可能是一样的)。
如果你这样计算(没有已知的止损),那么它不是风险计算,而是简单的手数计算(这并不意味着任何种类的风险计算)。Mladen,你是对的。
我知道这并不意味着任何形式的风险计算。
我只是想做一个简单的手数计算。
让它根据账户余额 的百分比自动计算手数。
lots=$500*(risk%/100)
lots=$500*(0.05/100)
lots=$500(0.0005)
手数=0.25美元
我很喜欢这个自动开仓0.25美元的EA。
而且手数不与止损或止盈相混合。
如何进行编码?
谢谢。
Mladen,你是对的。
我知道这并不意味着任何形式的风险计算。
我只想做一个简单的手数计算。
让它根据账户余额的百分比自动计算手数。
lots=$500*(risk%/100)
lots=$500*(0.05/100)
lots=$500(0.0005)
手数=0.25美元
我很喜欢这个自动开仓0.25美元的EA。
而且手数不与止损或止盈相混合。
如何进行编码?
谢谢。试试KimIV在这里描述的方法:b-Lots
非常感谢mladen,我认为这与我心中的想法#1579 相似,顺便问一下,是否有可能以类似于RSI或MFI方程式的方式转换DPO,使垂直刻度正常化?去趋势价格震荡指标 - MQL4代码基础,再次感谢。
非常感谢mladen,我认为这与我的想法#1579 相似,顺便问一下,是否有可能以类似RSI或MFI的方式转换DPO,使垂直刻度标准化?去趋势价格震荡指标 - MQL4代码基础,再次感谢。
kenwa
一旦你有了模板,就不难了
这里是一个DPO的RSI。上面是DPO,下面是DPO的RSI。
你好mladen,我以前得到过你的macd的rsi,它的制作方式/逻辑是否与最近的力指FI和DPO的相似?
我把你最近制作的新的rsi版本(FI和DPO)附在我的电脑上,我遇到一个问题,如果我用icustom 函数来调用它们的输出值,它不是像图表上显示的那样从0到100,而是从-100到0到100,有什么意见吗,是不是我把内部的缓冲值调用错了? 谢谢建议。
你好,姆拉登。
我有一个问题。
当买入订单的价格 向反方向移动时,距离市场价格超过25点。
它又会自动打开一个买入订单。
如何对这个策略进行编码?
谢谢。
extern double lots = 0.1;
extern double stopsize = 50;
extern double profsize = 20;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask+stopsize*Point);
prof=(Ask-profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
return(0);
}你好,姆拉登。
我有一个问题。
当买入订单的价格向反方向移动时,距离市场价格超过25点。
它又会自动打开一个买入订单。
如何对这个策略进行编码?
谢谢。
extern double lots = 0.1;
extern double stopsize = 50;
extern double profsize = 20;
int err;
int ticket;
double stop;
double prof;
int start()
{
int TotalOrders = 0;
for (int i=0; i <= OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if (OrderSymbol() == Symbol())
TotalOrders++;
}
if (TotalOrders<1)
{
ticket=OrderSend(Symbol(), OP_Buy, 0.1, Ask, 3, 0, 0, NULL,LimeGreen);
stop=(Ask+stopsize*Point);
prof=(Ask-profsize*Point);
OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue);
}
err=GetLastError();
// Comment("This is a test ", err, " ", stop, " ", prof);
Comment(" ");
return(0);
}hock87
这段代码无法编译(用OP_BUY替换OP_Buy),我也没有看到任何打开另一个订单的条件。目前你只允许一个订单("if (TotalOrders<1) "行),这应该是你的出发点。
CCI fdoe hpp
我从一个主题中下载了这个指标,它比CCI-区间或Ma-区间指标好得多。
能否将其调整为在屏幕上显示为一个区域指标?
它被设置为CCI设置13,但如果它可以很容易地成为一个变量设置指标,那么这将是一个额外的好处--但这是一个非常次要的要求。
它是一个Forex-TSD指标,但没有mq4文件夹。
谢谢
尊敬的客户