问吧! - 页 16

 

还有几个问题

我在结果中注意到的一件事是,如果一个交易被打开,在前一个交易完成之前,它不会打开另一个交易,你有什么办法来改变这一点吗? 让交易重叠?

(如果可以的话,请贴出第二个重叠交易的文件,我仍然需要测试这两个文件)。

2.简单的问题。

如果测试器在你输入500或1000的起始余额时不显示结果,但在输入3000或更高时显示结果,这到底是什么意思,(这是否意味着你在起始余额这么低的交易中破产了?)

 

你是如何脱离这个循环的?

我一直在添加一些自己的警报,并最终取得了一些成功,但很多时候我让自己陷入了一个永无止境的警报循环,打破它的唯一方法是强迫MT4关闭,我怎么能在那里放一个中断,或者有一个我可以使用的键盘中断?

谢谢你对我的基本问题的任何帮助。

 

你能不能给我看看这个......

编程仍然让我困惑...

我想知道你是否能给我讲讲一些非常基本的东西,告诉我应该如何编写代码来实现这一目标......

两条移动 平均线交叉......它进入了一个带有追踪止损的订单......

//---- input parameters

extern double lots=1.0;

extern int MA1=1;

extern int MA2=5;

extern int trailingstop=8;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+
 

我使用这个工具并创建了这个....

//+------------------------------------------------------------------+

//| This MQL is generated by Expert Advisor Builder |

//| http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |

//| |

//| In no event will author be liable for any damages whatsoever. |

//| Use at your own risk. |

//| |

//| Please do not remove this header. |

//+------------------------------------------------------------------+

#property copyright "Expert Advisor Builder"

#property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"

extern int MagicNumber = 0;

extern bool SignalMail = False;

extern bool EachTickMode = False;

extern double Lots = 1.0;

extern int Slippage = 0;

extern bool StopLossMode = False;

extern int StopLoss = 10;

extern bool TakeProfitMode = False;

extern int TakeProfit = 8;

extern bool TrailingStopMode = True;

extern int TrailingStop = 10;

#define SIGNAL_NONE 0

#define SIGNAL_BUY 1

#define SIGNAL_SELL 2

#define SIGNAL_CLOSEBUY 3

#define SIGNAL_CLOSESELL 4

int BarCount;

int Current;

bool TickCheck = False;

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init() {

BarCount = Bars;

if (EachTickMode) Current = 0; else Current = 1;

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit() {

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start() {

int Order = SIGNAL_NONE;

int Total, Ticket;

double StopLossLevel, TakeProfitLevel;

if (EachTickMode && Bars != BarCount) TickCheck = False;

Total = OrdersTotal();

Order = SIGNAL_NONE;

//+------------------------------------------------------------------+

//| Variable Begin |

//+------------------------------------------------------------------+

double Buy1_1 = iClose("EURUSD", PERIOD_M1, Current + 0);

double Buy1_2 = iMA("EURUSD", PERIOD_M1, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

double Sell1_1 = iClose("EURUSD", PERIOD_M1, Current + 0);

double Sell1_2 = iMA("EURUSD", PERIOD_M1, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

//+------------------------------------------------------------------+

//| Variable End |

//+------------------------------------------------------------------+

//Check position

bool IsTrade = False;

for (int i = 0; i < Total; i ++) {

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {

IsTrade = True;

if(OrderType() == OP_BUY) {

//Close

//+------------------------------------------------------------------+

//| Signal Begin(Exit Buy) |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Signal End(Exit Buy) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(TrailingStopMode && TrailingStop > 0) {

if(Bid - OrderOpenPrice() > Point * TrailingStop) {

if(OrderStopLoss() < Bid - Point * TrailingStop) {

OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

} else {

//Close

//+------------------------------------------------------------------+

//| Signal Begin(Exit Sell) |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Signal End(Exit Sell) |

//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

if (!EachTickMode) BarCount = Bars;

IsTrade = False;

continue;

}

//Trailing stop

if(TrailingStopMode && TrailingStop > 0) {

if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

if (!EachTickMode) BarCount = Bars;

continue;

}

}

}

}

}

}

//+------------------------------------------------------------------+

//| Signal Begin(Entry) |

//+------------------------------------------------------------------+

if (Buy1_1 > Buy1_2) Order = SIGNAL_BUY;

if (Sell1_1 < Sell1_2) Order = SIGNAL_SELL;

//+------------------------------------------------------------------+

//| Signal End |

//+------------------------------------------------------------------+

//Buy

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (1000 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Error opening BUY order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

//Sell

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

if(!IsTrade) {

//Check free margin

if (AccountFreeMargin() < (1000 * Lots)) {

Print("We have no money. Free Margin = ", AccountFreeMargin());

return(0);

}

if (StopLossMode) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

if(Ticket > 0) {

if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("SELL order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

} else {

Print("Error opening SELL order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

//+------------------------------------------------------------------+

问题是,当它在策略测试器中 运行时,并没有得到任何结果。

 

哦,我明白了!非常感谢您的教程。

 
skorcht:
我有两个简单的问题,我想...

我怎样才能使黑天鹅蜡烛的厚度默认为5,而不是3? 每当我提出一个新的图表时,它们就回到3。

另外,我怎样才能根据RSI指标的值在蜡烛上方或下方做一个标记?

我了解一些编程,但不知道其中的语法......所以要装作我什么都不知道。

非常感谢......如果我发现了什么,我会把它贴出来。

PS 专家顾问生成器很好,是否也有指标生成器? 那将是非常好的。

我只修复了平成 指数。

附加的文件:
 

新手 - 问题 - 需要帮助

我是这个论坛的新成员。 我想知道是否有人能给我任何关于精英部的价值的信息(除了上面链接中几乎没有信息的推销)。

我还试图从上述链接带我到的网页上提交一个问题,但表格一直显示其中一个字段是空白的。 那个字段是优先权字段,下拉框里没有任何东西(全是空白),而且我也没有办法在那个字段里设置一个值。 所以,我不能以这种方式提交任何问题。

DD

 

有人遇到过这种情况吗? 我正在使用阿尔帕里数据对我的系统进行回测,我会得到错误的4107无效价格和131无效成交量。 4107的产生是因为它得到的价格比货币对的小数点后4位数多。 我很惊讶我得到了4107,因为我传递给OrderSend()的价格是预定义的Bid和Ask。 我还在OrderSend()之前添加了一个Comment(Bid, " ", Ask);以查看Bid和Ask的返回值。 在Comment()中,它是适当的小数精度,然而OrderSend()仍然会产生错误。 我最后把Bid/Ask的值赋给了一个变量,并在该变量上使用NormalizeDouble(),然后把它传递给OrderSend(),这就成功了。

但是,我仍然得到了131,我不知道有什么解决方法可以解决这个问题。

PipChick,我个人认为这不值得进入精英区。

 

新手。

我知道一些C++,但我正在为一些非常基本的代码而苦恼。

我想要什么?

价格是1.2788。如果它上升到10点,我想买入。如果它向下移动10个点,我想卖出。

我有正确的代码吗?

OrderSend(Symbol(),OP_BUYSTOP,1,Ask+10*Point,slipage,

(Ask+10*Point)-10*Point,

( Ask+10*Point)+200*Point, "My order comment",0,0,Green)。

OrderSend(Symbol(),OP_SELLSTOP,1,Bid-10*Point,slipage,

(Bid-10*Point)+10*Point,

(Bid -10*Point)-200*Point, "My order comment",0,0,Green)。

我一直在阅读http://www.metatrader.info/node/34,但我迷路了。谢谢你的耐心。

 

你好。

我的问题:MT3。

它不工作了。为什么?

谢谢,Bongo

sell=false;

buy=false;

如果((C[1]>O[1])<O[0])那么 { buy=true; sell=false; }

如果((C[1]O[0])那么 { 卖=真; 买=假; }