if (OrderSelect(i,SELECT_BY_POS, MODE_TRADES)==false) break;
if (magicNumber!=0)
if (OrderMagicNumber() != magicNumber) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderOpenTime() <= lastTime) continue;
lastTime = OrderOpenTime();
lastPrice = OrderOpenPrice();
}
if (lastTime==0)
for(i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==false) break;
if (magicNumber!=0)
if (OrderMagicNumber() != magicNumber) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderOpenTime() <= lastTime) continue;
lastTime = OrderOpenTime();
lastPrice = OrderOpenPrice();
}
return(lastPrice);
}
[/PHP]
The assumtion is that currently open orders have times more recent than the already closed orders. If you wish to avoid that assumption, comment out this line :
这里有一个函数,它将检查订单的开放时间,并返回最近的开放时间的价格(如果没有以前的订单,它将返回0)。
{
datetime lastTime = 0;
double lastPrice = 0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS, MODE_TRADES)==false) break;
if (magicNumber!=0)
if (OrderMagicNumber() != magicNumber) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderOpenTime() <= lastTime) continue;
lastTime = OrderOpenTime();
lastPrice = OrderOpenPrice();
}
if (lastTime==0)
for(i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==false) break;
if (magicNumber!=0)
if (OrderMagicNumber() != magicNumber) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderOpenTime() <= lastTime) continue;
lastTime = OrderOpenTime();
lastPrice = OrderOpenPrice();
}
return(lastPrice);
}
[/PHP]
The assumtion is that currently open orders have times more recent than the already closed orders. If you wish to avoid that assumption, comment out this line :
[PHP] if (lastTime==0)
你好。
我需要一个双倍的函数,给我最后一个开放订单的orderopenprice()的结果。
有人能帮助我吗?
谢谢你你好。
我使用这个代码来计算lotsieze。有时我会收到131的错误。这段代码可以吗?
double MyLots,AllowedLots,MaxLots,MinLot,StopValue,TickValue;
int RightLots;
AllowedLots=(AccountFreeMargin()* Rischio_per_trade/100);
if (Digits==2 || Digits==4)
TickValue=MarketInfo(Symbol(),MODE_TICKVALUE)/10;
else
TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);
StopValue=StopLoss*TickValue;
MinLot=MarketInfo(Symbol(),MODE_MINLOT);
MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);
RightLots=MathRound(AllowedLots/StopValue);
double soldi_ora = AccountBalance()/100;
MyLots = soldi_ora*(Rischio_per_trade/10);
MyLots = NormalizeDouble(MyLots/StopLoss,2);
MyLots = NormalizeDouble(MyLots/(MarketInfo(Symbol(),MODE_TICKVALUE)/100),2);
MyLots = NormalizeDouble(MyLots/100,2);
return(MyLots);
}[/PHP]
the Stoploss is = [PHP]StopLoss= NormalizeDouble(Ask-SLbuy()-20*Point,5)*10000;和Rischio_per_trade = 0.5。
谢谢你
dasio
试试这个帖子中的函数:https://www.mql5.com/en/forum/general
你好。
我使用这个代码来计算lotsieze。有时我会收到131的错误。这段代码可以吗?
double MyLots,AllowedLots,MaxLots,MinLot,StopValue,TickValue;
int RightLots;
AllowedLots=(AccountFreeMargin()* Rischio_per_trade/100);
if (Digits==2 || Digits==4)
TickValue=MarketInfo(Symbol(),MODE_TICKVALUE)/10;
else
TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);
StopValue=StopLoss*TickValue;
MinLot=MarketInfo(Symbol(),MODE_MINLOT);
MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);
RightLots=MathRound(AllowedLots/StopValue);
double soldi_ora = AccountBalance()/100;
MyLots = soldi_ora*(Rischio_per_trade/10);
MyLots = NormalizeDouble(MyLots/StopLoss,2);
MyLots = NormalizeDouble(MyLots/(MarketInfo(Symbol(),MODE_TICKVALUE)/100),2);
MyLots = NormalizeDouble(MyLots/100,2);
return(MyLots);
}[/PHP]
the Stoploss is = [PHP]StopLoss= NormalizeDouble(Ask-SLbuy()-20*Point,5)*10000;和Rischio_per_trade = 0.5。
谢谢你亲爱的朋友们。
恭祝您和所有论坛成员在新的一年里身体健康,万事如意!我真的很感谢这里许多杰出和慷慨的编码员,以及来自这个论坛的成员的精彩想法。所有这些都对我提高交易技能有很大的帮助(虽然我在这个职业上还是个白痴 )。
最近,在回顾市场和我的交易方法时,我想到了一个对我帮助很大的指标(也许还有其他人)。我的想法很简单,但把它转化为代码就超出了我的能力范围。我不知道这样的指标是否存在,所以我将详细描述我的想法,并希望有人能帮助我找到或制作一个最适合的指标。
- 总体想法:我想在给定的固定范围内连续跟踪市场价格。该指标将给我一些关于价格段(给定的固定范围)内的价格行为的必要信息,如。(1)上限水平,(2)下限水平,(3)中值水平,(4)范围内的条数。我也想知道给定范围内的控制点(POC)水平,但可能编码太复杂,而且会消耗很多电脑内存。
- 类比:我发现流行的指标如 "Market Profile","Price Channel",或 "Session HiLo",......与我的想法很相似。但它们都受到时间间隔的限制,如每小时、每天......不是基于给定的固定范围,或者缺乏我上面提到的一些功能。我曾尝试对它们进行重新编码,以适应我的想法,但直到现在还没有成功。
- 关于指标的愿望:(1)输入参数。固定的点数范围;时间间隔(分钟、小时或天)或用于计算在给定范围内关闭的条数的条数;当价格触及水平线时的警报(可选)。
(2) 在主图表上的输出:显示对应于区间水平的水平线(上、下、中),以及告知在给定时间内区间内计算的条数的文本。
(3) 持续更新:信息将在三种情况下被更新:(a) 价格在当前给定范围内创下新的高点,(b) 当前给定范围内创下新的低点,(c) 越来越多的柱子在当前给定范围内合并。
我通常要手动完成所有这些事情。现在我希望这个指标能帮助我简化工作,节省时间,并使我的注意力集中在价格行为上。在互联网上搜索,但我找不到这样的工具。如果你知道一个,或者做一个,我将非常感激。
谢谢你的考虑和帮助
并再次祝你新年快乐!
最好的问候。
冯小刚
哦,我忘了附上关于我的指标形象的图片。
我附上另一张图片以澄清我的想法。
a) 当前区间的高点或低点是与输入的Bar Number分开确定的。高/低点适应于给定的范围大小和当前的市场价格行为。
b) 输入的Bar Number只是用来计算在当前范围内关闭的条数。
c) 我可以在一个图表上多次使用该指标,当然是在不同的输入设置下。
亲爱的朋友们。
恭祝您和所有论坛成员在新的一年里身体健康,万事如意!我真的很感谢这里许多杰出和慷慨的编码员,以及来自这个论坛的成员的精彩想法。所有这些都对我提高交易技能有很大的帮助(虽然我在这个职业上还是个白痴 )。
最近,在回顾市场和我的交易方法时,我想到了一个对我帮助很大的指标(也许还有其他人)。我的想法很简单,但把它转化为代码就超出了我的能力范围。我不知道这样的指标是否存在,所以我将详细描述我的想法,并希望有人能帮助我找到或制作一个最适合的指标。
- 总体想法:我想在给定的固定范围内连续跟踪市场价格。该指标将给我一些关于价格段(给定的固定范围)内的价格行为的必要信息,如。(1)上限水平,(2)下限水平,(3)中值水平,(4)范围内的条数。我也想知道给定范围内的控制点(POC)水平,但可能编码太复杂,而且会消耗很多电脑内存。
- 类比:我发现流行的指标如 "Market Profile","Price Channel",或 "Session HiLo",......与我的想法很相似。但它们都受到时间间隔的限制,如每小时、每天......不是基于给定的固定范围,或者缺乏我上面提到的一些功能。我曾尝试对它们进行重新编码以适应我的想法,但到现在还没有成功。
- 关于指标的愿望:(1)输入参数。固定的点数范围;时间间隔(分钟、小时或天)或用于计算在给定范围内关闭的条数的条数;当价格触及水平线时的警报(可选)。
(2) 在主图表上的输出:显示对应于区间水平的水平线(上、下、中),以及告知在给定时间内区间内计算的条数的文本。
(3) 持续更新:信息将在三种情况下被更新:(a) 价格在当前给定范围内创下新的高点,(b) 当前给定范围内创下新的低点,(c) 越来越多的柱子在当前给定范围内合并。
我通常要手动完成所有这些事情。现在我希望这个指标能帮助我简化工作,节省时间,并使我的注意力集中在价格行为上。在互联网上搜索,但我找不到这样的工具。如果你知道一个,或者做一个,我将非常感激。
谢谢你的考虑和帮助
并再次祝你新年快乐!
最好的问候。
尊敬的朋友
哦,我忘了附上关于我的指标形象的图片。我想我毕竟自己做了一些东西。现在与你分享。
正如指标里面所说,我没有发明任何东西,只是把我有的两个相关指标混合在一起。也许它没有很好的 "混合"。
如果你认为它有用的话,请看一看,并使它变得更好!
绘制多个矩形对象
你好。
我想画多个矩形来检查最后的n个蜡烛。
该点有一个简单的规则。
附上一个例子。
这个没有背景的大矩形定义了规则(使用移动平均数检查价格从1点到2点)。
绘制矩形的点是柱状图的高点和低点,也就是范围内的最高点。
我应该如何编码?
谢谢你的回答。
对不起。
我现在不能附上图片。然而,让我们假设有两个移动平均线。点1是快速MA与慢速MA向上的交叉,点2是快速MA与慢速MA向下的交叉。
谁能帮我修改一下附件中的rsi图表条形指标?
这个指标在RSI高于50水平时显示蓝条,低于这个水平时显示红条。
事实上,50水平是RSI的中间水平。如果再增加两个水平,即70和30,即真正的超买和超卖水平,那就更有用了,当RSI超过这两个水平70/30时,蜡烛也应该改变颜色。如果有任何帮助,我将非常感激,并感谢您的帮助。
拉斯洛。
试试这个版本吧。它仍然适用于两个级别,但它显示(或者说,不显示)三种状态。当水平线向上或向下突破时,它给条形图着色,如果rsi值在2个水平线之间,它让条形图保持原样(所以它们是简单的、不被指标着色的条形图),下面是一个例子,它看起来像什么,它与 "常规 "rsi的比较。
谁能帮助我修改所附的rsi图表条形指标?
当RSi高于50水平时,该指标显示蓝色条,低于此水平时显示红色条。
事实上,50水平是RSI的中间水平。如果再增加两个水平,即70和30,这才是真正的超买和超卖水平,那就更有用了,当RSI超过这两个水平70/30时,蜡烛也应该改变颜色。如果有任何帮助,我将非常感激,并感谢您的帮助。我想我自己毕竟做了些什么。现在与你分享。
正如指标里面所说,我没有发明任何东西,只是把我有的两个相关指标混合在一起。也许这不是很好的 "混合"。
如果你认为它有用,请看一看,并把它做得更好!Fareastol,我喜欢你的范围指标,我在想,如果你能添加 "起点 "拖动(你有)和 "终点拖动",然后它将自动绘制该期间的范围,那将会很酷。