[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 880 1...873874875876877878879880881882883884885886887...1145 新评论 Igor Makanu 2010.10.02 04:01 #8791 FoxUA: 也许我的意思并不准确,我需要BalansEURUSD 这个变量以百分比显示盈亏,"BalansEURUSD =5%",像这样以此类推,再来几对,比方说英镑和多兰姆。 一度 这比较难,但可以计算出来。 对于一个卖出的订单 profit=NormalizeDouble((OrderOpenPrice()-Ask)*MarketInfo("EURUSD",MODE_TICKVALUE)*OrderLots()/Point,2); margin=NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck("EURUSD",OP_SELL,OrderLots(),2)。 用于购买。 profit=NormalizeDouble((Bid-OrderOpenPrice())*MarketInfo("EURUSD",MODE_TICKVALUE)*OrderLots()/Point,2)。 margin=NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck("EURUSD",OP_BUY,OrderLots(),2)。 这些都是计算订单利润的完整公式+保证金,对于这个订单,应考虑到保证金,因为如果订单关闭,释放的保证金将被添加到余额中,资金将在数字上增加,但真正的利润可能还没有得到 Vladimir Pastushak 2010.10.02 06:23 #8792 伙计们,请告诉我如何触发一个挂单 并放置另一个??????。我试着通过订单选择,但它不工作 ........ after order type == buy, // where buystop was earlier open pending order // (it does not open) Роман 2010.10.02 07:15 #8793 VOLDEMAR: 你们能不能告诉我,如何触发一个挂单,再下一个??????。我试图通过订单选择来做,但没有成功 ........ 之后 订单类型==买入,//在买入之前是通过停止来实现的 打开一个挂单//(不打开)。 如果有,说明(之前设置的)挂单已经成为可销售的,那么就下一个订单(另一个你需要的挂单,例如:如果买单在市场上,那么就下一个补仓单,等等)。我建议阅读 alpari网站 - 外汇培训 - 交易员手册 - 自动交易MKL4(左侧面板) - 交易顾问 - (订单选择、订单结束、条件运算符等)。 http://www.alpari.ru/ru/school/textbook/autotrading/expert_advisors/- 简明扼要,内容丰富... Dimka-novitsek 2010.10.02 09:37 #8794 我正在努力学习如何编程。 请告诉我,我怀疑在专家顾问中,以下条件从未得到满足 while (B*Point >zmm) Comment("差值", B); OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample," 16384,0,Green); 如何检查? 有哪些方法可以使用? 而当蜱虫不工作时,是否有可能呢? fanat 2010.10.02 11:44 #8795 亲爱的专家们!我正在学习写一个EA。它是有效的,但不是一切。修改和关闭订单的区块不起作用。我找不到原因。我请求帮助。 //+------------------------------------------------------------------+ //| Monetny dvor1.mq4 | //| fanat | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "fanat" #property link "http://www.metaquotes.net" extern int TakeProfit=484; // extern int StopLoss=89; // extern bool BStop=true; //Включение безубытка extern int Stop=90; // //+------------------------------------------------------------ int start() {//1 if(TakeProfit<10){Alert("Ошибка,Take слишком близко");return;} if(StopLoss<10){Alert("Ошибка,StopLoss слишком близко");return;} bool Buy=false; bool Sell=false; if(Close[0]>High[1])Buy=true; if(Close[0]<Low[1])Sell=true; int err; int Order_Count[6]; int OP=-1; ArrayInitialize(Order_Count,0); for(int i=0;i<=OrdersTotal();i++) // {//2 // Блок учета ордеров if(OrderSelect(i,SELECT_BY_POS)==true)// {//3 // Order_Count[OrderType()]++; // if(OP!=-1)return(Order_Count[OP]); // }//3 }//2 if(OrdersTotal()>0) {//2 if(BStop==true&&OrderOpenPrice()!=OrderStopLoss()) //Модификация ордеров {//3 // if((OrderType()==0&&(Ask-OrderOpenPrice())>Stop)||(OrderType()==1&&(OrderOpenPrice()-Bid)>Stop))// {//4 // int ticket=OrderTicket(); // double Price=OrderOpenPrice(); // double SL=OrderOpenPrice(); // double TP=OrderTakeProfit(); // bool Ans=OrderModify(ticket,Price,SL,TP,0); // if(Ans==false){err=GetLastError();Alert(err);Sleep(500);return;} //Обработка ошибок }//4 }//3 // if(OrderType()==1&&(Buy==true||Ask<OrderTakeProfit()||Bid>OrderStopLoss())) //Условия закрытия ордеров Sell {//3 ticket=OrderTicket(); //Закрытие ордеров Sell double Lots=OrderLots(); // OrderClose(ticket,Lots,Ask,4); // err=GetLastError(); //Обработка ошибок if(err>0){Alert(err);Sleep(500);return;} // }//3 if(OrderType()==0&&(Sell==true||Bid>OrderTakeProfit()||Ask<OrderStopLoss())) //Условия закрытие ордеров Buy {//3 ticket=OrderTicket(); //Закрытие ордеров Buy Lots=OrderLots(); // OrderClose(ticket,Lots,Bid,4); // err=GetLastError(); //Обработка ошибок if(err>0){Alert(err);Sleep(500);return;} // }//3 }//2 if(Buy==false&&Sell==false)return; int Total=1; double Lot=0.03; /* if(AccountBalance()>400)Lot=0.04; // if(AccountBalance()>500)Lot=0.05; // if(AccountBalance()>600)Total=2; // if(AccountBalance()>800)Lot=0.04;Total=2; // Блок вычисления лота для реала if(AccountBalance()>1000)Lot=0.05;Total=2; // if(AccountBalance()>1200)Lot=0.04;Total=3; // if(AccountBalance()>1500)Lot=0.05;Total=3; // if(AccountBalance()>1600)Lot=0.04;Total=4; // if(AccountBalance()>1800)Lot=0.03;Total=6;*/ // Lot=0.1; if(AccountBalance()>1600)Lot=0.2; if(AccountBalance()>2400)Lot=0.3; if(Order_Count[OP_BUY]<Total&&Order_Count[OP_SELL]==0&&Buy==true) //Открытие ордеров Buy {//2 // OrderSend(Symbol(), OP_BUY, Lot, Ask, 4, Ask-StopLoss*Point, Ask+TakeProfit*Point);// err=GetLastError(); //Обработка ошибок if(err>0){Alert(err);Sleep(500);} // return; }//2 if(Order_Count[OP_SELL]<Total&&Order_Count[OP_BUY]==0&&Sell==true) //Открытие ордеров Sell {//2 // OrderSend(Symbol(), OP_SELL, Lot, Bid, 4, Bid+StopLoss*Point, Bid-TakeProfit*Point);// err=GetLastError(); //Обработка ошибок if(err>0){Alert(err);Sleep(500);} // }//2 return; }//1 我在请求帮助。 Victor Nikolaev 2010.10.02 16:14 #8796 fanat: 亲爱的专家们!我正在学习写一个EA。它是有效的,但不是一切。修改和关闭订单的区块不起作用。我找不到原因。我请求帮助。 我在请求帮助。 也许是时候熟悉一下这些功能了。 Rossi 2010.10.02 18:28 #8797 问题就在这里。 MathSrand(TimeLocal())。 int periodRandom=period+ MathRand()/10000; int period2Random=period2+ MathRand()/10000; Moving1=iMA(Symbol(),0,periodRandom,0,MODE_SMA,price,1) ; Moving2=iMA(Symbol(),0,period2Random,0,MODE_SMA,price,1)。 我决定随机改变挥手的周期--周期加一个0到3的随机值。 但在测试器中,运行显示的利润值总是相同的。也许期数没有变化,我存错了什么? [删除] 2010.10.03 00:16 #8798 日安!问题很简单:是否可以不通过常数来设置二维数组的第二维? 也就是说,我应该这样做:double massiv[5][5],但我想要double massiv[5][k],其中k是一个已知的整数,例如通过extern int k = 5在前面定义。第一个维度可以用ArrayResize函数 改变,但第二个维度由于某种原因不能改变... Igor Makanu 2010.10.03 04:42 #8799 fru1t: 下午好,我的问题很简单:除了通过常数之外,有没有可能以某种方式指定一个二维数组的第二维? 也就是说,我应该这样做:double massiv[5][5],但我想要double massiv[5][k],其中k是一个已知的整数,例如通过extern int k = 5在前面定义。第一个维度可以用ArrayResize函数改变,但第二个维度由于某种原因不能改变... #define k 5 https://docs.mql4.com/ru/basis/preprosessor/constant Dersu 2010.10.03 06:50 #8800 你好,专家。 请解释如何从左上方的指标子窗口中删除信息。 它挡住了路。 1...873874875876877878879880881882883884885886887...1145 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
也许我的意思并不准确,我需要BalansEURUSD 这个变量以百分比显示盈亏,"BalansEURUSD =5%",像这样
以此类推,再来几对,比方说英镑和多兰姆。
一度
这比较难,但可以计算出来。
对于一个卖出的订单
profit=NormalizeDouble((OrderOpenPrice()-Ask)*MarketInfo("EURUSD",MODE_TICKVALUE)*OrderLots()/Point,2);
margin=NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck("EURUSD",OP_SELL,OrderLots(),2)。
用于购买。
profit=NormalizeDouble((Bid-OrderOpenPrice())*MarketInfo("EURUSD",MODE_TICKVALUE)*OrderLots()/Point,2)。
margin=NormalizeDouble(AccountFreeMargin()-AccountFreeMarginCheck("EURUSD",OP_BUY,OrderLots(),2)。
这些都是计算订单利润的完整公式+保证金,对于这个订单,应考虑到保证金,因为如果订单关闭,释放的保证金将被添加到余额中,资金将在数字上增加,但真正的利润可能还没有得到
伙计们,请告诉我如何触发一个挂单 并放置另一个??????。我试着通过订单选择,但它不工作 ........
after
order type == buy, // where buystop was earlier
open pending order // (it does not open)
你们能不能告诉我,如何触发一个挂单,再下一个??????。我试图通过订单选择来做,但没有成功 ........
之后
订单类型==买入,//在买入之前是通过停止来实现的
打开一个挂单//(不打开)。
如果有,说明(之前设置的)挂单已经成为可销售的,那么就下一个订单(另一个你需要的挂单,例如:如果买单在市场上,那么就下一个补仓单,等等)。我建议阅读
alpari网站 - 外汇培训 - 交易员手册 - 自动交易MKL4(左侧面板) - 交易顾问 - (订单选择、订单结束、条件运算符等)。
http://www.alpari.ru/ru/school/textbook/autotrading/expert_advisors/- 简明扼要,内容丰富...
我正在努力学习如何编程。 请告诉我,我怀疑在专家顾问中,以下条件从未得到满足
while (B*Point >zmm)
Comment("差值", B);
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point, "macd sample," 16384,0,Green);
如何检查? 有哪些方法可以使用? 而当蜱虫不工作时,是否有可能呢?
亲爱的专家们!我正在学习写一个EA。它是有效的,但不是一切。修改和关闭订单的区块不起作用。我找不到原因。我请求帮助。
我在请求帮助。
亲爱的专家们!我正在学习写一个EA。它是有效的,但不是一切。修改和关闭订单的区块不起作用。我找不到原因。我请求帮助。
我在请求帮助。
也许是时候熟悉一下这些功能了。
问题就在这里。
MathSrand(TimeLocal())。
int periodRandom=period+ MathRand()/10000;
int period2Random=period2+ MathRand()/10000;
Moving1=iMA(Symbol(),0,periodRandom,0,MODE_SMA,price,1) ;
Moving2=iMA(Symbol(),0,period2Random,0,MODE_SMA,price,1)。
我决定随机改变挥手的周期--周期加一个0到3的随机值。
但在测试器中,运行显示的利润值总是相同的。也许期数没有变化,我存错了什么?
日安!问题很简单:是否可以不通过常数来设置二维数组的第二维?
也就是说,我应该这样做:double massiv[5][5],但我想要double massiv[5][k],其中k是一个已知的整数,例如通过extern int k = 5在前面定义。第一个维度可以用ArrayResize函数 改变,但第二个维度由于某种原因不能改变...
下午好,我的问题很简单:除了通过常数之外,有没有可能以某种方式指定一个二维数组的第二维?
也就是说,我应该这样做:double massiv[5][5],但我想要double massiv[5][k],其中k是一个已知的整数,例如通过extern int k = 5在前面定义。第一个维度可以用ArrayResize函数改变,但第二个维度由于某种原因不能改变...
#define k 5
https://docs.mql4.com/ru/basis/preprosessor/constant
你好,专家。
请解释如何从左上方的指标子窗口中删除信息。
它挡住了路。