任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1037 1...103010311032103310341035103610371038103910401041104210431044...1178 新评论 Artyom Trishkin 2016.04.30 18:35 #10361 Tema97:我现在做什么?我有一个基于渠道的策略--有什么替代方案吗? 当然是有的。计算数值,将其保存到一个数组或结构中,并将其用于你的EA。你也可以从那里绘制对象--数值是可用的。 [Deleted] 2016.04.30 18:35 #10362 Tema97:我现在做什么?我有一个基于渠道的策略--有什么替代方案吗? 有什么需要建立的?通过iCustom 查询该指标。 对于销售,你可以用#资源 来嵌入 money_maker 2016.04.30 21:07 #10363 我想实现以下目标 能够在一个工作表中添加不同的时间段(在不同的窗口,但在一个工作表中)。 请告诉我们该去哪里,该在哪里挖?)是否可以通过mql或WInApi实现? 也许文章中还有一些例子,我没能找到( [删除] 2016.05.01 12:24 #10364 kocunyc89:请帮助我解决这个问题!它给出的错误是'Void'--没有类型的声明 36 4,在哪里重新排列或写返回?//-------------------------------------------------------------------- Void OnTick(){void是用小写字母而不是大写字母写的。看,这是一种不同的颜色。把光标放在这个词上,然后按F1键--这通常会有帮助。修复后出现了很多错误信息......我修复了错误信息,但要自己检查逻辑。#property strict bool Результат; extern int SL = 200, //Стоплосс в пунктах TStop = 20, // TStep = 10, // TP = 85; //Тейкпрофит в пунктах //extern double Lot = 0.10; //используется только при risk = 0 extern double Lots = 0; // лот, если 0, то динамический extern double RiskPercentage = 50; // % от депо на лот, если динамический extern int MaxOrders = 6; //Максимальное кол-во ордеров одного направления //-------------------------------------------------------------------- int STOPLEVEL,Magic=123321,tip; datetime TimeBar; string txt; //-------------------------------------------------------------------- int init() { if(Digits==3||Digits==5) { TStop *=10; TStep *=10; SL *=10; } return(INIT_SUCCEEDED); } //-------------------------------------------------------------------- void OnTick() { double Lot = Lots; int Ticket = 0; if (Lots==0) { double margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED); double minLot = MarketInfo(Symbol(), MODE_MINLOT); double maxLot = MarketInfo(Symbol(), MODE_MAXLOT); double step = MarketInfo(Symbol(), MODE_LOTSTEP); double account = AccountFreeMargin(); double percentage = account*RiskPercentage/100; Lot = MathRound(percentage/margin/step)*step; if(Lot < minLot) Lot = minLot; if(Lot > maxLot)Lot = maxLot; } int buy=0,sell=0; for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS)) { if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue; tip=OrderType(); if (tip==0) buy++; if (tip==1) sell++; } } Comment(txt,"\nБаланс ",DoubleToStr(AccountBalance(),2),"\nЭквити ",DoubleToStr(AccountEquity(),2),"\nBuy ",buy,"\nSel ",sell); double TrPr=0,StLo=0; double L = NormalizeDouble(Low[0], Digits); double L1 = NormalizeDouble(Low[1], Digits); double L2 = NormalizeDouble(Low[2], Digits); double L3 = NormalizeDouble(Low[3], Digits); double H = NormalizeDouble(High[0],Digits); double H1 = NormalizeDouble(High[1],Digits); double H2 = NormalizeDouble(High[2],Digits); double H3 = NormalizeDouble(High[3],Digits); double O = NormalizeDouble(Open[0], Digits); double O1 = NormalizeDouble(Open[1], Digits); double O2 = NormalizeDouble(Open[2], Digits); double O3 = NormalizeDouble(Open[3], Digits); double C = NormalizeDouble(Close[0],Digits); double C1 = NormalizeDouble(Close[1],Digits); double C2 = NormalizeDouble(Close[2],Digits); double C3 = NormalizeDouble(Close[3],Digits); //LONG if (buy<MaxOrders && TimeBar!=Time[0]&& H>H1&&H1>H2&&H2>H3) { if (TP!=0) TrPr = NormalizeDouble(Ask + TP * Point,Digits); if (SL!=0) StLo = NormalizeDouble(Bid - SL * Point,Digits); Ticket=OrderSend(Symbol(),OP_BUY, Lots,NormalizeDouble(Ask,Digits),3,0,0,"BreakdownLevelCandleMA",Magic,0,Blue); if (Ticket==0) Print("Error BUY",GetLastError(),"",Symbol()," Lot ",Lot," SL ",StLo," TP ",TrPr); else { Результат=OrderModify(Ticket,OrderOpenPrice(),StLo,TrPr,0,Blue); TimeBar=Time[0]; } } //SHORT if (sell<MaxOrders && TimeBar!=Time[0]&& L>L1&&L1>L2&&L2>L3) { if (TP!=0) TrPr = NormalizeDouble(Bid - TP * Point,Digits); if (SL!=0) StLo = NormalizeDouble(Ask + SL * Point,Digits); Ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,0,0,"BreakdownLevelCandleMA",Magic,0,Red); if (Ticket==0) Print("Error SELL",GetLastError(),"",Symbol()," Lot ",Lot," SL ",StLo," TP ",TrPr); else { Результат=OrderModify(Ticket,OrderOpenPrice(),StLo,TrPr,0,Red); TimeBar=Time[0]; } } Trailing(); } //!!! куда передвинуть? return(0); void Trailing() { for(int i=OrdersTotal() -1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic) { if(OrderType()==OP_BUY) { if (Bid-OrderOpenPrice()> TStop*Point || OrderStopLoss() ==0) { if(OrderStopLoss()<Bid-(TStep+TStop)*Point || OrderStopLoss() ==0) { if(!OrderModify(OrderTicket(), OrderOpenPrice(),NormalizeDouble(Bid-TStop*Point, Digits),0,0)) Print("Ошибка модификации ордера на покупку"); } } } if(OrderType()==OP_SELL) { if (OrderOpenPrice()-Ask>TStop*Point || OrderStopLoss() ==0) { if((OrderStopLoss()> (Ask+(TStep+TStop)*Point)) || (OrderStopLoss()==0) ) { if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TStop*Point,Digits),0,0)) { Print("Ошибка модификации ордера на продажу"); } } } } } } } } [删除] 2016.05.01 13:53 #10365 LRA:空白是用小写的,而不是大写的大写。看看它是否是不同的颜色。把光标放在这个词上,然后按F1键--这通常会有帮助。修复后出现了很多错误信息......修复了错误信息,但要自己检查逻辑。非常感谢你,好心人! владимир 2016.05.02 07:32 #10366 你好,交易员先生们!我根据我上面发布的代码写了一个信号机器人。该机器人几乎准确地生成了期权的信号,但有两个柱状的滞后。我应该如何改变代码以产生相同的结果,但要早于两根柱子?还是不可能?谢谢你。 Tema97 2016.05.02 07:33 #10367 我有一个自定义指标--通道--我需要返回通道的上限值--如何做到这一点? Mihail Marchukajtes 2016.05.02 14:49 #10368 artmedia70:int 变量正好包含1970年以来的秒数,而datetime 变量则包含日期。如果你需要历史上的某一个条形,那么你如何指定它并不重要--按日期或按秒数,在任何情况下,该变量将显示这个特定条形的开盘时间,而不考虑新刻度的到来和新条形的开启。 非常感谢,但还有一个问题。我有一个具有统计功能的指标,这个功能应该只在新信号到来时使用,但这个问题在每个柱子上都要计算,我已经做了所有的事情,并将多维数据进行了正常化比较,所以我想我已经完蛋了。扼杀了整个晚上,谁能解释一下什么是错的 ????在193行中的指标是一个 带有条件的函数调用,但条件没有得到满足,而且Furction stat是在每个柱子到达时计算的,我已经厌倦了寻找错误,请各位帮助,!!!!!。预先感谢.... 附加的文件: tdsequentakv2015.mq4 21 kb Mihail Marchukajtes 2016.05.02 15:05 #10369 我现在才发现,如果从另一个指标中调用该指标,当它们都在图表上时,统计函数会被重新计算。也就是说,一次是为自己计算,第二次是为调用它的指标计算。它是什么? Mihail Marchukajtes 2016.05.02 15:25 #10370 以下是图片中的内容。顶部的注释是发生计算的主指标中的缓冲区值,而打印(下面)是相同的缓冲区,但只是在另一个指标中调用并在打印中输出。差异很大,但是!!!!!。 第一个文件 是主文件,第二个文件调用第一个文件的缓冲区....。 附加的文件: tdsequentamv2015.mq4 21 kb skynetsvl1.01.mq4 9 kb 1...103010311032103310341035103610371038103910401041104210431044...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我现在做什么?我有一个基于渠道的策略--有什么替代方案吗?
我现在做什么?我有一个基于渠道的策略--有什么替代方案吗?
对于销售,你可以用#资源 来嵌入
能够在一个工作表中添加不同的时间段(在不同的窗口,但在一个工作表中)。
请告诉我们该去哪里,该在哪里挖?)是否可以通过mql或WInApi实现?
也许文章中还有一些例子,我没能找到(
请帮助我解决这个问题!它给出的错误是'Void'--没有类型的声明 36 4,在哪里重新排列或写返回?
//--------------------------------------------------------------------
Void OnTick()
{
void是用小写字母而不是大写字母写的。看,这是一种不同的颜色。把光标放在这个词上,然后按F1键--这通常会有帮助。
修复后出现了很多错误信息......我修复了错误信息,但要自己检查逻辑。
空白是用小写的,而不是大写的大写。看看它是否是不同的颜色。把光标放在这个词上,然后按F1键--这通常会有帮助。
修复后出现了很多错误信息......修复了错误信息,但要自己检查逻辑。
非常感谢你,好心人!
int 变量正好包含1970年以来的秒数,而datetime 变量则包含日期。
如果你需要历史上的某一个条形,那么你如何指定它并不重要--按日期或按秒数,在任何情况下,该变量将显示这个特定条形的开盘时间,而不考虑新刻度的到来和新条形的开启。
我现在才发现,如果从另一个指标中调用该指标,当它们都在图表上时,统计函数会被重新计算。也就是说,一次是为自己计算,第二次是为调用它的指标计算。它是什么?
以下是图片中的内容。顶部的注释是发生计算的主指标中的缓冲区值,而打印(下面)是相同的缓冲区,但只是在另一个指标中调用并在打印中输出。差异很大,但是!!!!!。
第一个文件 是主文件,第二个文件调用第一个文件的缓冲区....。