[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 896 1...889890891892893894895896897898899900901902903...1145 新评论 Igor Makanu 2010.10.09 07:39 #8951 belck: 我想以这种方式设置一个获利。 if (TakeProfit<10*Point) TakeProfit=10*Point; 指标线在一段时间后会改变其位置。 我怎样才能确保止盈不改变,而保持与我打开时设置的相同? 我很难猜到你为什么要计算TP,TP通常是在下单的时候计算的--然后它将被分配给订单,你需要用OrderModify()来改变它,有时TP是虚拟的,在这种情况下你需要将它保存在数组中。 [删除] 2010.10.09 10:26 #8952 IgorM: 我甚至无法猜测你为什么要计算TP。 通常TP是在下单时计算的--然后它将被分配给订单,你需要用OrderModify()来改变它,有时TP是虚拟的,然后将它存储在一个数组中。 谢谢你的提示。 Dimka-novitsek 2010.10.09 17:53 #8953 我刚刚做了一个EA,我一直在训练,每次都在变快,但它没有交易!我想知道为什么? 如果可以,请告知,我想我会联系的。 //+------------------------------------------------------------------+ //| 迪蒙的边界.mq4 || //| Copyright © 2010, MetaQuotes Software Corp. //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright"Copyright © 2010, MetaQuotes Software Corp. #属性链接 "http://www.metaquotes.net" //+------------------------------------------------------------------+ //|专家初始化功能 | //+------------------------------------------------------------------+ Extern int BandsPeriod=20,i=1 ;extern int BandsShift=0; 外置双倍BandsDeviations=2.0。 extern double Lots=0.1,TakeProfit=50,stoploss=10。 int init() {int平均数。 //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家启动功能| //+------------------------------------------------------------------+ int start() {double Average, Upper Border, Lower Border, newres, sum, deviation; Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i)。 //---- newres=Close[i]-Average。 sum=newres*newres。 偏差=BandsDeviations*MathSqrt(sum/BandsPeriod)。 上限=平均+偏差。 下界=平均数+偏差。 //---- 如果(上边界<关闭[i]) { Comment(" buoy!",Upper Boundary ) 。 OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green)。 } 如果(下限>收盘[i]) { Comment(" sell!",Bottom Border ); OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red)。 } return(0); } //+------------------------------------------------------------------+ 我对非英语变量表示歉意,对我来说,记住做什么要容易得多。 [WARNING CLOSED!] Any newbie [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. [存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. [删除] 2010.10.09 18:14 #8954 VOLDEMAR: 嗨!我不知道????,这有什么问题?不修改市场订单 slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // 计算买入头寸的止损//。 tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); //计算买入位置的利润//。 sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); //计算卖出头寸的止损//。 tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits)。 //================================================== ==================// int total=OrdersTotal()。 int n=0。 for (int i=total-1; i>=0; i--) { 如果(OrderSelect(i, SELECT_BY_POS)) { 如果(OrderSymbol()==Symbol()) { n++; }}} if ( total == 1 ) { for (int k=total-1; k>=0; k--) { 如果(OrderSelect(k, SELECT_BY_TICKET)) Alert("order exists", k); { 如果((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OderStopLoss()==0))。 { OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue)。 Alert("error", GetLastError())。 }}}} return(0);} 问题是什么,请帮助...........?????你仍然可以这样尝试。 double TakeProfitBuy = NormalizeDouble((three - zero) / 4, Digits); if (TakeProfitBuy<10*Point) TakeProfitBuy=10*Point; double TakeProfitSell = NormalizeDouble((zero - two) / 4, Digits); if (TakeProfitSell<25*Point) TakeProfitSell=25*Point; [删除] 2010.10.09 18:38 #8955 什么是最好的方式。 - 在顾问中指定在哪些货币对和哪些时期进行交易 或 - 在一个货币对的图表上抛出一个具有必要预设时间框架的EA。 ?? [删除] 2010.10.09 18:50 #8956 还有一件事--请不要耍小聪明,我是提前写好的,否则就不太愉快了。 这个问题的答案对我非常重要,所以请认真对待。 Dimka-novitsek 2010.10.09 19:05 #8957 在我看来,第二种选择更加实用和方便。 [删除] 2010.10.09 19:09 #8958 下定决心并确定所选择的解决方案。 我也倾向于只在所需的货币对上抛出一个EA,或者为某些货币对编写一个EA。 我也倾向于选择直接把它扔上去。 至于交易者的品味,选择专家顾问并不那么重要。 Dimka-novitsek 2010.10.09 19:20 #8959 明白了,非常聪明。我不是专家,但第二个选项要容易得多。 Dimka-novitsek 2010.10.09 19:23 #8960 请帮助!专家顾问无法工作,根本无法交易。 1...889890891892893894895896897898899900901902903...1145 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我想以这种方式设置一个获利。
我甚至无法猜测你为什么要计算TP。 通常TP是在下单时计算的--然后它将被分配给订单,你需要用OrderModify()来改变它,有时TP是虚拟的,然后将它存储在一个数组中。
谢谢你的提示。
我刚刚做了一个EA,我一直在训练,每次都在变快,但它没有交易!我想知道为什么?
如果可以,请告知,我想我会联系的。
//+------------------------------------------------------------------+
//| 迪蒙的边界.mq4 ||
//| Copyright © 2010, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"Copyright © 2010, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//|专家初始化功能 |
//+------------------------------------------------------------------+
Extern int BandsPeriod=20,i=1 ;extern int BandsShift=0;
外置双倍BandsDeviations=2.0。
extern double Lots=0.1,TakeProfit=50,stoploss=10。
int init()
{int平均数。
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{double Average, Upper Border, Lower Border, newres, sum, deviation;
Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i)。
//----
newres=Close[i]-Average。
sum=newres*newres。
偏差=BandsDeviations*MathSqrt(sum/BandsPeriod)。
上限=平均+偏差。
下界=平均数+偏差。
//----
如果(上边界<关闭[i])
{ Comment(" buoy!",Upper Boundary ) 。
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample",16384,0,Green)。
}
如果(下限>收盘[i])
{ Comment(" sell!",Bottom Border );
OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point, "macd sample",16384,0,Red)。
}
return(0);
}
//+------------------------------------------------------------------+
我对非英语变量表示歉意,对我来说,记住做什么要容易得多。
嗨!我不知道????,这有什么问题?不修改市场订单
slb =NormalizeDouble(Bid - (StopLoss * Point),Digits); // 计算买入头寸的止损//。
tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits); //计算买入位置的利润//。
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); //计算卖出头寸的止损//。
tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits)。
//================================================== ==================//
int total=OrdersTotal()。
int n=0。
for (int i=total-1; i>=0; i--)
{
如果(OrderSelect(i, SELECT_BY_POS))
{
如果(OrderSymbol()==Symbol())
{
n++;
}}}
if ( total == 1 )
{
for (int k=total-1; k>=0; k--)
{
如果(OrderSelect(k, SELECT_BY_TICKET))
Alert("order exists", k);
{
如果((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OderStopLoss()==0))。
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue)。
Alert("error", GetLastError())。
}}}}
return(0);}
问题是什么,请帮助...........?????
你仍然可以这样尝试。
什么是最好的方式。
- 在顾问中指定在哪些货币对和哪些时期进行交易
或
- 在一个货币对的图表上抛出一个具有必要预设时间框架的EA。
??
还有一件事--请不要耍小聪明,我是提前写好的,否则就不太愉快了。
这个问题的答案对我非常重要,所以请认真对待。
下定决心并确定所选择的解决方案。
我也倾向于只在所需的货币对上抛出一个EA,或者为某些货币对编写一个EA。
我也倾向于选择直接把它扔上去。
至于交易者的品味,选择专家顾问并不那么重要。