//+-----------------------------------------------------------------------+//| Крокодил ГЕНА.mq4 |//| Крокодил ГЕНА |//+-----------------------------------------------------------------------+// Описание ТС// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня// SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, // единственная оговорка не более 1 позиции в день в переменной LastTradeTime // если в ней нет необходимости смело сносите /RomanS/// 2. Добавил к условию открытия трендовый параболик + трал. стоп по нему же на М5. // Результат оказался хуже :( /RomanS/// 3.// 4.// 5.// Внешние переменныеexterndouble TakeProfit =900;externdouble SAR_steep =0.0005;externdouble Lot =1;externstring SYMBOL ="EURUSD";// Глобальные переменныеint LastTradeTime =0;// Время последней открытой сделки// Поехали... :)int start(){int Ticket;double BID,
ASK,
SL=0,
TP=0;bool Trade =true,
Open_Bay =false,
Open_Sell =false;// Проверяем можно ли торговатьif( Trade==true){// Критерии открытия позиций
ASK =MarketInfo( SYMBOL,10);
BID =MarketInfo( SYMBOL,9);if( BID >iHigh( SYMBOL,PERIOD_D1,1)&&iSAR( SYMBOL,PERIOD_M5, SAR_steep,0.2,0)< BID) Open_Bay =true;if( BID <iLow( SYMBOL,PERIOD_D1,1)&&iSAR( SYMBOL,PERIOD_M5, SAR_steep,0.2,0)> BID) Open_Sell =true;// Открытие позицийif( Open_Bay ==true&&OrdersTotal()==0&&TimeDay(TimeCurrent())!= LastTradeTime){RefreshRates();
SL =iLow( SYMBOL,PERIOD_D1,0);
TP = ASK + TakeProfit*Point;if(( ASK- SL)/Point<MarketInfo( SYMBOL,14))return;// проверяем минимальный уровень стоповAlert("Пробуем открыть Buy ", SYMBOL," по ", ASK, SL, TP);
Ticket=OrderSend( SYMBOL,OP_BUY, Lot, ASK,20, SL, TP);if( Ticket >0){Alert("Открыт ордер Buy ", Ticket);
LastTradeTime=TimeDay(TimeCurrent());// задаем время сделки, чтобы сегодня больше не торговать return;}}if( Open_Sell ==true&&OrdersTotal()==0&&TimeDay(TimeCurrent())!= LastTradeTime){RefreshRates();
SL =iHigh( SYMBOL,PERIOD_D1,0);
TP = BID - TakeProfit*Point;if(( SL- BID)/Point<MarketInfo( SYMBOL,14))return;// проверяем минимальный уровень стопов
Ticket =OrderSend( SYMBOL,OP_SELL, Lot, BID,20, SL, TP);if( Ticket >0){Alert("Открыт ордер Sell ", Ticket);
LastTradeTime=TimeDay(TimeCurrent());// задаем время сделки, чтобы сегодня больше не торговатьreturn;}return;}// Закрытие позиции// .......// Модификация ордераfor(int i=0; i<=OrdersTotal(); i++){if(OrderSelect( i, SELECT_BY_POS)==true){if(OrderSymbol()!= SYMBOL)continue;if(OrderType()==0){double TralStop =iSAR( SYMBOL,PERIOD_M5, SAR_steep,0.2,0);if( SL < TralStop){
SL= TralStop;bool Ans=OrderModify(OrderTicket(),OrderOpenPrice(), SL,OrderTakeProfit(),0);if( Ans ==true){// Alert ("Ордер Bay ","EURUSD"," №",Ticket," модифицирован. Новый Stop Loss ", SL); break;}}}if(OrderType()==1){
TralStop =iSAR( SYMBOL,PERIOD_M5, SAR_steep,0.2,0);if( SL > TralStop){
SL= TralStop;if(( SL- ASK)/Point<MarketInfo("EURUSD",14))break;
Ans=OrderModify(OrderTicket(),OrderOpenPrice(), SL,OrderTakeProfit(),0);if( Ans ==true){// Alert ("Ордер Sell ","EURUSD"," №",Ticket," модифицирован. Новый Stop Loss ", SL); break;}}}}}}return;}
日足でオープンして、小さいTFの下限フラクタルでストップを引き上げることもできます。
プレイ済み)
は、フラクタルにトレーリングを追加しました。
あと少し、そして聖杯 :D
Fractals_TF だけは、おそらく名前を付けるべきでしょう。
Fractals_TF だけは、おそらく名前を付けるべきでしょう。
というものに頼るのが正しいと思います。
- ブレイクアウトの範囲内の動きと、ブレイクアウト前のセンチメント(これはあまり重要ではない)。
- 一般的な傾向で、もしかしたらもっと大きなTFになるかもしれない。
最後の方ですが、パラボリックから踊ってみてください、もしかしたら効果があるかもしれません。
書いてある...結果は、当初より悪いものになってしまいましたが......。最適化後のProf.Factorは1.31しかない :(
このシステムでは、オシレーターを使用する方が賢明だと思います
とにかく、ここでスーパーシステムを書こうとは思っていないのですが...。その理由は、スレッドの冒頭で述べたとおりです。
ということを確認したかったのです。私の主な目的は(最初は言いませんでしたが、この枝は消滅しそうです)、ある歴史的期間(例えばこの半年間)で改良しているシステムが、過去の期間ではどのような挙動を示すかを調べることです。私は最初に、長期的には五分五分のシステムだと言いました。つまり、2009年に最大収益率でシステムを描いたら、過去にはもっとうまくいくのか......ということです。仮にpr.f.のレベルまで持っていったとします。2.0以上...2000年以降、パフォーマンスが向上しているのでしょうか????
私は、今日のパフォーマンスが良ければ良いほど、長期的にはパフォーマンスが悪くなると想定しています(あくまでも想定です!!)。すなわち、我々は今日最大の利益を得ると、システムは履歴に1,0を示すことはなく、おそらく0,9に落ちるでしょう。
でも、これはあくまで推測ですが...。まだ何かを証明しようというわけではないのですが...。正直なところ、そうであってほしいと願っています。
正直なところ、なぜ過去のシステムの挙動を把握しようとするのか理解できない。未来を見据えたほうがいい。市場は変化しており、そこから逃れることはできません。たとえ
Я предпологаю (и только предпологаю!!!), что чем лучше она будет работать сегодня, тем хуже она отработает в долгосрочке.
だとしても、それがどうした?
私の個人的な推測(あくまで推測ですが))は、依存性がないということで、あるシステムでそれを言った(証明した)としても、1000のシステムでも、絶対にすべてのシステムで同じになるとは言い切れないということです。
幸せのないところに幸せを求めてはいけない」という名言があります。
私の個人的な信念(というか唯一の信念))は、「依存はない」ということです。
それを確かめたい...。
履歴で50/50に動作するExpert Advisorを取り、それにいくつかの追加の指標、オシレーターや他のトリックを追加します。少ない期間(半年)でテストして、どうなるか...。
興味を示してくれたSwanとginceに感謝します。そして、 sayfujiが何か提案したほうが いい.T.P.以外のポジションの閉じ方とか、参考に なるかも...。
前日の高値/安値のブレイクダウンで固定TPでオープンし、当日の高値/安値でストップするだけです。具体的にはなぜですか?なぜなら、インジケータを使わないからです。
私の考えは100%同じです)) ただ、H4Results testerでは・・・。
ただひとつは...私の場合、直前のローソク足で方向を決め、ストップは現在・直前のHigh/Lowのうち低い方に設定しています...。
私の考えは100%同じです)) ただ、H4Results testerでは・・・。
ただひとつは...私の場合、方向は直前のローソク足で決め、ストップは現在・直前の高値・安値のうち、小さい方で決めています...。
素晴らしいアイデアだ...そこから踊ってみるのも一興かと...。
リンク先を見ましたが、ピリオドが小さいですね...2000で試されましたか? もしかしたら同じ問題が発生するかもしれません...。50/50???