[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 286 1...279280281282283284285286287288289290291292293...1145 新しいコメント Monteg 2009.11.06 14:25 #2851 こんにちは。ストラテジーテスターの ように、チャート上にエントリーポイントとエグジットポイントをマークするようなEAがあれば教えてください。 Rid 2009.11.06 15:11 #2852 そして、マニュアルで......それの何がいけないのか?口座履歴からマウスでトレードをチャートに引っ張ると、そこに表示されるようになります または、スクリプトを使用する -http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=32 Дмитрий 2009.11.06 18:03 #2853 TheXpert >> : ShellExecute、コマンド "open"、例. ありがとうございました。 削除済み 2009.11.07 08:41 #2854 rid >> : 外側に配置する必要があります。どの機能の中でもなく、独立した機能として。 こんな感じで行けます。 この条件でEAが動くかどうかはわかりません。なぜなら、一番最初のポジションはオープンできないから...。 isCloseLastPosByTake() 関数は、買いまたは売りの条件から削除する必要があります。 すると、うまくいくんです。 畝の勧告に従って修正を加えたEAのコードは、スタート時のみ //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- // Узнаем уровень стопов и спрэд int Spread = MarketInfo(Symbol(), MODE_SPREAD); int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL); // Рассчитываем значения средних на 0-ом и 1-ом барах double MAF_0 = iMA(NULL, 0, MAFP, 0, 1, 1, 0); double MAF_1 = iMA(NULL, 0, MAFP, 0, 1, 1, 1); double MAS_0 = iMA(NULL, 0, MASP, 0, 1, 1, 0); double MAS_1 = iMA(NULL, 0, MASP, 0, 1, 1, 1); // открытие позиции Buy покупка if( MAF_1 < MAS_1 && MAF_0 > MAS_0) { if( isCloseLastPosByTake( NULL, OP_SELL, MagicNumber) ==true) { if( CheckOrders(OP_SELL)) { if( StopLoss <= StopLevel+ Spread) double SL = 0; else SL = Ask - StopLoss*Point; if( TakeProfit <= StopLevel- Spread) double TP = 0; else TP = Ask + TakeProfit*Point; if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, SL, TP, NULL, MagicNumber)) Print("Не открыт ордер Buy. Ошибка №", GetLastError()); } } } //-------------------Конец покупки ----------------------- // ----- Открытие позиции Sell продажа------------ if( MAF_1 > MAS_1 && MAF_0 < MAS_0) { if( CheckOrders(OP_BUY)) { if( StopLoss <= StopLevel+ Spread) SL = 0; else SL = Bid + StopLoss*Point; if( TakeProfit <= StopLevel- Spread) TP = 0; else TP = Bid - TakeProfit*Point; if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, SL, TP, NULL, MagicNumber)) Print("Не открыт ордер Sell. Ошибка №", GetLastError()); } } } //---конец блока продажи ------------------------------ //---- return(0); }//+----------КОНЕЦ ФУНКЦИИ СТАРТ -------------------+ //ЖЖЖЖЖЖЖ Другие вызываемые пользовательские функции ЖЖЖЖЖЖ //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 19.05.2008 | //| Описание : Возвращает флаг закрытия | //| последней позиции по тейку. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) { datetime t; double ocp, otp; int dg, i, j=-1, k=OrdersHistoryTotal(); if ( sy=="0") sy=Symbol(); for ( i=0; i< k; i++) { if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()== sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if ( op<0 || OrderType()== op) { if ( mn<0 || OrderMagicNumber()== mn) { if ( t<OrderCloseTime()) { t=OrderCloseTime(); j= i; }} }}}}} if (OrderSelect( j, SELECT_BY_POS, MODE_HISTORY)) { dg=MarketInfo( sy, MODE_DIGITS); if ( dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2; ocp=NormalizeDouble(OrderClosePrice(), dg); otp=NormalizeDouble(OrderTakeProfit(), dg); if ( ocp== otp) return( True); } return( False); } 削除済み 2009.11.07 08:43 #2855 コンパイル時にエラーが発生しました。 2;73;C:\Program Files\MetaTrader - Alpari\experts\SimpleMA22333.mq4;103:3;'}' - unbalanced parentheses この場所には * help the good people....と書かれています。 return(0); * }//+----------КОНЕЦ ФУНКЦИИ СТАРТ -------------------+ Victor Nikolaev 2009.11.07 08:59 #2856 igrok2008 писал(а)>> コンパイル時にエラーが発生しました。 この場所には * help the good people....と書かれています。 開始関数で中括弧の数が異なる //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { // Узнаем уровень стопов и спрэд int Spread = MarketInfo(Symbol(), MODE_SPREAD); int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL); // Рассчитываем значения средних на 0-ом и 1-ом барах double MAF_0 = iMA(NULL, 0, MAFP, 0, 1, 1, 0); double MAF_1 = iMA(NULL, 0, MAFP, 0, 1, 1, 1); double MAS_0 = iMA(NULL, 0, MASP, 0, 1, 1, 0); double MAS_1 = iMA(NULL, 0, MASP, 0, 1, 1, 1); // открытие позиции Buy покупка if( MAF_1 < MAS_1 && MAF_0 > MAS_0) { if( isCloseLastPosByTake( NULL, OP_SELL, MagicNumber) ==true) { if( CheckOrders(OP_SELL)) { if( StopLoss <= StopLevel+ Spread) double SL = 0; else SL = Ask - StopLoss*Point; if( TakeProfit <= StopLevel- Spread) double TP = 0; else TP = Ask + TakeProfit*Point; if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, SL, TP, NULL, MagicNumber)) Print("Не открыт ордер Buy. Ошибка №", GetLastError()); } } } //-------------------Конец покупки ----------------------- // ----- Открытие позиции Sell продажа------------ if( MAF_1 > MAS_1 && MAF_0 < MAS_0) { if( isCloseLastPosByTake( NULL, OP_BUY, MagicNumber) ==true) { if( CheckOrders(OP_BUY)) { if( StopLoss <= StopLevel+ Spread) SL = 0; else SL = Bid + StopLoss*Point; if( TakeProfit <= StopLevel- Spread) TP = 0; else TP = Bid - TakeProfit*Point; if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, SL, TP, NULL, MagicNumber)) Print("Не открыт ордер Sell. Ошибка №", GetLastError()); } } } //---конец блока продажи ------------------------------ return(0); }//+----------КОНЕЦ ФУНКЦИИ СТАРТ -------------------+ そんなことがあったのでしょう。ロジックに踏み込まなかった Rid 2009.11.07 09:17 #2857 igrok2008 >> : Expert Advisorのコードに、Rideのアドバイスで修正を加えたものです。 Salesboxから余分なカーリーブラケットを削除します。開き括弧の数は閉じ括弧の数と同じでなければならないと申し上げました。そして、2つのブラケットを開いて、3つのブラケットを閉じていますね ! もちろん、コンパイルエラーも発生します。 削除済み 2009.11.07 17:04 #2858 rid >> : Salesboxから余分なカーリーブラケットを削除します。開き括弧の数は閉じ括弧の数と同じでなければならないと申し上げました。でも、ブラケットが2つ開いていて、3つ閉じていますよね!? もちろん、コンパイルエラーも発生します。 そして、冒頭の括弧は何? :-))))))) テストしてみます......何かあったら、判断しないで、質問してみます。 Victor Nikolaev 2009.11.07 17:06 #2859 igrok2008 писал(а)>> そして、冒頭の括弧は何ですか? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa{}である。:-))))))) テストします......。 何かあれば、責めないでください、質問しますから。 修正したつもりだったのですが。 Rid 2009.11.07 17:18 #2860 そのような修正は効きません。最初の取引を開始することができません。なぜなら、あなたのバリアントで一番最初の取引を開始する条件は、以前の取引をテイクまたはストップでクローズすることだからです! つまり、悪循環です。 1...279280281282283284285286287288289290291292293...1145 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。ストラテジーテスターの ように、チャート上にエントリーポイントとエグジットポイントをマークするようなEAがあれば教えてください。
そして、マニュアルで......それの何がいけないのか?口座履歴からマウスでトレードをチャートに引っ張ると、そこに表示されるようになります
または、スクリプトを使用する -http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=32
ShellExecute、コマンド "open"、例.
ありがとうございました。外側に配置する必要があります。どの機能の中でもなく、独立した機能として。
こんな感じで行けます。
この条件でEAが動くかどうかはわかりません。なぜなら、一番最初のポジションはオープンできないから...。
isCloseLastPosByTake() 関数は、買いまたは売りの条件から削除する必要があります。
すると、うまくいくんです。
畝の勧告に従って修正を加えたEAのコードは、スタート時のみ
コンパイル時にエラーが発生しました。
この場所には * help the good people....と書かれています。
コンパイル時にエラーが発生しました。
この場所には * help the good people....と書かれています。
開始関数で中括弧の数が異なる
そんなことがあったのでしょう。ロジックに踏み込まなかったExpert Advisorのコードに、Rideのアドバイスで修正を加えたものです。
Salesboxから余分なカーリーブラケットを削除します。開き括弧の数は閉じ括弧の数と同じでなければならないと申し上げました。そして、2つのブラケットを開いて、3つのブラケットを閉じていますね !
もちろん、コンパイルエラーも発生します。
Salesboxから余分なカーリーブラケットを削除します。開き括弧の数は閉じ括弧の数と同じでなければならないと申し上げました。でも、ブラケットが2つ開いていて、3つ閉じていますよね!?
もちろん、コンパイルエラーも発生します。
そして、冒頭の括弧は何?
:-)))))))
テストしてみます......何かあったら、判断しないで、質問してみます。
そして、冒頭の括弧は何ですか?
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa{}である。:-)))))))
テストします......。 何かあれば、責めないでください、質問しますから。
修正したつもりだったのですが。
そのような修正は効きません。最初の取引を開始することができません。なぜなら、あなたのバリアントで一番最初の取引を開始する条件は、以前の取引をテイクまたはストップでクローズすることだからです!
つまり、悪循環です。