我将写一个免费的mql4顾问 - 页 3 12345678910...20 新评论 Alexander Pavlov 2015.08.19 17:05 #21 Andrey Vaskin: 为了获得这方面的经验,我将免费为你的有趣想法和策略编写25个EA。1.看价格杯FORTS。2.如果在1分钟内,红柱是蓝柱的3倍*,则买入。如果是相反的情况就卖出。3.关闭你买入的头寸--如果蓝条在1分钟内是红条的3倍。如果在1分钟内,红柱比蓝柱大3倍,则关闭已售出的头寸。4)循环往复。---*指的是3次或以上。"3次 "和 "1分钟 "必须在猫头鹰参数中设置。还需要一个止损点。堆栈的图片(卖出/买入订单的数量)。数量也可以从市场概况中获取。 [删除] 2015.08.19 17:09 #22 Alexander Pavlov:1.看一下价格玻璃。2.如果在1分钟内,红柱是蓝柱的3倍*,则买入。如果是相反的情况就卖出。3.关闭购买的头寸--如果蓝条在1分钟内是红条的3倍。如果在1分钟内,红柱比蓝柱大3倍,则关闭已售出的头寸。4)循环往复。---*指的是3次或以上。"3次 "和 "1分钟 "必须在猫头鹰参数中设置。还需要一个止损点。堆栈的图片(卖出/买入订单的数量)。数量也可以从市场概况中获取。 这是MT5,作者只问了MT4下的任务。 [删除] 2015.08.19 21:12 #23 Vitaly Muzichenko:他们是关于随机指标、RSI MACD和其他被称为振荡器的垃圾,他们把故事画得非常好,但我没有遇到一个专家顾问,甚至保持了平衡,更不用说盈利了。但人们希望不断地用这些无用的指标来搅动一些东西。我认为非常奇怪的是,他们从一个版本的MT到另一个版本的MT已经好几年了。谁需要他们?可能只是为了一个样本程序代码,但人们认为,要在他们身上交易)))) 垃圾?好吧,给我看一个不是垃圾的例子。另外,你没有看到的东西并不意味着它不存在。 Vitaly Muzichenko 2015.08.19 22:33 #24 Tapochun: 垃圾?好吧,给我一个不是垃圾的例子。另外,你没有看到的东西并不意味着它不存在。 我所看到的唯一不是垃圾的东西是关于烛台形态的。 Leanid Aladzyeu 2015.08.19 22:43 #25 Vitaly Muzichenko: 我所看到的唯一没有排水的东西是在烛台形态上。 我的也没有排水,这是你的话。而且那里没有任何模式。 Vitaly Muzichenko 2015.08.19 23:00 #26 Leanid Aladzyeu: 我的也不是齐头并进,这些都是你说的。而且没有什么规律。 我此刻并不是指数学。我写的是纯粹的指标。你的是好的。 kit111 2015.08.19 23:13 #27 帮助修复EA放了4个挂单 2、买入和卖出止损2 买入和卖出限额 我不知道如何互换挂单,但我不知道应该把订单放在什么距离。这与买入头寸和卖出止损是一样的。 在所有订单下达后,应在新的订单触发前下达新的订单我有很多亏损的手,但如果我换了订单,它们会被减去。 //| iiiiiiiiiiiiiii_buy_sell.mq4|//||//||//+------------------------------------------------------------------+extern int N = 100; // 仓库和卖场(单独计算)允许有一百件。外置双数 Lots = 0.01; // lot外部int PROF = 100; // 拖曳式止损,从一百个点的利润开始。extern int TS = 200; // 在价格后面的止损上拉动它。extern int STEP = 200; // 两个止损单之间的距离外置 int TP = 10000; //取舍顺序extern int SL = 10000; // 接受订单外部 bool Buy = false; // 只买不卖外部 bool Sell = true; // 只卖出。外部双倍 PROSADKA = 0.5; // 当权益等于或小于这个余额的分数时外来的int magicbuy = 777;外来的int magicsell = 888;int M;双重buystop_OP, sellstop_OP。双重selllimit_OP, buylimit_OP。int start(){// ---------------------------------------------------------------------// ---------------------------------------------------------------------//看看我们有哪些订单。int buy = 0,sell = 0。int buystop = 0,sellstop = 0。int selllimit = 0,buyylimit = 0。int buys = 0,sells = 0。int Total = 0。for(int i = 0; i < OrdersTotal(); i ++){OrderSelect(i, SELECT_BY_POS, MODE_TRADES)。如果(OrderMagicNumber() !=magicbuy && OrderMagicNumber() !=magicsell) 继续。如果(OrderType() == OP_BUYSTOP)buystop = OrderTicket()。如果(OrderType() == OP_BUYLIMIT)buylimit = OrderTicket()。如果(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY)买了++。如果(OrderType() == OP_SELLSTOP)sellstop = OrderTicket()。如果(OrderType() == OP_SELLLIMIT)selllimit = OrderTicket();如果(OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELL )售价++。共计++。}// ---------------------------------------------------------------------int LET = 0。如果(AccountEquity()/AccountBalance()< PROSADKA)LET = 1; // 如果缩减量很高--禁止放置新头寸// ---------------------------------------------------------------------// 设置新的交易。if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // 一分钟一次{如果( buystop < 1 && buys < N && Buy == true){buystop_OP =NormalizeDouble(Ask+STEP*Point,Digits);buystop = OrderSend(Symbol(,OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,Blue);}如果( buylimit < 1 && buys < N && Buy == True){buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits)。buylimit = OrderSend(Symbol(,OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red)。}如果( sellstop < 1 && sells < N && Sell == true){sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits)。sellstop = OrderSend(Symbol(,OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red);}如果( selllimit < 1 && sells < N && Sell == True){selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits)。selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,Magicsell,0,Blue)}M = iTime(Symbol(),1,0)。}// ---------------------------------------------------------------------// 如果订单与价格的距离超过了TS,就把它拖到靠近价格的地方。如果(OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point)OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue) 。如果(OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < Bid - TS*Point)OrderModify(sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point, Bid - TS*Point-TP*Point,0,Orange)。如果(OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > Bid + TS*Point)OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue) 。如果(OrderSelect(buyimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point)OrderModify(buyimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange) 。// ---------------------------------------------------------------------// 如果订单利润大于PROF的止损点,并且离价格比TS更远,则在价格后面拖动这个止损点。for(i = 0; i < OrdersTotal(); i ++){OrderSelect(i, SELECT_BY_POS, MODE_TRADES)。如果(OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point, Digits))OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TS*Point,Digits),OrderTakeProfit(),0,Blue) 。如果(OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits)OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(),0,Red)}return(0);} I will write a 如何编码? 问吧! Mikhail Filimonov 2015.08.20 01:49 #28 该代码的格式应该是这样的(SRC)。//| iiiiiiiiiiiiiiiii_buy_sell.mq4 | //| | //| | //+------------------------------------------------------------------+ extern int N = 100; // баев и сэллов (считаем отдельно) разрешаем по стока штук иметь extern double Lots = 0.01; // лот extern int PROF = 100; // тралить стоп начнем с профита во стока пипсов extern int TS = 200; // тащить его станем на стока сзади пип за ценой extern int STEP = 200; // расстояние меджу отложками extern int TP = 10000; // тейк ордеров extern int SL = 10000; // тейк ордеров extern bool Buy = false; // только покупать extern bool Sell = true; // только продавать extern double PROSADKA = 0.5; // когда эквити равно или менее вот такой части от баланса extern int magicbuy = 777; extern int magicsell = 888; int M; double buystop_OP, sellstop_OP; double selllimit_OP, buylimit_OP; int start() { // --------------------------------------------------------------------- // --------------------------------------------------------------------- // смотрим, какие ордера у нас есть: int buy = 0,sell = 0; int buystop = 0,sellstop = 0; int selllimit = 0,buylimit = 0; int buys = 0, sells = 0; int Total = 0; for(int i = 0; i < OrdersTotal(); i ++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() != magicbuy && OrderMagicNumber() != magicsell) continue; if(OrderType() == OP_BUYSTOP) buystop = OrderTicket(); if(OrderType() == OP_BUYLIMIT) buylimit = OrderTicket(); if(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY) buys ++; if(OrderType() == OP_SELLSTOP) sellstop = OrderTicket(); if(OrderType() == OP_SELLLIMIT) selllimit = OrderTicket(); if(OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELL ) sells ++; Total ++; } // --------------------------------------------------------------------- int LET = 0; if (AccountEquity()/AccountBalance() < PROSADKA) LET = 1; // если просадки до фига - запрет на выставление новых отложек // --------------------------------------------------------------------- // выставление отложек : if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // раз в минуту { if ( buystop < 1 && buys < N && Buy == true) { buystop_OP = NormalizeDouble(Ask+STEP*Point,Digits); buystop = OrderSend(Symbol(),OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,Blue); } if ( buylimit < 1 && buys < N && Buy == True) { buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits); buylimit = OrderSend(Symbol(),OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red); } if ( sellstop < 1 && sells < N && Sell == true) { sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits); sellstop = OrderSend(Symbol(),OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red); } if ( selllimit < 1 && sells < N && Sell == True) { selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits); selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,magicsell,0,Blue); } M = iTime(Symbol(),1,0); } // --------------------------------------------------------------------- // еси отложки дальше чем TS от цены, подтаскиваем их поближе : if (OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point) OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue); if (OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < Bid - TS*Point) OrderModify(sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point,Bid - TS*Point-TP*Point,0,Orange); if (OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > Bid + TS*Point) OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue); if (OrderSelect(buylimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point) OrderModify(buylimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange); // --------------------------------------------------------------------- // еси профит ордера больше PROF стоп его дальше чем TS от цены, тралим этот стоп за ценой : for(i = 0; i < OrdersTotal(); i ++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point,Digits)) OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TS*Point,Digits),OrderTakeProfit(),0,Blue); if (OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits)) OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(),0,Red); } return(0); } Adelaur 2015.08.20 18:24 #29 Andrey Vaskin:为了获得这方面的经验,我将免费为你的有趣想法和策略编写25个EA。只剩下19个EA了下午好,我又在这里的另一个主题中写道。我有一个二元期权的策略。一般来说,其本质是:使用周期为20的移动平均线,我确定趋势,使用ADX,我定义其强度(通常在视觉值超过25时,我将其定义为强势),使用图形分析,我定义进入点(通常是早晨、黄昏之星、锤子和 "挂果",我不考虑具有对称阴影的十字星,因为我认为它们是矛盾的)。在所需模型的蜡烛收盘时,我在5点钟方向进入(我在D1上手动检查了6个月的统计数据:6个月内最多只有一个信号。H4不被考虑,因为不同经纪商的蜡烛几何图形的收盘时间不同)。一般来说,在我收到的统计数据上,平均每个工具一个月0.7-3%(在交易中总是输入1%的存款),我手动扫描了5个工具(而我在期权上使用的经纪人有42个工具,手动所有的统计数据要通过很多工作来完成)。我不考虑新闻对结果的影响,以后我可以从终端发布文件,上面有我的标记,我在哪里进场,在什么时候到期,我在哪里获利,我在哪里亏损等等。我的经纪人使用的是MT4终端。也许有人有一些建议,如何改进这个策略?在描述中,我描述了大致的想法,如果专家顾问能够自动改变每个时期的交易价值(例如每月一次),那就更好了。 Vladimir Karputov 2015.08.20 18:25 #30 Adelaur: 在回复时,光标有时会跳到引用栏,而且不会跳出来。如何处理:论坛:回复时光标跳到引文中 12345678910...20 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为了获得这方面的经验,我将免费为你的有趣想法和策略编写25个EA。
1.看价格杯FORTS。
2.如果在1分钟内,红柱是蓝柱的3倍*,则买入。如果是相反的情况就卖出。
3.关闭你买入的头寸--如果蓝条在1分钟内是红条的3倍。如果在1分钟内,红柱比蓝柱大3倍,则关闭已售出的头寸。
4)循环往复。
---
*指的是3次或以上。
"3次 "和 "1分钟 "必须在猫头鹰参数中设置。
还需要一个止损点。
堆栈的图片(卖出/买入订单的数量)。
数量也可以从市场概况中获取。
1.看一下价格玻璃。
2.如果在1分钟内,红柱是蓝柱的3倍*,则买入。如果是相反的情况就卖出。
3.关闭购买的头寸--如果蓝条在1分钟内是红条的3倍。如果在1分钟内,红柱比蓝柱大3倍,则关闭已售出的头寸。
4)循环往复。
---
*指的是3次或以上。
"3次 "和 "1分钟 "必须在猫头鹰参数中设置。
还需要一个止损点。
堆栈的图片(卖出/买入订单的数量)。
数量也可以从市场概况中获取。
他们是关于随机指标、RSI MACD和其他被称为振荡器的垃圾,他们把故事画得非常好,但我没有遇到一个专家顾问,甚至保持了平衡,更不用说盈利了。
但人们希望不断地用这些无用的指标来搅动一些东西。
我认为非常奇怪的是,他们从一个版本的MT到另一个版本的MT已经好几年了。谁需要他们?可能只是为了一个样本程序代码,但人们认为,要在他们身上交易))))
垃圾?好吧,给我一个不是垃圾的例子。另外,你没有看到的东西并不意味着它不存在。
我所看到的唯一没有排水的东西是在烛台形态上。
我的也不是齐头并进,这些都是你说的。而且没有什么规律。
帮助修复
EA放了4个挂单
2、买入和卖出止损
2 买入和卖出限额
我不知道如何互换挂单,但我不知道应该把订单放在什么距离。
这与买入头寸和卖出止损是一样的。
在所有订单下达后,应在新的订单触发前下达新的订单
我有很多亏损的手,但如果我换了订单,它们会被减去。
//| iiiiiiiiiiiiiii_buy_sell.mq4|
//||
//||
//+------------------------------------------------------------------+
extern int N = 100; // 仓库和卖场(单独计算)允许有一百件。
外置双数 Lots = 0.01; // lot
外部int PROF = 100; // 拖曳式止损,从一百个点的利润开始。
extern int TS = 200; // 在价格后面的止损上拉动它。
extern int STEP = 200; // 两个止损单之间的距离
外置 int TP = 10000; //取舍顺序
extern int SL = 10000; // 接受订单
外部 bool Buy = false; // 只买不卖
外部 bool Sell = true; // 只卖出。
外部双倍 PROSADKA = 0.5; // 当权益等于或小于这个余额的分数时
外来的int magicbuy = 777;
外来的int magicsell = 888;
int M;
双重buystop_OP, sellstop_OP。
双重selllimit_OP, buylimit_OP。
int start()
{
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
//看看我们有哪些订单。
int buy = 0,sell = 0。
int buystop = 0,sellstop = 0。
int selllimit = 0,buyylimit = 0。
int buys = 0,sells = 0。
int Total = 0。
for(int i = 0; i < OrdersTotal(); i ++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES)。
如果(OrderMagicNumber() !=magicbuy && OrderMagicNumber() !=magicsell) 继续。
如果(OrderType() == OP_BUYSTOP)
buystop = OrderTicket()。
如果(OrderType() == OP_BUYLIMIT)
buylimit = OrderTicket()。
如果(OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUY)
买了++。
如果(OrderType() == OP_SELLSTOP)
sellstop = OrderTicket()。
如果(OrderType() == OP_SELLLIMIT)
selllimit = OrderTicket();
如果(OrderType() == OP_SELLSTOP || OrderType() == OP_SELLLIMIT || OrderType() == OP_SELL )
售价++。
共计++。
}
// ---------------------------------------------------------------------
int LET = 0。
如果(AccountEquity()/AccountBalance()< PROSADKA)
LET = 1; // 如果缩减量很高--禁止放置新头寸
// ---------------------------------------------------------------------
// 设置新的交易。
if(LET == 0 && TimeCurrent() && M != iTime(Symbol(),1,0)) // 一分钟一次
{
如果( buystop < 1 && buys < N && Buy == true)
{
buystop_OP =NormalizeDouble(Ask+STEP*Point,Digits);
buystop = OrderSend(Symbol(,OP_BUYSTOP,Lots,buystop_OP,10,buystop_OP-SL*Point,buystop_OP+TP*Point,NULL,magicbuy,0,Blue);
}
如果( buylimit < 1 && buys < N && Buy == True)
{
buylimit_OP = NormalizeDouble(Ask-STEP*Point,Digits)。
buylimit = OrderSend(Symbol(,OP_BUYLIMIT,Lots,buylimit_OP,100,buylimit_OP-SL*Point,buylimit_OP+TP*Point,NULL,magicbuy,0,Red)。
}
如果( sellstop < 1 && sells < N && Sell == true)
{
sellstop_OP = NormalizeDouble(Bid-STEP*Point,Digits)。
sellstop = OrderSend(Symbol(,OP_SELLSTOP,Lots,sellstop_OP,10,sellstop_OP+SL*Point,sellstop_OP-TP*Point,NULL,magicsell,0,Red);
}
如果( selllimit < 1 && sells < N && Sell == True)
{
selllimit_OP = NormalizeDouble(Bid+STEP*Point,Digits)。
selllimit = OrderSend(Symbol(),OP_SELLLIMIT,Lots,selllimit_OP,100,selllimit_OP+SL*Point,selllimit_OP-TP*Point,NULL,Magicsell,0,Blue)
}
M = iTime(Symbol(),1,0)。
}
// ---------------------------------------------------------------------
// 如果订单与价格的距离超过了TS,就把它拖到靠近价格的地方。
如果(OrderSelect(buystop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYSTOP && OrderOpenPrice() > Ask + TS*Point)
OrderModify(buystop,Ask + TS*Point,Ask + TS*Point-SL*Point,Ask + TS*Point+TP*Point,0,DeepSkyBlue) 。
如果(OrderSelect(sellstop,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLSTOP && OrderOpenPrice() < Bid - TS*Point)
OrderModify(sellstop,Bid - TS*Point,Bid - TS*Point+SL*Point, Bid - TS*Point-TP*Point,0,Orange)。
如果(OrderSelect(selllimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_SELLLIMIT && OrderOpenPrice() > Bid + TS*Point)
OrderModify(selllimit,Bid + TS*Point,Bid + TS*Point+SL*Point,Bid + TS*Point-TP*Point,0,DeepSkyBlue) 。
如果(OrderSelect(buyimit,SELECT_BY_TICKET,MODE_TRADES) == true && OrderType() == OP_BUYLIMIT && OrderOpenPrice() < Ask - TS*Point)
OrderModify(buyimit,Ask - TS*Point,Ask - TS*Point-SL*Point,Ask - TS*Point+TP*Point,0,Orange) 。
// ---------------------------------------------------------------------
// 如果订单利润大于PROF的止损点,并且离价格比TS更远,则在价格后面拖动这个止损点。
for(i = 0; i < OrdersTotal(); i ++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES)。
如果(OrderType() == OP_BUY && (Ask - OrderOpenPrice())/Point > PROF && OrderStopLoss() < NormalizeDouble(Ask - TS*Point, Digits))
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask - TS*Point,Digits),OrderTakeProfit(),0,Blue) 。
如果(OrderType() == OP_SELL && (OrderOpenPrice() - Bid)/Point > PROF && OrderStopLoss() > NormalizeDouble(Bid + TS*Point,Digits)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid + TS*Point,Digits),OrderTakeProfit(),0,Red)
}
return(0);
}
该代码的格式应该是这样的(SRC)。
为了获得这方面的经验,我将免费为你的有趣想法和策略编写25个EA。
只剩下19个EA了
下午好,我又在这里的另一个主题中写道。
我有一个二元期权的策略。一般来说,其本质是:使用周期为20的移动平均线,我确定趋势,使用ADX,我定义其强度(通常在视觉值超过25时,我将其定义为强势),使用图形分析,我定义进入点(通常是早晨、黄昏之星、锤子和 "挂果",我不考虑具有对称阴影的十字星,因为我认为它们是矛盾的)。在所需模型的蜡烛收盘时,我在5点钟方向进入(我在D1上手动检查了6个月的统计数据:6个月内最多只有一个信号。H4不被考虑,因为不同经纪商的蜡烛几何图形的收盘时间不同)。
一般来说,在我收到的统计数据上,平均每个工具一个月0.7-3%(在交易中总是输入1%的存款),我手动扫描了5个工具(而我在期权上使用的经纪人有42个工具,手动所有的统计数据要通过很多工作来完成)。我不考虑新闻对结果的影响,以后我可以从终端发布文件,上面有我的标记,我在哪里进场,在什么时候到期,我在哪里获利,我在哪里亏损等等。我的经纪人使用的是MT4终端。也许有人有一些建议,如何改进这个策略?
在描述中,我描述了大致的想法,如果专家顾问能够自动改变每个时期的交易价值(例如每月一次),那就更好了。