新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 574 1...567568569570571572573574575576577578579580581...1953 新评论 Alekseu Fedotov 2018.06.23 10:51 #5731 Galim_V:任务是找到具有最小闭合度的柱子 for(int x=0; x<=xBars -1; x++){反++。// 打印(Close[x],",",counter)。int h = ArrayMinimum(Close[x])。if(counter > 20) break;} 编译员对Close说脏话 将收盘价 写在一个单独的数组中,然后在ArrauMinimum小鸡外面写上 Galim_V 2018.06.23 11:00 #5732 Alekseu Fedotov: 将收盘价 写在一个单独的数组中,然后在ArrauMinimum小鸡外面写上 谢谢你! Taras Slobodyanik 2018.06.23 12:36 #5733 Galim_V:我们的任务是找到收盘价最低的条形图。有iHighest 和iLowest功能(现在也在MT5中)。 Galim_V 2018.06.23 12:57 #5734 Taras Slobodyanik:有iHighest和iLowest功能(现在也在MT5中)。 谢谢你! Ihor Herasko 2018.06.23 14:41 #5735 Galim_V:任务是找到具有最小闭合度的柱子 for(int x=0; x<=xBars -1; x++){反++。// 打印(Close[x],",",counter)。int h = ArrayMinimum(Close[x])。if(counter > 20) break;} 编译员对Close发誓说在MQL4中搜索最低/最高价格 的任务是由一行解决的。 double fMinClose = iClose(NULL, 0, iLowest(NULL, 0, MODE_CLOSE, <сколько баров>, <начинать с бара>)); PolarSeaman 2018.06.26 07:54 #5736 Taras Slobodyanik:你可以,但它不会完全是一个计时器。 谢谢你。 如何计算增量的手数?如果存款=1000,手数=0.1,存款变成2000手数=0.2。也就是说,如果押金是1500或1700,那么这批货就不会递增。 Konstantin Nikitin 2018.06.26 08:46 #5737 PolarSeaman:谢谢你。 如何计算增量的手数?如果存款=1000,手数=0.1,存款变成2000手数=0.2。也就是说,如果押金是1500或1700,拍品不会增加。double percentLot = 0.01, lot = NormalizeDouble(MathFloor(AccountInfoDouble(ACCOUNT_BALANCE)*percentLot/10)/10, 1); 不知何故... PolarSeaman 2018.06.26 10:05 #5738 Konstantin Nikitin: 像这样...不,不,存款1100,手数将是0.11,我需要手数不增加到2000。我如何 在设置 中设置步长=1000? nikolyafhfgjgfj 2018.06.26 10:22 #5739 下午好,请你告诉我是否有可能将索引器的坐标添加到鼠标上,如果可以,请发电子邮件给我,ereminmikola@yandex.ru。 Vladimir Liubchenko 2018.06.26 12:13 #5740 你好,程序员。你能不能给我一个提示,如何正确对待以下条件。 1.专家顾问打开2个市场订单(买入和卖出),在设置中指定相同的手数。- 订单的执行没有任何问题 下一个出现了问题,价格既可以向卖出方向移动,也可以向买入方向移动。我们如何安排代码,以便当n点过后,专家顾问将扫描这两笔交易在现场的盈利能力,并关闭n点后有负余额的订单?如果你有任何其他想法,请告知。 我给你的代码 - 草案,只有第一个点被执行,2个交易被打开,有TP和SL 2.当价格达到指定的点数时,我就用减去的余额关闭订单,并以相同的手数再开两个订单(买和卖)。止损设置在第一笔订单的开盘价,也就是说,如果趋势逆转,所有3笔订单应同时关闭。 extern int _ms = 1000; extern double _lots = 0.01; extern double _TP = 80; extern double _SL = 35; int _mn; double pt; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { pt = Point; if (Digits==3||Digits==5) {pt*=10;} else pt = Point; _mn = MagicNumberGenerator(_ms); Print("The magic number is ",_mn); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if (IsNewCandle()) { if (TotalOpenOrders(_mn)==0) { EnterTrade(OP_BUY); EnterTrade(OP_SELL); } } } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Открытие первых позиций | //+------------------------------------------------------------------+ void EnterTrade(int type) { double price = 0; double sl = 0; double tp = 0; double lot = _lots; if (type == OP_BUY) price = Ask; else if (type == OP_SELL) price = Bid; int err = 0; int ticket = OrderSend(_Symbol, type, lot, price, 30, 0, 0, NULL, _mn, 0, clrGreen); if (ticket == -1) { err = GetLastError(); Print("Could not place the order due to error ",err," ",ErrorDescription(err)); if (err == ERR_TRADE_NOT_ALLOWED) Alert("You need to enable you autotrade button"); } else { if(!OrderSelect(ticket,SELECT_BY_TICKET)) { err = GetLastError(); Print("Could not select the order due to error ",err," ",ErrorDescription(err)); } else { if (OrderType()==OP_SELL) { sl = OrderOpenPrice()+(_SL*pt); if (_SL==0) sl = 0; tp = OrderOpenPrice()-(_TP*pt); } else if (OrderType()==OP_BUY) { sl = OrderOpenPrice()-(_SL*pt); if (_SL==0) sl = 0; tp = OrderOpenPrice()+(_TP*pt); } if(!OrderModify(ticket, OrderOpenPrice(), sl, tp, 0, clrNONE)) err = GetLastError(); Print("Could not modify the order due to error ",err," ",ErrorDescription(err)); } } } 1...567568569570571572573574575576577578579580581...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
任务是找到具有最小闭合度的柱子
for(int x=0; x<=xBars -1; x++)
{
反++。
// 打印(Close[x],",",counter)。
int h = ArrayMinimum(Close[x])。
if(counter > 20) break;
}
编译员对Close说脏话
将收盘价 写在一个单独的数组中,然后在ArrauMinimum小鸡外面写上
我们的任务是找到收盘价最低的条形图。
有iHighest 和iLowest功能(现在也在MT5中)。
有iHighest和iLowest功能(现在也在MT5中)。
任务是找到具有最小闭合度的柱子
for(int x=0; x<=xBars -1; x++)
{
反++。
// 打印(Close[x],",",counter)。
int h = ArrayMinimum(Close[x])。
if(counter > 20) break;
}
编译员对Close发誓说
在MQL4中搜索最低/最高价格 的任务是由一行解决的。
你可以,但它不会完全是一个计时器。
谢谢你。
如何计算增量的手数?如果存款=1000,手数=0.1,存款变成2000手数=0.2。也就是说,如果押金是1500或1700,那么这批货就不会递增。
谢谢你。
如何计算增量的手数?如果存款=1000,手数=0.1,存款变成2000手数=0.2。也就是说,如果押金是1500或1700,拍品不会增加。
不知何故...
像这样...
不,不,存款1100,手数将是0.11,我需要手数不增加到2000。我如何 在设置 中设置步长=1000?
你好,程序员。你能不能给我一个提示,如何正确对待以下条件。
1.专家顾问打开2个市场订单(买入和卖出),在设置中指定相同的手数。- 订单的执行没有任何问题
下一个出现了问题,价格既可以向卖出方向移动,也可以向买入方向移动。我们如何安排代码,以便当n点过后,专家顾问将扫描这两笔交易在现场的盈利能力,并关闭n点后有负余额的订单?如果你有任何其他想法,请告知。
我给你的代码 - 草案,只有第一个点被执行,2个交易被打开,有TP和SL
2.当价格达到指定的点数时,我就用减去的余额关闭订单,并以相同的手数再开两个订单(买和卖)。
止损设置在第一笔订单的开盘价,也就是说,如果趋势逆转,所有3笔订单应同时关闭。