//+----------------------------------------------------------------------------+ //| 作者: Kim Igor V. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| 版本: 23.04.2009 | //| 说明:将停止水平移至无损 | //+----------------------------------------------------------------------------+ //| 参数。| //| sy - 仪器名称 ( "" - 任何符号, | //| NULL - 当前符号) | //| op - 操作 ( -1 - 任何位置) | //| mn - 魔术数字 ( -1 - 任何魔术师) | //+----------------------------------------------------------------------------+ void MovingInWL(string sy=NULL, int op=-1, int mn=-1) {
double po, pp, PercentStep,MoveStoplossLevel, StoplossLevel。 int i, k=OrdersTotal();
if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES){ if ((OrderSymbol()==sy || sy==")&& (op<0 || OrderType()==op)){ if (mn<0 || OrderMagicNumber()==mn) {
splxgf: - 非常感谢!一切都像钟表一样运作!
这里是Igor Kim的收支平衡代码,将 "splxgf: "而不是点数转换为百分比。
//+----------------------------------------------------------------------------+
//| 作者: Kim Igor V. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| 版本: 23.04.2009 |
//| 说明:将停止水平移至无损 |
//+----------------------------------------------------------------------------+
//| 参数。|
//| sy - 仪器名称 ( "" - 任何符号, |
//| NULL - 当前符号) |
//| op - 操作 ( -1 - 任何位置) |
//| mn - 魔术数字 ( -1 - 任何魔术师) |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy=NULL, int op=-1, int mn=-1) {
double po, pp, PercentStep,MoveStoplossLevel, StoplossLevel。
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES){
if ((OrderSymbol()==sy || sy==")&& (op<0 || OrderType()==op)){
if (mn<0 || OrderMagicNumber()==mn) {
po=MarketInfo(OrderSymbol(), MODE_POINT)。
如果(OrderType()==OP_BUY){
PercentStep=(OrderTakeProfit()-OrderOpenPrice())/po/(138-23);
MoveStoplossLevel = OrderOpenPrice() + PercentStep*(76-23);
StoplossLevel = OrderOpenPrice() + PercentStep*(51-23) 。
如果(OrderStopLoss()-OrderOpenPrice()<StoplossLevel*po) {
pp=MarketInfo(OrderSymbol(), MODE_BID);
if (pp-OrderOpenPrice()>MoveStoplossLevel*po) {
ModifyOrder(-1, OrderOpenPrice() +StoplossLevel*po, -1);
}
}
}
if (OrderType()==OP_SELL) {
PercentStep=(OrderTakeProfit()-OrderOpenPrice())/po/(138-23);
MoveStoplossLevel = OrderOpenPrice() - PercentStep*(76-23);
StoplossLevel = OrderOpenPrice() - PercentStep*(51-23)
if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<StoplossLevel*po) {
pp=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderOpenPrice()-pp>MoveStoplossLevel*po) {
ModifyOrder(-1, OrderOpenPrice()-StoplossLevel*po, -1);
}
}
}
}
}
}
}
}
//+----------------------------------------------------------------------------+
数字。
138是 以斐波那契百分比计算的获利。
23 是订单开盘价,以斐波那契%为单位。
76 是斐波那契网格的%,如果价格达到这个值, 止损将被移到斐波那契网格的51%。
来自e-MovingInWL2专家顾问的功能。
{
Trailing();
double Line11=iCustom(Symbol(), 0, "TDI Red Green", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, 4, 1);
double Line12=iCustom(Symbol(), 0, "TDI Red Green", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, 4, 2);
double Line21=iCustom(Symbol(), 0, "TDI Red Green", RSI_Period, RSI_Price, Volatility_Band, RSI_Price_Line, RSI_Price_Type, Trade_Signal_Line, Trade_Signal_Type, 5, 1);
if (timeprev == Time[0]) return(0);
timeprev = Time[0];
ma0=iMA(NULL,0,10,0,MODE_SMA,PRICE_CLOSE,1);
ma1=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,1);
ma2=iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,1);
ma3=iMA(NULL,0,800,0,MODE_SMA,PRICE_CLOSE,1);
if (CountBuy()>5 && Volume[0]==1 && Ask > ma0 && Ask > ma1 && Ask > ma3)
{
if (Line11>Level1&&Line12<Level1&&Line11>Line12)
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask-sl*Point, Ask+tp*Point, comment, Magic, 0, Blue);
}
if (CountSell()>5 && Volume[0]==1 && Bid < ma0 && Bid < ma1 && Ask < ma3)
{
if (Line11>Level2&&Line12>Level1&&Line11>Line12)
OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, Ask+sl*Point,Ask-tp*Point, comment, Magic, 0, Red);
}
return(0);
}
请帮助找到代码中的错误,即通过TDI红绿指标开立订单的信号。
测试者不打开交易,或只打开一个。它没有报告任何错误。
我已经正确指出了指标的缓冲区。
我刚学了几天mql4,我是个初学者)))
我提前感谢您的帮助其中的参数N是可变的,这意味着当它发生变化时,我们必须每次重新编写代码,增加(或删除)"如果 "条件(在相应的数组下)。
问题 - 是否可以只使用一个 "if",但在数组名称中使用变量 "to"(或其他)?即类似ARRAY_{k}的东西。我知道我们可以用终端变量代替数组,但这是一个极端的情况。对于数组,是否存在这样的解决方案?
我面临这样的困境--假设有一个循环--换。
其中的参数N是可变的,这意味着每次你改变它时,你必须通过添加(或删除)"如果 "条件(在相应的数组下)来修改代码。
问题 - 是否可以只使用一个 "if",但在数组名称中使用变量 "to"(或其他)?即类似ARRAY_{k}的东西。我知道我们可以用终端变量代替数组,但这是一个极端的情况。对于数组,是否存在这样的解决方案?
如果有某种程度的类似,你可以。
如果有某种程度的类似,你可以。
你能用语言描述一下这句话的意思吗?
你能用语言描述一下是什么意思吗?
对不起,我分心了。
数组索引 被作为标识符的一部分。
这里有一个简单的代码。
我想让程序在每 50支蜡烛上画一条垂直线。
程序将绘制一条垂直线。
问题是。
该程序仅在第一冠上 显示一条垂直线(50的倍数)。
谢谢你。
数组索引被作为标识符的一部分。
据我所知,你的解决方案在我的情况下不起作用,但它给了我一个值得检查的想法。谢谢你!
这里有一个简单的代码。
我想在每50支蜡烛上都 有它。
该程序暴露了一条垂直线。
问题
程序只在第一行 设置一条垂直线(50的倍数)。
我希望每第五十支蜡烛的名字都是一样的。
你正试图用相同的名字创建几个对象,这是不可能的。这个名字必须是独一无二的,就像时间一样。
这首先是。第二,循环在哪里?脚本将如何计算蜡烛的数量?