コーディングの方法は? - ページ 164 1...157158159160161162163164165166167168169170171...347 新しいコメント ralphronnquist 2009.03.07 21:11 #1631 MiniMe: Ralphさん、ありがとうございます。しかし、スワップがなくなってしまうので、スワップ損益を注文の決済に含めたいのです。 しかし、最初のループは利益とスワップの両方を累積していますね? 私は、Equityの数値は、5pipsのオープンロットの意味と比較するためのもので、そうすれば、実際に損益分岐価格を計算する必要はないのではないかと考えていました。 MiniMe 2009.03.07 22:33 #1632 こんにちは、Ralph 私は3つの変数を持っています。 OrdLots ;ロット単位で、オープンロットを表しますが、スワップはスキップされます。 Equity ;これは総利益損失で、これはスワップを含んでいます。 MinPro ; これは私のテイクプロフィットで、5ピップス+ブレークイーブンポイントです。 スワップをスキップしてしまうので、OrdLotsを使って利益/損失をpipsで見つけることはできません。 私は、Equityを使ってpipsの利益/損失を求めることができません。なぜなら、そのためには、使用されるロット数を知る必要がありますが、私のロット数の計算はスワップをスキップしてしまうからです。 どうにかして、OrdLotsとEquityの両方の関数を使って、何pips開いたか知る必要があります。 MT4で口座残高や 口座資本を関連付ける何かが準備されているかもしれませんが、私は何も見つけられませんでした。 あなたが提案した解決策は、スワップを考慮せずにピップでの利益/損失を見つけますが、私はすでにそのための関数を入れています...スワップありのブレークイーブンより5pips上で終了させたいのですが PipStalking 2009.03.08 05:01 #1633 時刻の比較とdoループ こんにちは、皆さん。 私はMql4言語の経験が非常に浅いです。私はopenordertimeをInt変数と比較し、もしそれがある時間の長さであり、注文がまだ開いている場合、私はBreakeven状況または多分利益状況に達することを試みることができるように、許可されたオープンオーダーの量を増やしたいのですが、その後すべてのオープンオーダーを同時に閉じ、最大オーダーをそのもともと許可された最大値に設定します。誰かが私を助けるか、このようなことをすでに行っている他の投稿のコードを表示することができます。 私はこのコードを使っていますが、まるで機能していないようです。 // 注文が長時間開いている場合、注文を閉じて、収支を合わせようとする。 void TimeProtection() { int totalorders = OrdersTotal(); for(int i=totalorders-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS); if ( OrderSymbol()==Symbol() ) { prTime = OrderOpenTime(); prTime = prTime * CallTime; if (prTime >= TimeCurrent()) { MaxAllowable_Trades = MaxAllowable_Trades + 3; flag = 1; ブレーク } } } を返します。 } ぜひともご協力をお願いします。 ありがとうございます。 How to code? アドバイザーを無料でお書きします コーディングのヘルプ ralphronnquist 2009.03.08 06:06 #1634 MiniMe: こんにちは、ラルフ私は3つの変数を持っています。 OrdLots ;ロット単位で、オープンロットを表しますが、スワップはスキップされます。 Equity ;これは総利益損失で、これはスワップを含みます。 MinPro ; これは私のテイクプロフィットで、5ピップス+ブレークイーブンポイントです。 スワップをスキップしてしまうので、OrdLotsを使って利益/損失をpipsで見つけることはできません。 私は、Equityを使ってpipsの利益/損失を求めることができません。なぜなら、そのためには、使用されるロット数を知る必要がありますが、私のロット数の計算はスワップをスキップしてしまうからです。 どうにかして、OrdLotsとEquityの両方の関数を使って、何pips開いたか知る必要があります。 MT4で口座残高や口座資本を関連付ける何かが準備されているかもしれませんが、私は何も見つけられませんでした。 ありがとうございます。スワップを考慮せずにpipsで損益を求める方法ですが、すでにそのための関数を入れています.スワップありのブレークイーブンの5pips上で終了させたい ああ...わかったかも...。ということは、最初のループでEquityNoSwapにスワップなしの利益も蓄積すれば、私の「if」文ではEquityではなく、それを使うことができるのですね。(?) なぜなら、その場合、テストは "ブレークイーブン+スワップ価格に対して5pipsの利益があるか?" となり、実際には "スワップを無視して5pipsの利益があるか?" と同じになるからだ。(ということになる(というか、まだ理解できていない)。 基本的に「profits+swap」は相対的な「breakeven」であり、したがって「profits」は相対的な「breakeven+swap」であり、「profits」は「OrdLot」に分散されます。全体として、あなたはまだ「breakeven」のために実際のpips価格を決定する必要がないのです。 yingli 2009.03.08 16:11 #1635 最高のEAコーディングのアイデア 私は、このトレッドでいくつかの助けを得るために開始します。私は、添付のインジケータのコードを学習しています。このインジケータは非常に信頼できるもので、もし誰かがこのインジケータのEAを作ることができれば、それはほとんど聖杯のようなものです。 基本的な原理は以下の通りです。 1.open赤い矢印が表示されたときに位置を売っています。 2.白い矢印が現れたら買いポジションをオープンし、自動的にすべてのTH ESELLポジション/ポジションをクローズします。 3.任意の時間枠に適用されます。 4.noストップロス。 5.add順序機能。 回答お待ちしております。 //+------------------------------------------------------------------+ //| IINWMARROWS.mq4||をベースにしたものです。 //| EMA_CROSS.mq4に基づいています。 || Copyright ?2006, MetaQuotes Software Corp.| //| フォレックス・トレーディング・ソフトウェアフォレックス・トレーディング・プラットフォーム MetaTrader4 || 最終更新者:Iin Zulkarnain //+------------------------------------------------------------------+ #property copyright "Copyright ?2006, MetaQuotes Software Corp."(コピーライト:2006年、メタクォーツ・ソフトウェア社)。 #property link "http://www.metaquotes.net" //---- #property indicator_chart_window(インジケーターチャートウィンドウ #property indicator_buffers 2 (インジケーターバッファー2) #property indicator_color1 ホワイト #property indicator_color2 赤色 #property indicator_width1 2 (幅) #property indicator_width2 2 (インジケータ幅2 //---- double CrossUp[]; double CrossDown[]; extern int FasterMode=3; /0=sma, 1=ema, 2=smma, 3=lwma extern int FasterMA= 3; extern int SlowerMode=3; //0=sma, 1=ema, 2=smma, 3=lwma extern int SlowerMA= 3; //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int init() { //---- インジケータ SetIndexStyle(0, DRAW_ARROW, EMPTY).SetIndexStyle(0)を設定します。 SetIndexArrow(0, 233); SetIndexBuffer(0, CrossUp); SetIndexStyle(1, DRAW_ARROW, EMPTY).を設定します。 SetIndexArrow(1, 234); SetIndexBuffer(1, CrossDown); //---- return(0); } //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| カスタムインジケーターイテレーション関数 //+------------------------------------------------------------------+ int start() { int limit, i, counter; double fasterMAnow, slowerMAnow, fasterMAprevious, slowerMAprevious, fasterMAafter, slowerMAafter; double Range, AvgRange; int counted_bars=IndicatorCounted(); //---- エラーの可能性をチェック if(counted_bars<0) return(-1); //---- 最後にカウントされたバーが再カウントされる if(counted_bars>0) counted_bars--; //---- limit=Bars-counted_bars; for(i=0; i<=limit; i++) { counter=i; Range=0; AvgRange=0; for(counter=i ;counter<=i+9;counter++) { AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]); Range=AvgRange/10; fastMAnow=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i); fasterMAprevious=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i+1); fasterMAafter=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i-1); //---- slowerMAnow=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i); slowerMAprevious=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i+1); //------- slowerMAprevious=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i+1); slowerMAafter=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i-1); if ((fasterMAnow > slowerMAnow) && (fasterMAprevious・slowerMAafter)) { CrossUp=Low - Range*0.5; } else if ((fasterMAnow slowerMAprevious) && (fasterMAafter < slowerMAafter)) { CrossDown=High+Range*0.5。 } } return(0); } //+------------------------------------------------------------------------------+ このスレッドは正しいコードの書き方を学ぶためのもので、私は以下のようなコードを学んでいます。 生のアイデア _rdb_The Best Free EA How to code? Sam 2009.03.09 02:54 #1636 偉大で勇敢なコーダーたちへ このEAに最大ポジションを追加することはできますか? または1つのポジションのみを実行させることができますか? ありがとうございました。 ファイル: reverse_1.mq4 16 kb BeepBoop 2009.03.09 15:38 #1637 削除された投稿 biddick 2009.03.09 16:12 #1638 オフトピック質問 オープンソースのプログラムからのデータスニッフィングが可能でしょうか? 彼らは、貧弱なプログラミング言語(Metastockに似ているが、より貧弱で、「前」関数が 使えない)を持っています。彼らは、独自の指標しか許可せず、データを独占しています(法律で)。私の指標をリアルタイム環境で実行するためのDLL拡張を書くことはできません。 プログラマーの皆さん、ご回答よろしくお願いします。 jan100 2009.03.12 16:44 #1639 別ペアの新規注文について こんにちは。 異なる通貨 ペアの注文を出す方法はありますか? 例えば、EAがEURUSDのチャートで動作していますが、USDJPYの注文を開きたいのです。 これは可能ですか? よろしくお願いします。 Roger09 2009.03.12 19:44 #1640 OrderSend("USDJPY",OP_BUY,0.1,MarketInfo("USDJPY",MODE_ASK),10,0,0, "Com",0,0,CLR_NONE) を実行しました。 1...157158159160161162163164165166167168169170171...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Ralphさん、ありがとうございます。しかし、スワップがなくなってしまうので、スワップ損益を注文の決済に含めたいのです。
しかし、最初のループは利益とスワップの両方を累積していますね?
私は、Equityの数値は、5pipsのオープンロットの意味と比較するためのもので、そうすれば、実際に損益分岐価格を計算する必要はないのではないかと考えていました。
こんにちは、Ralph
私は3つの変数を持っています。
OrdLots ;ロット単位で、オープンロットを表しますが、スワップはスキップされます。
Equity ;これは総利益損失で、これはスワップを含んでいます。
MinPro ; これは私のテイクプロフィットで、5ピップス+ブレークイーブンポイントです。
スワップをスキップしてしまうので、OrdLotsを使って利益/損失をpipsで見つけることはできません。
私は、Equityを使ってpipsの利益/損失を求めることができません。なぜなら、そのためには、使用されるロット数を知る必要がありますが、私のロット数の計算はスワップをスキップしてしまうからです。
どうにかして、OrdLotsとEquityの両方の関数を使って、何pips開いたか知る必要があります。
MT4で口座残高や 口座資本を関連付ける何かが準備されているかもしれませんが、私は何も見つけられませんでした。
あなたが提案した解決策は、スワップを考慮せずにピップでの利益/損失を見つけますが、私はすでにそのための関数を入れています...スワップありのブレークイーブンより5pips上で終了させたいのですが
時刻の比較とdoループ
こんにちは、皆さん。
私はMql4言語の経験が非常に浅いです。私はopenordertimeをInt変数と比較し、もしそれがある時間の長さであり、注文がまだ開いている場合、私はBreakeven状況または多分利益状況に達することを試みることができるように、許可されたオープンオーダーの量を増やしたいのですが、その後すべてのオープンオーダーを同時に閉じ、最大オーダーをそのもともと許可された最大値に設定します。誰かが私を助けるか、このようなことをすでに行っている他の投稿のコードを表示することができます。
私はこのコードを使っていますが、まるで機能していないようです。
// 注文が長時間開いている場合、注文を閉じて、収支を合わせようとする。
void TimeProtection()
{
int totalorders = OrdersTotal();
for(int i=totalorders-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
if ( OrderSymbol()==Symbol() )
{
prTime = OrderOpenTime();
prTime = prTime * CallTime;
if (prTime >= TimeCurrent())
{
MaxAllowable_Trades = MaxAllowable_Trades + 3;
flag = 1;
ブレーク
}
}
}
を返します。
}
ぜひともご協力をお願いします。
ありがとうございます。
こんにちは、ラルフ
私は3つの変数を持っています。
OrdLots ;ロット単位で、オープンロットを表しますが、スワップはスキップされます。
Equity ;これは総利益損失で、これはスワップを含みます。
MinPro ; これは私のテイクプロフィットで、5ピップス+ブレークイーブンポイントです。
スワップをスキップしてしまうので、OrdLotsを使って利益/損失をpipsで見つけることはできません。
私は、Equityを使ってpipsの利益/損失を求めることができません。なぜなら、そのためには、使用されるロット数を知る必要がありますが、私のロット数の計算はスワップをスキップしてしまうからです。
どうにかして、OrdLotsとEquityの両方の関数を使って、何pips開いたか知る必要があります。
MT4で口座残高や口座資本を関連付ける何かが準備されているかもしれませんが、私は何も見つけられませんでした。
ありがとうございます。スワップを考慮せずにpipsで損益を求める方法ですが、すでにそのための関数を入れています.スワップありのブレークイーブンの5pips上で終了させたいああ...わかったかも...。ということは、最初のループでEquityNoSwapにスワップなしの利益も蓄積すれば、私の「if」文ではEquityではなく、それを使うことができるのですね。(?) なぜなら、その場合、テストは "ブレークイーブン+スワップ価格に対して5pipsの利益があるか?" となり、実際には "スワップを無視して5pipsの利益があるか?" と同じになるからだ。(ということになる(というか、まだ理解できていない)。
基本的に「profits+swap」は相対的な「breakeven」であり、したがって「profits」は相対的な「breakeven+swap」であり、「profits」は「OrdLot」に分散されます。全体として、あなたはまだ「breakeven」のために実際のpips価格を決定する必要がないのです。
最高のEAコーディングのアイデア
私は、このトレッドでいくつかの助けを得るために開始します。私は、添付のインジケータのコードを学習しています。このインジケータは非常に信頼できるもので、もし誰かがこのインジケータのEAを作ることができれば、それはほとんど聖杯のようなものです。
基本的な原理は以下の通りです。
1.open赤い矢印が表示されたときに位置を売っています。
2.白い矢印が現れたら買いポジションをオープンし、自動的にすべてのTH ESELLポジション/ポジションをクローズします。
3.任意の時間枠に適用されます。
4.noストップロス。
5.add順序機能。
回答お待ちしております。
//+------------------------------------------------------------------+
//| IINWMARROWS.mq4||をベースにしたものです。
//| EMA_CROSS.mq4に基づいています。
|| Copyright ?2006, MetaQuotes Software Corp.|
//| フォレックス・トレーディング・ソフトウェアフォレックス・トレーディング・プラットフォーム MetaTrader4
|| 最終更新者:Iin Zulkarnain
//+------------------------------------------------------------------+
#property copyright "Copyright ?2006, MetaQuotes Software Corp."(コピーライト:2006年、メタクォーツ・ソフトウェア社)。
#property link "http://www.metaquotes.net"
//----
#property indicator_chart_window(インジケーターチャートウィンドウ
#property indicator_buffers 2 (インジケーターバッファー2)
#property indicator_color1 ホワイト
#property indicator_color2 赤色
#property indicator_width1 2 (幅)
#property indicator_width2 2 (インジケータ幅2
//----
double CrossUp[];
double CrossDown[];
extern int FasterMode=3; /0=sma, 1=ema, 2=smma, 3=lwma
extern int FasterMA= 3;
extern int SlowerMode=3; //0=sma, 1=ema, 2=smma, 3=lwma
extern int SlowerMA= 3;
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
//---- インジケータ
SetIndexStyle(0, DRAW_ARROW, EMPTY).SetIndexStyle(0)を設定します。
SetIndexArrow(0, 233);
SetIndexBuffer(0, CrossUp);
SetIndexStyle(1, DRAW_ARROW, EMPTY).を設定します。
SetIndexArrow(1, 234);
SetIndexBuffer(1, CrossDown);
//----
return(0);
}
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| カスタムインジケーターイテレーション関数
//+------------------------------------------------------------------+
int start()
{
int limit, i, counter;
double fasterMAnow, slowerMAnow, fasterMAprevious, slowerMAprevious, fasterMAafter, slowerMAafter;
double Range, AvgRange;
int counted_bars=IndicatorCounted();
//---- エラーの可能性をチェック
if(counted_bars<0) return(-1);
//---- 最後にカウントされたバーが再カウントされる
if(counted_bars>0) counted_bars--;
//----
limit=Bars-counted_bars;
for(i=0; i<=limit; i++)
{
counter=i;
Range=0;
AvgRange=0;
for(counter=i ;counter<=i+9;counter++)
{
AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
Range=AvgRange/10;
fastMAnow=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i);
fasterMAprevious=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i+1);
fasterMAafter=iMA(NULL, 0, FasterMA, 0, FasterMode, PRICE_CLOSE, i-1);
//----
slowerMAnow=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i);
slowerMAprevious=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i+1); //------- slowerMAprevious=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i+1);
slowerMAafter=iMA(NULL, 0, SlowerMA, 0, SlowerMode, PRICE_OPEN, i-1);
if ((fasterMAnow > slowerMAnow) && (fasterMAprevious・slowerMAafter))
{
CrossUp=Low - Range*0.5;
}
else if ((fasterMAnow slowerMAprevious) && (fasterMAafter < slowerMAafter))
{
CrossDown=High+Range*0.5。
}
}
return(0);
}
//+------------------------------------------------------------------------------+ このスレッドは正しいコードの書き方を学ぶためのもので、私は以下のようなコードを学んでいます。
偉大で勇敢なコーダーたちへ
このEAに最大ポジションを追加することはできますか?
または1つのポジションのみを実行させることができますか?
ありがとうございました。
削除された投稿
オフトピック質問
オープンソースのプログラムからのデータスニッフィングが可能でしょうか?
彼らは、貧弱なプログラミング言語(Metastockに似ているが、より貧弱で、「前」関数が 使えない)を持っています。彼らは、独自の指標しか許可せず、データを独占しています(法律で)。私の指標をリアルタイム環境で実行するためのDLL拡張を書くことはできません。
プログラマーの皆さん、ご回答よろしくお願いします。
別ペアの新規注文について
こんにちは。
異なる通貨 ペアの注文を出す方法はありますか?
例えば、EAがEURUSDのチャートで動作していますが、USDJPYの注文を開きたいのです。
これは可能ですか?
よろしくお願いします。
OrderSend("USDJPY",OP_BUY,0.1,MarketInfo("USDJPY",MODE_ASK),10,0,0, "Com",0,0,CLR_NONE) を実行しました。