コーディングの方法は? - ページ 276 1...269270271272273274275276277278279280281282283...347 新しいコメント ddkelly 2011.11.10 17:20 #2751 こんにちは。 私はコードを書き、理解することを始めています。今のところ圧倒されています。 MACD ヒストグラムとトライガーラインがヒストグラムの上下に交差するときを使用してEAを書き始めたいと思います。 どなたか、コードを理解するために簡単なプログラムを提案し、それを実行し、どのように取引するかを見ることができますか? ありがとうございました。 ダニエル rapidfire 2011.11.10 21:06 #2752 Excel/CSVからのトレンドラインインポート? こんにちは、私はここ数日いくつかの簡単なスクリプトを書きました、特にObjectCreate (OBJ_TREND with Ray=1) これは本当に素晴らしい働きですが、私は私のクローズラインのためのいくつかの履歴のクローズデータを持っている準備ができたcsvファイルからオブジェクトを描くことができます、私は私のテンプレートを削除して、スクリプトでそれらを必要とするたびにデータをインポートできるようにしたいので。 どなたか、この方法をご存じないでしょうか? CSVには日付(時間なし)と終値(行のデータはこれ以上必要ないでしょう)が入っています。 スクリプトは、この日付からRay=1とカスタマイズした色で線を引く必要があります。 スクリプトはまた、開いているチャート(シンボル)をチェックし、正しいcsvファイルを取ることができるかもしれません(複数ある場合);-) どなたか助けてください。 fsmith 2011.11.11 21:48 #2753 OrderDelete(OrderTicket())のエラーについて 皆さん、こんにちは。 私はMQL4プログラミングの 初心者ですが、他の面ではC++を知っています。 しかし、私は取引関数でいくつかの問題を抱えています。 これは私の問題です。 私は保留中の注文を作成します。 ticket = OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-5*Point,slippage,0,0,",0,0,Green); そして、プログラムの他の点で、私はそれを削除したい。 if (オーダーセレクト(チケット,SELECT_BY_TICKET))OrderDelete(OrderTicket())。 ERROR 4108! なぜ?チケットの番号は正しく、私はそれを印刷します。 しかし、もし私が: if (OrderSelect(position, SELECT_BY_POS))OrderDelete(OrderTicket()); はOKです! なぜでしょうか? あなたのサポートとフォーラムのためにありがとうございました。 Trade1953 2011.11.12 20:32 #2754 EAを終了させるコード ? こんにちは、皆さん。 私はEAを終了させるコードを探しています。 私は私が書いた小さなマーチンゲールを投稿しました。 私はそれがそれが口座のドローダウンの割合に達したときに、すべての保留とオープンオーダーをクローズする場所を持っています。 また、1日の利益目標に達したときに取引を停止させることができました。 翌日からまた取引を開始します。 (SWB Gridを書いた人に感謝します。彼らのコードを使用したので)。 しかし、ある条件を満たすとEAを終了させたいと思っています。 例えば、最大ドローダウン率に達し、すべての保留中の注文と オープンポジションをクローズします。 その時点でEAを終了させ、私がチャートからEAを削除して元に戻すまで、EAは再び取引を開始しないようにしたいのです。 これがそのEAです。 どんな提案やヘルプでも大いに結構です! ありがとうございます。 ジョー ファイル: rsiccimartingaledailyprofit.mq4 13 kb poohguo 2011.11.13 00:41 #2755 "↵左括弧 "についてヘルプが必要です。 こんにちは、EAを作成しているのですが、コンパイル時にエラーメッセージが出続けています。"\end_of_program' - unbalanced left parenthesis." というエラーメッセージが表示されます。 通常、このエラーメッセージは、左右の括弧の数が不均等であることに関連しています。 しかし、私のコードをチェックしてみると、左括弧と右括弧の数は同じです。 だから、どこで間違ったのかが分からなくて、本当に困っているんだ。 どなたか、私のコードをチェックして、それを修正する方法を教えていただけませんか? 100万人に感謝します。 私のコードは以下に掲載されています。 //+------------------------------------------------------------------+ //| ブレイクアウト.mq4 //| プーさん //+------------------------------------------------------------------+ #property copyright "プーさん" #property リンク "" //--- 入力パラメータ extern int LengthI=23;// 市場に参入する場合 extern int LengthO=7;//extern int LengthO=7;//extern int LengthO=7;//出口用 extern double Lots=0.1; //注文サイズ extern int N1=14; //ATRの期間 extern int NLots=1; //増加した注文ロット数 //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() { //---- double HLong,LLong,HShort,LShort; HLong=iHigh(NULL,0,iHighest(NULL,0,2,LengthI,2)); LLong=iLow(NULL,0,iLowest(NULL,0,1,LengthO,2)); LShort=iLow(NULL,0,iLowest(NULL,0,1,LengthI,2)); HShort=iHigh(NULL,0,iHighest(NULL,0,2,LengthO,2))); int cnt, cot, ticket, total; total=OrdersTotal(); if (total<1) { if (iClose(NULL,0,1)>HLong) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,LLong,300000,「EAロング」,123,0,Green); if (チケット>0) { if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES)) Print("ロングオーダー開始:",OrderOpenPrice()); else Print("ロングオーダーの開始エラー :",GetLastError()); return(0); } if (iClose(NULL,0,1)<LShort) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,HShort,0.0001, "EAショート",123,0,赤); if (チケット>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("ショートオーダーが開きました:",OrderOpenPrice()); } else Print("ショート注文の開始エラー:",GetLastError()).return(0); } Print("ショート注文を開始しました。 return(0); return(0)。 } for(cnt=0;cnt<total;cnt++) { //10 OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())) { if(OrderType()==OP_BUY)// ロングポジションがオープン { // クローズすべきか? if(Bid<=LLong) { オーダークローズ(オーダーチケット(),オーダーロット(),ビッド,3,バイオレット);//ポジションをクローズする return(0); //トレーリングストップの変更 オーダーモディファイ(OrderTicket(),OrderOpenPrice(),LLong,OrderTakeProfit(),0,Green); return(0); } さもなくば { if(アスク>=HShort) {OrderClose(OrderTicket(),OrderLots(),Ask,3,Purple);//ポジションクローズ return(0)。 //トレーリングストップの変更 オーダーモディファイ(OrderTicket(),OrderOpenPrice(),HShort,OrderTakeProfit(),0,Red);//トレーリングストップを変更。 return(0); } } } //ロングとショートの注文ロットの合計を取得 double LOrderLots=0; double SOrderLots=0; for(cnt=0,cnt<=total,cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&OrderType()==OP_BUY) LOrderLots=LOrderLots+OrderLots()。 if(OrderSymbol()==Symbol()&&OrderType()==OP_SELL) SOrderLots=LOrderLots+OrderLots()。 } //新規注文を増加させる for(cot=0,cot<=total,cot++) { //1 //ロング注文のポジションを追加 if(OrderSelect(cot,SELECT_BY_POS,MODE_TRADES)==true) //未決済注文がある場合 { if(OrderMagicNumber==123 && OrderSymbol()==Symbol()&&OrderType()==OP_BUY) //2-もしEAが開いた注文があれば、注文の種類はLongです。 { //3 for(int i=1;i<=15;i++) { if(Bid>=OrderOpenPrice()+i*0.5*iATR(NULL,0,N1,0)&&(Bid<(OrderOpenPrice()+(i+1)*0.5*iATR(NULL,0,N1,0))&&LOrderLots<Lots*(i+1)) //4 { ticket=OrderSend(Symbol(),OP_BUY,NLots*Lots,Ask,3,LLong,300000,「EAロング」123,0,Green); //5件 if (チケット>0) { //6 if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES)) Print("ロングオーダー開始:",OrderOpenPrice()); } //6 それ以外の場合 Print("ロングオーダーの開始エラー :",GetLastError())。 ブレーク //5 //4 return(0); //ショートオーダー用のポジションを追加 if(OrderMagicNumber()==123 && OrderSymbol()==Symbol() && OrderType()==OP_SELL) { //7 for(int n2=1;n2<=15;n2++) { if(Ask(OrderOpenPrice()-(n2+1)*0.5*iATR(NULL,0,N1,0))&&SOrderLots<Lots*(n2+1)) //8 { ticket=OrderSend(Symbol(),OP_SELL,NLots*Lots,Bid,3,HShort,0.0001,「EAショート」123,0,赤); //9件 if (チケット>0) { // 10 if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("ショートオーダー開始:",OrderOpenPrice()); } // 10 それ以外の場合 Print("ショートオーダー開始エラー :",GetLastError())。 ブレーク //9 //8 return(0); } //7 //3 } //2 } //1 return(0) } How to code? EAが複数のペアで実行されない、助けが必要 オジャラEA edwad 2011.11.14 20:57 #2756 簡単なインジケーターをコーディングしてくれるコーダーが必要です。 これを行うインジケーターをコーディングしてくれる人が必要です。 シンプルなフィボナッチで、0,50,100のラインのみを使用します。バーが50%以上または50%未満で閉じると、私は両方ではなく、上または下のクローズを探しているかどうかを選択するオプションを持っている。50%以下で終値を探している場合、50%以上で終値がつくたびにアラートが鳴るのは困ります。私はそれが音で私に警告し、私に電子メールやテキストを送信したい。これは可能ですか?ありがとうございます! 画像: http://tinypic.com/r/dhbu6v/5 Avasys 2011.11.15 12:26 #2757 簡単なロジックのコーディングができない! こんにちは、フォーラムです。 MQL4が得意な方にとってはとても簡単なことだと思いますが、私は初心者で、問題があります。 自動売買をしたいのですが ロットサイズ0.1 ストップロス=30ピップス 利益目標50ピップス ペア AUDUSD 02:00 GMTから10:00 GMTの間に(highprice - lowprice) < 60 pipsなら lowprice - 5pipsでAUDUSDを売 るかhighprice + 5pipsでAUDUSDを買い、それ以外は 取引しない。 gpociejewski 2011.11.15 12:54 #2758 Avasys: こんにちは、フォーラムです。MQL4が得意な方にとってはとても簡単なことだと思いますが、私は初心者で、問題があります。 そこで、自動売買をしたいのですが ロットサイズ0.1 ストップロス=30ピップス 利益目標50ピップス ペア AUDUSD 02:00 GMT から 10:00 GMT の間に (highprice - lowprice) < 60 pipsならば lowprice - 5pips で AUDUSD を売るか highprice + 5pips で AUDUSD を買い、それ以外は 取引なし。 [lang=pl]こんにちは、私はそれがこのEAをコーディングするのに問題ないと思いますが、私は質問があります。 いつ売買したいのでしょうか?安値-5 高値+5 のレベルで保留注文が 必要でしょうか? よろしくお願いします。 Grzesiek[/lang] Avasys 2011.11.15 13:02 #2759 g.pociejewski:[lang=pl]こんにちは、私はそれがこのEAをコーディングするのに問題はないと思うが、私は質問があります。 売り買いしたいタイミングは?安値5高値+5のレベルで保留注文が必要ですか?よろしくお願いします。 Grzesiek[/lang] こんにちは。 ありがとうございます。 そうです。より正確には、AUDUSDの02:00 GMTと10:00 GMTの間の取引範囲(高値と安値の差)(これはコード上非常に重要です)が60 pips未満なので、これは取引可能なシグナルです。ですから、価格が安値(02:00と10:00の間)-5pipsになったら売り、価格が高値+5pipsになったら買うのです。 例 02:00 から 10:00 の間に GBPUSD の安値は 1.6000、高値は 1.6050 で、価格が 1.5995 になったら自動的に売り、価格が 1.6055 になったら自動的に買い、30ピップの損切り注文を自動的に出して 50ピップを利食い します。 もし時間がなければ、どのように始めるかを教えてください。 感謝 gpociejewski 2011.11.15 13:33 #2760 pooh123: こんにちは、私はEAに取り組んできました、私はコンパイル時にエラーメッセージを取得し続けます。"「 \end_of_program 」 - アンバランスな左括弧。" 通常、このエラーメッセージは、左右の括弧の数が不均等であることに関連しています。 しかし、私のコードをチェックしてみると、左括弧と右括弧の数は同じです。 だから、どこで間違ったのかが分からなくて、本当に困っているんだ。 どなたか、私のコードをチェックして、それを修正する方法を教えていただけませんか? 100万人に感謝します。 私のコードは以下に掲載されています。//+------------------------------------------------------------------+ //| Breakout.mq4 //| プーさん //+------------------------------------------------------------------+ #property copyright "プーさん" #property リンク "" //--- 入力パラメータ extern int LengthI=23;// 市場に参入する場合 extern int LengthO=7;//extern int LengthO=7;//extern int LengthO=7;//出口用 extern double Lots=0.1; //注文サイズ extern int N1=14; //ATRの期間 extern int NLots=1; //増加した注文ロット数 //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパート初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| エキスパートスタート機能 //+------------------------------------------------------------------+ int start() { //---- double HLong,LLong,HShort,LShort; HLong=iHigh(NULL,0,iHighest(NULL,0,2,LengthI,2)); LLong=iLow(NULL,0,iLowest(NULL,0,1,LengthO,2)); LShort=iLow(NULL,0,iLowest(NULL,0,1,LengthI,2)); HShort=iHigh(NULL,0,iHighest(NULL,0,2,LengthO,2))); int cnt, cot, ticket, total; total=OrdersTotal(); if (total<1) { if (iClose(NULL,0,1)>HLong) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,LLong,300000,「EAロング」,123,0,Green); if (チケット>0) { if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES)) Print("ロングオーダー開始:",OrderOpenPrice()); else Print("ロングオーダーの開始エラー :",GetLastError()); return(0); } if (iClose(NULL,0,1)<LShort) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,HShort,0.0001, "EAショート",123,0,赤); if (チケット>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("ショートオーダーが開きました:",OrderOpenPrice()); } else Print("ショート注文の開始エラー:",GetLastError()).return(0); } Print("ショート注文を開始しました。 return(0); return(0)。 } for(cnt=0;cnt<total;cnt++) { //10 OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())) { if(OrderType()==OP_BUY)// ロングポジションがオープン { // クローズすべきか? if(Bid<=LLong) { オーダークローズ(オーダーチケット(),オーダーロット(),ビッド,3,バイオレット);//ポジションをクローズする return(0); //トレーリングストップの変更 オーダーモディファイ(OrderTicket(),OrderOpenPrice(),LLong,OrderTakeProfit(),0,Green); return(0); } さもなくば { if(アスク>=HShort) {OrderClose(OrderTicket(),OrderLots(),Ask,3,Purple);//ポジションクローズ return(0)。 //トレーリングストップの変更 オーダーモディファイ(OrderTicket(),OrderOpenPrice(),HShort,OrderTakeProfit(),0,Red);//トレーリングストップを変更。 return(0); } } } //ロングとショートの注文ロットの合計を取得 double LOrderLots=0; double SOrderLots=0; for(cnt=0,cnt<=total,cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol()&&OrderType()==OP_BUY) LOrderLots=LOrderLots+OrderLots()です。 if(OrderSymbol()==Symbol()&&OrderType()==OP_SELL) SOrderLots=LOrderLots+OrderLots()。 } //新規注文を増加させる for(cot=0,cot<=total,cot++) { //1 //ロング注文のポジションを追加 if(OrderSelect(cot,SELECT_BY_POS,MODE_TRADES)==true) //未決済注文がある場合 { if(OrderMagicNumber==123 && OrderSymbol()==Symbol()&&OrderType()==OP_BUY) //2-もしEAが開いた注文があれば、注文の種類はLongです。 { //3 for(int i=1;i<=15;i++) { if(Bid>=OrderOpenPrice()+i*0.5*iATR(NULL,0,N1,0)&&(Bid<(OrderOpenPrice()+(i+1)*0.5*iATR(NULL,0,N1,0))&&LOrderLots<Lots*(i+1))//4 { ticket=OrderSend(Symbol(),OP_BUY,NLots*Lots,Ask,3,LLong,300000,「EAロング」123,0,Green); //5件 if (チケット>0) { //6 if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES)) Print("ロングオーダー開始:",OrderOpenPrice()); } //6 それ以外の場合 Print("ロングオーダーの開始エラー :",GetLastError())。 ブレーク //5 //4 return(0); //ショートオーダー用のポジションを追加 if(OrderMagicNumber()==123 && OrderSymbol()==Symbol() && OrderType()==OP_SELL) { //7 for(int n2=1;n2<=15;n2++) { if(Ask(OrderOpenPrice()-(n2+1)*0.5*iATR(NULL,0,N1,0))&&SOrderLots<Lots*(n2+1)) //8 { ticket=OrderSend(Symbol(),OP_SELL,NLots*Lots,Bid,3,HShort,0.0001,「EAショート」123,0,赤); //9件 if (チケット>0) { // 10 if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES)) Print("ショートオーダー開始:",OrderOpenPrice()); } // 10 それ以外の場合 Print("ショートオーダー開始エラー :",GetLastError())。 ブレーク //9 //8 return(0); } //7 //3 } //2 } //1 return(0) } [関数 OrderMagicNumerでは、2つのアンバランスな") "を最後に使用する必要があります。また、forループでは、", "の代わりに"; "を使用する必要があります。 もし、アンバランスな括弧を見つける必要があるならば、私はメモ帳 ++ [/lang] をお勧めします。 ファイル: eamod.mq4 5 kb 1...269270271272273274275276277278279280281282283...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。
私はコードを書き、理解することを始めています。今のところ圧倒されています。
MACD ヒストグラムとトライガーラインがヒストグラムの上下に交差するときを使用してEAを書き始めたいと思います。
どなたか、コードを理解するために簡単なプログラムを提案し、それを実行し、どのように取引するかを見ることができますか?
ありがとうございました。
ダニエル
Excel/CSVからのトレンドラインインポート?
こんにちは、私はここ数日いくつかの簡単なスクリプトを書きました、特にObjectCreate (OBJ_TREND with Ray=1) これは本当に素晴らしい働きですが、私は私のクローズラインのためのいくつかの履歴のクローズデータを持っている準備ができたcsvファイルからオブジェクトを描くことができます、私は私のテンプレートを削除して、スクリプトでそれらを必要とするたびにデータをインポートできるようにしたいので。
どなたか、この方法をご存じないでしょうか?
CSVには日付(時間なし)と終値(行のデータはこれ以上必要ないでしょう)が入っています。
スクリプトは、この日付からRay=1とカスタマイズした色で線を引く必要があります。
スクリプトはまた、開いているチャート(シンボル)をチェックし、正しいcsvファイルを取ることができるかもしれません(複数ある場合);-)
どなたか助けてください。
OrderDelete(OrderTicket())のエラーについて
皆さん、こんにちは。
私はMQL4プログラミングの 初心者ですが、他の面ではC++を知っています。
しかし、私は取引関数でいくつかの問題を抱えています。
これは私の問題です。
私は保留中の注文を作成します。
ticket = OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-5*Point,slippage,0,0,",0,0,Green);
そして、プログラムの他の点で、私はそれを削除したい。
if (オーダーセレクト(チケット,SELECT_BY_TICKET))OrderDelete(OrderTicket())。
ERROR 4108! なぜ?チケットの番号は正しく、私はそれを印刷します。
しかし、もし私が:
if (OrderSelect(position, SELECT_BY_POS))OrderDelete(OrderTicket());
はOKです!
なぜでしょうか?
あなたのサポートとフォーラムのためにありがとうございました。
EAを終了させるコード ?
こんにちは、皆さん。
私はEAを終了させるコードを探しています。 私は私が書いた小さなマーチンゲールを投稿しました。 私はそれがそれが口座のドローダウンの割合に達したときに、すべての保留とオープンオーダーをクローズする場所を持っています。 また、1日の利益目標に達したときに取引を停止させることができました。 翌日からまた取引を開始します。 (SWB Gridを書いた人に感謝します。彼らのコードを使用したので)。
しかし、ある条件を満たすとEAを終了させたいと思っています。 例えば、最大ドローダウン率に達し、すべての保留中の注文と オープンポジションをクローズします。 その時点でEAを終了させ、私がチャートからEAを削除して元に戻すまで、EAは再び取引を開始しないようにしたいのです。
これがそのEAです。 どんな提案やヘルプでも大いに結構です!
ありがとうございます。
ジョー
"↵左括弧 "についてヘルプが必要です。
こんにちは、EAを作成しているのですが、コンパイル時にエラーメッセージが出続けています。"\end_of_program' - unbalanced left parenthesis." というエラーメッセージが表示されます。 通常、このエラーメッセージは、左右の括弧の数が不均等であることに関連しています。 しかし、私のコードをチェックしてみると、左括弧と右括弧の数は同じです。 だから、どこで間違ったのかが分からなくて、本当に困っているんだ。 どなたか、私のコードをチェックして、それを修正する方法を教えていただけませんか? 100万人に感謝します。 私のコードは以下に掲載されています。
//+------------------------------------------------------------------+
//| ブレイクアウト.mq4
//| プーさん
//+------------------------------------------------------------------+
#property copyright "プーさん"
#property リンク ""
//--- 入力パラメータ
extern int LengthI=23;// 市場に参入する場合
extern int LengthO=7;//extern int LengthO=7;//extern int LengthO=7;//出口用
extern double Lots=0.1; //注文サイズ
extern int N1=14; //ATRの期間
extern int NLots=1; //増加した注文ロット数
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
double HLong,LLong,HShort,LShort;
HLong=iHigh(NULL,0,iHighest(NULL,0,2,LengthI,2));
LLong=iLow(NULL,0,iLowest(NULL,0,1,LengthO,2));
LShort=iLow(NULL,0,iLowest(NULL,0,1,LengthI,2));
HShort=iHigh(NULL,0,iHighest(NULL,0,2,LengthO,2)));
int cnt, cot, ticket, total;
total=OrdersTotal();
if (total<1)
{
if (iClose(NULL,0,1)>HLong)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,LLong,300000,「EAロング」,123,0,Green);
if (チケット>0)
{
if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES))
Print("ロングオーダー開始:",OrderOpenPrice());
else
Print("ロングオーダーの開始エラー :",GetLastError());
return(0);
}
if (iClose(NULL,0,1)<LShort)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,HShort,0.0001, "EAショート",123,0,赤);
if (チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("ショートオーダーが開きました:",OrderOpenPrice());
}
else Print("ショート注文の開始エラー:",GetLastError()).return(0); } Print("ショート注文を開始しました。
return(0);
return(0)。
}
for(cnt=0;cnt<total;cnt++)
{ //10
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()))
{
if(OrderType()==OP_BUY)// ロングポジションがオープン
{
// クローズすべきか?
if(Bid<=LLong)
{
オーダークローズ(オーダーチケット(),オーダーロット(),ビッド,3,バイオレット);//ポジションをクローズする
return(0);
//トレーリングストップの変更
オーダーモディファイ(OrderTicket(),OrderOpenPrice(),LLong,OrderTakeProfit(),0,Green);
return(0);
}
さもなくば
{
if(アスク>=HShort)
{OrderClose(OrderTicket(),OrderLots(),Ask,3,Purple);//ポジションクローズ
return(0)。
//トレーリングストップの変更
オーダーモディファイ(OrderTicket(),OrderOpenPrice(),HShort,OrderTakeProfit(),0,Red);//トレーリングストップを変更。
return(0);
}
}
}
//ロングとショートの注文ロットの合計を取得
double LOrderLots=0;
double SOrderLots=0;
for(cnt=0,cnt<=total,cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderType()==OP_BUY)
LOrderLots=LOrderLots+OrderLots()。
if(OrderSymbol()==Symbol()&&OrderType()==OP_SELL)
SOrderLots=LOrderLots+OrderLots()。
}
//新規注文を増加させる
for(cot=0,cot<=total,cot++)
{ //1
//ロング注文のポジションを追加
if(OrderSelect(cot,SELECT_BY_POS,MODE_TRADES)==true) //未決済注文がある場合
{ if(OrderMagicNumber==123 && OrderSymbol()==Symbol()&&OrderType()==OP_BUY) //2-もしEAが開いた注文があれば、注文の種類はLongです。
{ //3
for(int i=1;i<=15;i++)
{ if(Bid>=OrderOpenPrice()+i*0.5*iATR(NULL,0,N1,0)&&(Bid<(OrderOpenPrice()+(i+1)*0.5*iATR(NULL,0,N1,0))&&LOrderLots<Lots*(i+1)) //4
{ ticket=OrderSend(Symbol(),OP_BUY,NLots*Lots,Ask,3,LLong,300000,「EAロング」123,0,Green); //5件
if (チケット>0)
{ //6
if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES))
Print("ロングオーダー開始:",OrderOpenPrice());
} //6
それ以外の場合
Print("ロングオーダーの開始エラー :",GetLastError())。
ブレーク
//5
//4
return(0);
//ショートオーダー用のポジションを追加
if(OrderMagicNumber()==123 && OrderSymbol()==Symbol() && OrderType()==OP_SELL)
{ //7
for(int n2=1;n2<=15;n2++)
{ if(Ask(OrderOpenPrice()-(n2+1)*0.5*iATR(NULL,0,N1,0))&&SOrderLots<Lots*(n2+1)) //8
{ ticket=OrderSend(Symbol(),OP_SELL,NLots*Lots,Bid,3,HShort,0.0001,「EAショート」123,0,赤); //9件
if (チケット>0)
{ // 10
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("ショートオーダー開始:",OrderOpenPrice());
} // 10
それ以外の場合
Print("ショートオーダー開始エラー :",GetLastError())。
ブレーク
//9
//8
return(0);
} //7
//3
} //2
} //1
return(0)
}
簡単なインジケーターをコーディングしてくれるコーダーが必要です。
これを行うインジケーターをコーディングしてくれる人が必要です。
シンプルなフィボナッチで、0,50,100のラインのみを使用します。バーが50%以上または50%未満で閉じると、私は両方ではなく、上または下のクローズを探しているかどうかを選択するオプションを持っている。50%以下で終値を探している場合、50%以上で終値がつくたびにアラートが鳴るのは困ります。私はそれが音で私に警告し、私に電子メールやテキストを送信したい。これは可能ですか?ありがとうございます!
画像: http://tinypic.com/r/dhbu6v/5
簡単なロジックのコーディングができない!
こんにちは、フォーラムです。
MQL4が得意な方にとってはとても簡単なことだと思いますが、私は初心者で、問題があります。
自動売買をしたいのですが
ロットサイズ0.1
ストップロス=30ピップス
利益目標50ピップス
ペア AUDUSD
02:00 GMTから10:00 GMTの間に(highprice - lowprice) < 60 pipsなら lowprice - 5pipsでAUDUSDを売 るかhighprice + 5pipsでAUDUSDを買い、それ以外は 取引しない。
こんにちは、フォーラムです。
MQL4が得意な方にとってはとても簡単なことだと思いますが、私は初心者で、問題があります。
そこで、自動売買をしたいのですが
ロットサイズ0.1
ストップロス=30ピップス
利益目標50ピップス
ペア AUDUSD
02:00 GMT から 10:00 GMT の間に (highprice - lowprice) < 60 pipsならば lowprice - 5pips で AUDUSD を売るか highprice + 5pips で AUDUSD を買い、それ以外は 取引なし。[lang=pl]こんにちは、私はそれがこのEAをコーディングするのに問題ないと思いますが、私は質問があります。
いつ売買したいのでしょうか?安値-5 高値+5 のレベルで保留注文が 必要でしょうか?
よろしくお願いします。
Grzesiek[/lang]
[lang=pl]こんにちは、私はそれがこのEAをコーディングするのに問題はないと思うが、私は質問があります。
売り買いしたいタイミングは?安値5高値+5のレベルで保留注文が必要ですか?
よろしくお願いします。
Grzesiek[/lang]こんにちは。
ありがとうございます。
そうです。より正確には、AUDUSDの02:00 GMTと10:00 GMTの間の取引範囲(高値と安値の差)(これはコード上非常に重要です)が60 pips未満なので、これは取引可能なシグナルです。ですから、価格が安値(02:00と10:00の間)-5pipsになったら売り、価格が高値+5pipsになったら買うのです。
例
02:00 から 10:00 の間に GBPUSD の安値は 1.6000、高値は 1.6050 で、価格が 1.5995 になったら自動的に売り、価格が 1.6055 になったら自動的に買い、30ピップの損切り注文を自動的に出して 50ピップを利食い します。
もし時間がなければ、どのように始めるかを教えてください。
感謝
こんにちは、私はEAに取り組んできました、私はコンパイル時にエラーメッセージを取得し続けます。"「 \end_of_program 」 - アンバランスな左括弧。" 通常、このエラーメッセージは、左右の括弧の数が不均等であることに関連しています。 しかし、私のコードをチェックしてみると、左括弧と右括弧の数は同じです。 だから、どこで間違ったのかが分からなくて、本当に困っているんだ。 どなたか、私のコードをチェックして、それを修正する方法を教えていただけませんか? 100万人に感謝します。 私のコードは以下に掲載されています。
//+------------------------------------------------------------------+
//| Breakout.mq4
//| プーさん
//+------------------------------------------------------------------+
#property copyright "プーさん"
#property リンク ""
//--- 入力パラメータ
extern int LengthI=23;// 市場に参入する場合
extern int LengthO=7;//extern int LengthO=7;//extern int LengthO=7;//出口用
extern double Lots=0.1; //注文サイズ
extern int N1=14; //ATRの期間
extern int NLots=1; //増加した注文ロット数
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパート初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| エキスパートスタート機能
//+------------------------------------------------------------------+
int start()
{
//----
double HLong,LLong,HShort,LShort;
HLong=iHigh(NULL,0,iHighest(NULL,0,2,LengthI,2));
LLong=iLow(NULL,0,iLowest(NULL,0,1,LengthO,2));
LShort=iLow(NULL,0,iLowest(NULL,0,1,LengthI,2));
HShort=iHigh(NULL,0,iHighest(NULL,0,2,LengthO,2)));
int cnt, cot, ticket, total;
total=OrdersTotal();
if (total<1)
{
if (iClose(NULL,0,1)>HLong)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,LLong,300000,「EAロング」,123,0,Green);
if (チケット>0)
{
if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES))
Print("ロングオーダー開始:",OrderOpenPrice());
else
Print("ロングオーダーの開始エラー :",GetLastError());
return(0);
}
if (iClose(NULL,0,1)<LShort)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,HShort,0.0001, "EAショート",123,0,赤);
if (チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("ショートオーダーが開きました:",OrderOpenPrice());
}
else Print("ショート注文の開始エラー:",GetLastError()).return(0); } Print("ショート注文を開始しました。
return(0);
return(0)。
}
for(cnt=0;cnt<total;cnt++)
{ //10
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()))
{
if(OrderType()==OP_BUY)// ロングポジションがオープン
{
// クローズすべきか?
if(Bid<=LLong)
{
オーダークローズ(オーダーチケット(),オーダーロット(),ビッド,3,バイオレット);//ポジションをクローズする
return(0);
//トレーリングストップの変更
オーダーモディファイ(OrderTicket(),OrderOpenPrice(),LLong,OrderTakeProfit(),0,Green);
return(0);
}
さもなくば
{
if(アスク>=HShort)
{OrderClose(OrderTicket(),OrderLots(),Ask,3,Purple);//ポジションクローズ
return(0)。
//トレーリングストップの変更
オーダーモディファイ(OrderTicket(),OrderOpenPrice(),HShort,OrderTakeProfit(),0,Red);//トレーリングストップを変更。
return(0);
}
}
}
//ロングとショートの注文ロットの合計を取得
double LOrderLots=0;
double SOrderLots=0;
for(cnt=0,cnt<=total,cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderType()==OP_BUY)
LOrderLots=LOrderLots+OrderLots()です。
if(OrderSymbol()==Symbol()&&OrderType()==OP_SELL)
SOrderLots=LOrderLots+OrderLots()。
}
//新規注文を増加させる
for(cot=0,cot<=total,cot++)
{ //1
//ロング注文のポジションを追加
if(OrderSelect(cot,SELECT_BY_POS,MODE_TRADES)==true) //未決済注文がある場合
{ if(OrderMagicNumber==123 && OrderSymbol()==Symbol()&&OrderType()==OP_BUY) //2-もしEAが開いた注文があれば、注文の種類はLongです。
{ //3
for(int i=1;i<=15;i++)
{ if(Bid>=OrderOpenPrice()+i*0.5*iATR(NULL,0,N1,0)&&(Bid<(OrderOpenPrice()+(i+1)*0.5*iATR(NULL,0,N1,0))&&LOrderLots<Lots*(i+1))//4
{ ticket=OrderSend(Symbol(),OP_BUY,NLots*Lots,Ask,3,LLong,300000,「EAロング」123,0,Green); //5件
if (チケット>0)
{ //6
if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES))
Print("ロングオーダー開始:",OrderOpenPrice());
} //6
それ以外の場合
Print("ロングオーダーの開始エラー :",GetLastError())。
ブレーク
//5
//4
return(0);
//ショートオーダー用のポジションを追加
if(OrderMagicNumber()==123 && OrderSymbol()==Symbol() && OrderType()==OP_SELL)
{ //7
for(int n2=1;n2<=15;n2++)
{ if(Ask(OrderOpenPrice()-(n2+1)*0.5*iATR(NULL,0,N1,0))&&SOrderLots<Lots*(n2+1)) //8
{ ticket=OrderSend(Symbol(),OP_SELL,NLots*Lots,Bid,3,HShort,0.0001,「EAショート」123,0,赤); //9件
if (チケット>0)
{ // 10
if(オーダーセレクト(チケット,SELECT_BY_TICKET,MODE_TRADES))
Print("ショートオーダー開始:",OrderOpenPrice());
} // 10
それ以外の場合
Print("ショートオーダー開始エラー :",GetLastError())。
ブレーク
//9
//8
return(0);
} //7
//3
} //2
} //1
return(0)
}[関数 OrderMagicNumerでは、2つのアンバランスな") "を最後に使用する必要があります。また、forループでは、", "の代わりに"; "を使用する必要があります。
もし、アンバランスな括弧を見つける必要があるならば、私はメモ帳 ++ [/lang] をお勧めします。