Ticket=OrderTicket();
Tip =OrderType();
Lot =OrderLots();
MA2C=iMA(NULL,0, Period_MA2,0,MODE_SMA,PRICE_CLOSE,0);//Есть две MA с разным периодом.
MA3C=iMA(NULL,0, Period_MA3,0,MODE_SMA,PRICE_CLOSE,0);//И вот с такими параметрами.//Так же есть условия, при которых по идее должны срабатывать // функции закрытия ордеров.RefreshRates();if( Tip==0&&Bid== MA2C)//Обозначение типа ордера и условия закрытия{
CloseBuy=true;// Закрыть Buy}RefreshRates();if( Tip==0&&Bid== MA3C){
CloseBuy=true;// Закрыть Buy}RefreshRates();if( Tip==1&&Ask== MA2C){
CloseSell=true;// Закрыть Sell}RefreshRates();if( Tip==1&&Ask== MA3C){
CloseSell=true;// Закрыть Sell}// Закрытие ордеровwhile(true)// Цикл закрытия орд.{if( Tip==0&& CloseBuy==true)// Открыт ордер Buy..{//и есть критерий закрAlert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");RefreshRates();// Обновление данных
ALERT=OrderClose( Ticket, Lot,Bid,3,Blue);// Закрытие Buyif( ALERT==true)// Получилось :){Alert("Закрыт ордер Buy ", Ticket);break;// Выход из цикла закр}if( Fun_Error(GetLastError())==1)// Обработка ошибокcontinue;// Повторная попыткаreturn;// Выход из start()}if( Tip==1&& CloseSell==true)// Открыт ордер Sell..{// и есть критерий закрAlert("Попытка закрыть Sell ", Ticket,". Ожидание ответа..");RefreshRates();// Обновление данных
ALERT=OrderClose( Ticket, Lot,Ask,3,Red);// Закрытие Sellif( ALERT==true)// Получилось :){Alert("Закрыт ордер Sell ", Ticket);break;// Выход из цикла закр}if( Fun_Error(GetLastError())==1)// Обработка ошибокcontinue;// Повторная попыткаreturn;// Выход из start()}break;// Выход из while}
Symb=Symbol();// Название фин.инстр.
Total=0;// Количество ордеровfor(int i=1; i<=OrdersTotal(); i++)// Цикл перебора ордер{if(OrderSelect( i-1, SELECT_BY_POS)==true)// Если есть следующий{// Анализ ордеров:if(OrderSymbol()!= Symb)continue;// Не наш фин. инструмif(OrderType()>1)// Попался отложенный{Alert("Обнаружен отложенный ордер. Эксперт не работает.");return;// Выход из start()}
Total++;// Счётчик рыночн. ордif( Total>1)// Не более одного орд{Alert("Несколько рыночных ордеров. Эксперт не работает.");return;// Выход из start()}
Ticket=OrderTicket();// Номер выбранн. орд.
Tip =OrderType();// Тип выбранного орд.
Lot =OrderLots();// Количество лотов}//И далее как выше...
>> 把所有的代码放出来,这里还没有塞子的味道......
这不是关于止损,而是关于在价格触及MA时立即平仓。
这与止损点无关,而是在价格触及MA时立即平仓。
就这样吧,是你写的停顿......)但我不明白为什么没有代码就不能工作。 上面这段话的信息量不大。
那就这样吧,是你写的止血药......)。同样,如果没有代码,就不可能理解它为什么不工作,所发布的这篇文章完全没有信息。
我一定是表达得非常错误,我道歉,我的意思是MA本身应该作为止损。
.........价格一触及MA就关闭了头寸
而这些代码是极其原始的。
我已经认为,4个条件可以改成2个
然后是这样的)无论如何,这是一个妄想的作品,马车是以投标价格建造的,这样比较......我不知道。
你的代码里有什么东西,OrderSelect 没有看到?
这是标准的,来自一本教科书。
对我来说,重要的是了解这在原则上是否可行,因为在可视化模式下测试时,订单在MA上没有关闭。我想知道原则上是否可以这样做,因为在可视化模式的测试中,订单没有在MA上关闭。
原则上这是可能的。你的系统中只可能有一个订单吗?
尝试将买入/卖出价格和MA值归一化,以实现平等,这是必要的...
你为什么不使用你的专家顾问?如果是我,早就改正了。
原则上这是可能的。你的系统中只可能有一个订单吗?
尝试将买入/卖出价格和MA值归一化,以实现平等,这是必要的...
你为什么不使用你的专家顾问?我早就想改正了。
在那之后,我的头开始旋转......。
不)对一个圣杯和其他星系一样,只是试图实现和改进TC。
我不能把所有的代码都写进帖子里,所以我附上了
在那之后,我的头开始旋转......。
不)圣杯就像另一个星系,只是一个实施和改进TC的尝试。
我没能把所有的代码放在这个帖子里,所以我把它粘贴在这里。
但原则上,这在某种程度上是可行的。
我唯一删除的是地段的增加。你不是说订单没有结束吗?
那么如何......?
...在进行平等比较时,将买入/卖出价格和MA值规范化...
我只是不大明白到底该如何正常化...... NormalizeDouble(Ask, Digits) ?
这个问题是局部的,我还在想如何让订单在达到MA价格时立即关闭。
在规范化之后,由于某种原因,在编译过程中出现了一个错误,而且是在完全没有触及的那部分代码中。