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自体がストップロスの役割を果たすべきだという意味です。
...... MAにタッチすると同時にポジションをクローズしました。
しかも、そのコードは極めて原始的なものです。
すでに4条件を2条件に変更できると考えています。
じゃあ、こんな感じ)とにかく、妄想作品です!ワゴンはビッド価格で作られているのに、そんな風に比べるなんて...。どうだろう。
あなたのコードで何か、OrderSelectが 表示されない?
標準的な、教科書に載っているようなものです。
可視化モードでテストすると、注文が MA でクローズしないので、これが原理的に可能かどうか理解することが重要です。可視化モードでのテストでは、MAで注文が決済されないので、原理的に可能かどうか知りたいです
原理的には可能です。システムで可能なオーダーは1つだけなのでしょうか?
Bid/Ask価格とMA値が等しくなるように正規化してみてください、それが必要です...
Expert Advisorを使用してはいかがでしょうか?私ならとっくに訂正しています。
原理的には可能です。システムで可能なオーダーは1つだけなのでしょうか?
Bid/Ask価格とMA値が等しくなるように正規 化してみてください、それが必要です...
Expert Advisorを使用してはいかがでしょうか?私なら、とっくに訂正しています。
それからは、頭がクラクラしてきました...。
いいえ)他の銀河系と同じように聖杯に、TCを実現し改善する試みだけです。
すべてのコードを投稿に入れることができなかったので、添付します。
それからは、頭がクラクラしてきました...。
No) グレイルは別の銀河のようなもので、TCを実装し改善するための試みに過ぎません。
この投稿にすべてのコードを入れることができなかったので、ここに貼り付けています。
でも、原理的にはなんとかなるんです。
ロットの増加を取り除いたことくらいです。受注は終了していないんじゃなかったっけ?
では、どのように......?
...等価比較の際、Bid/Ask 価格と MA 値を正規化する...
ただ、ノーマライゼーションの方法がよくわからないのですが......。 NormalizeDouble(Ask、Digits) ?
問題は局所的で、やはりMA価格に到達した時点で注文をクローズさせるにはどうしたらいいかということですね。
正規化した後、なぜかコンパイル時にエラーが出てしまい、全く触っていない部分で