コーディングの方法は? - ページ 39 1...323334353637383940414243444546...347 新しいコメント ralphronnquist 2007.10.03 00:18 #381 ミッシュ ちょっと時間があったので、あなたの意図を理解した上で、その意図を汲み取るようにしました。 ファイル: advicerr.txt 2 kb mish 2007.10.03 20:55 #382 ありがとうございました ralph.ronnquistさん、ありがとうございます。 これらの機能はまさに私が必要としていたものであり、同じ機能を求めている他の人々にも役立つと思います。 私はそれが努力を要するので、そうでなければ、あなたにもっと早く感謝することに巻き込まれた。 strategy testerで 動作するように関数を変更する簡単な方法はありますか? テスターで1つの通貨で作業した結果は、私が正しい計算をするために必要なものを非常に大まかに模倣している以外は、ほとんど役に立たないことは分かっていますが、どんな助けもありがたく、私は決して短時間でコードを解決しなかったでしょう。 RonaldRaygun 2007.10.03 23:45 #383 DT_ZZ.mq4ベースのEA ちょっと悩んでいることがあります。 DT_ZZ.mq4というインジケータを持っているのですが、見たところ非常に期待できそうです。このインジケータが再描画することは知っていますが、その仕組みは以下の通りです。 矢印とセクションが等しい場合、その後、バーが閉じるのを待ち、それに応じて購入/販売します。 どなたか、お手伝いしていただけませんか?(コードは下に貼ってあります) //+-----------------------------------------------------------------------------+//| DT_ZZ.mq4 |//+------------------------------------------------------------------+ // Roshによる最適化 #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Green(インジケーターカラー1グリーン #property indicator_color2 ブルー #property indicator_color3 赤色 //---- インジケーターのパラメーター extern int ExtDepth=12; extern int calculateLevel=2; //---- インジケータ・バッファ double zzL[]; double zzH[]; double zz[]; //+------------------------------------------------------------------+ //| カスタムインジケータ初期化関数 //+------------------------------------------------------------------+ int init() { // IndicatorBuffers(3); //描画設定 SetIndexStyle(0,DRAW_SECTION)を設定します。 SetIndexStyle(1,DRAW_ARROW)。 SetIndexStyle(2,DRAW_ARROW)を設定します。 SetIndexArrow(1,159)を設定します。 SetIndexArrow(2,159)を設定します。 //---- インジケータバッファのマッピング SetIndexBuffer(0,zz)を設定します。 SetIndexBuffer(1,zzH)を設定します。 SetIndexBuffer(2,zzL)を設定します。 SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); SetIndexEmptyValue(1,0.0); SetIndexEmptyValue(2,0.0); //---- インジケーターショートネーム IndicatorShortName("DT_ZZ("+ExtDepth+")")とします。 //---- 初期化完了 return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos; double curlow,curhigh,lasthigh,lastlow; double min, max; int counted_bars=IndicatorCounted(); if (counted_bars==0) { ArrayInitialize(zz,0.0); ArrayInitialize(zzL,0.0); ArrayInitialize(zzH,0.0); lasthighpos=Bars; lastlowpos=Bars; lastlow=Low;lasthigh=High。 Print("limit=",Bars-ExtDepth)。 for(shift=Bars-ExtDepth; shift>=0; shift--) { curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift)とします。 curlow=Low[curlowpos]。 curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift)とします。 curhigh=High[curhighpos]となります。 //------------------------------------------------ if( curlow>=lastlow ) { lastlow=curlow; }. さもなくば { //???????? if( lasthighpos>curlowpos ) { zzL[curlowpos]=curlow; ///* min=100000; pos=lasthighpos; for(i=lasthighpos; i>=curlowpos; i--) { if (zzL==0.0) continue; if (zzL<min) { min=zzL; pos=i; }. zz=0.0; } zz[pos]=minとする。 //*/ } lastlowpos=curlowpos; lastlow=curlowです。 } //--- 高い if( curhigh<=lasthigh ) { lasthigh=curhigh;}。 さもなくば { // ????????? if( lastlowpos>curhighpos ) { zzH[curhighpos]=curhigh; ///* max=-100000; pos=lastlowpos; for(i=lastlowpos; i>=curhighpos;i--)。 { if (zzH==0.0) continue; if (zzH>max) { max=zzH; pos=i; }. zz=0.0; } zz[pos]=maxとする。 //*/ } lasthighpos=curhighpos; lasthigh=curhigh。 } zz[0]=Close[0]とする。 } //---------------------------------------------------------------------- } さもなくば { int pos2; i=0; while (pos2<calculateLevel && i<Bars-1) { if (zz!=0 && (zzH!=0||zzL!=0)) pos2++; i++; } pos2=i-1; for (i=pos2-1;i>=0;i--) { zzH=0; zzL=0 zz=0; } if (zzH[pos2]!=0) { lasthighpos=pos2; lasthigh=High[pos2]。 lastlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,pos2)。 lastlow=Low[lastlowpos]。 } さもなくば { lastlowpos=pos2; lastlow=Low[pos2]; lasthighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,pos2); lasthigh=High[lasthighpos]。 } //------------------------- ????????? ?????? Print("limit=",pos2-1)。 for(shift=pos2-1; shift>=0; shift--) { curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift)とします。 curlow=Low[curlowpos]。 curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift)とします。 curhigh=High[curhighpos]となります。 //------------------------------------------------ if( curlow>=lastlow ) { lastlow=curlow; }. さもなくば { //???????? if( lasthighpos>curlowpos ) { zzL[curlowpos]=curlow; ///* min=100000; pos=lasthighpos; for(i=lasthighpos; i>=curlowpos; i--) { if (zzL==0.0) continue; if (zzL<min) { min=zzL; pos=i; }. zz=0.0; } zz[pos]=min; //*/ } lastlowpos=curlowpos; lastlow=curlowです。 } //--- 高い if( curhigh<=lasthigh ) { lasthigh=curhigh;}。 さもなくば { // ????????? if( lastlowpos>curhighpos ) { zzH[curhighpos]=curhigh; ///* max=-100000; pos=lastlowpos; for(i=lastlowpos; i>=curhighpos;i--)。 { if (zzH==0.0) continue; if (zzH>max) { max=zzH; pos=i; }. zz=0.0; } zz[pos]=maxとする。 //*/ } lasthighpos=curhighpos; lasthigh=curhigh。 } } //------------------------- ????????? ?????? zz[0]=Close[0]とする。 } return(0); } //+------------------------------------------------------------------+ mish 2007.10.04 02:10 #384 ストラテジーテスターを 変更することはできますか? ralph.ronnquist は、その使用を必要とする多くの人々が恩恵を受けるかもしれない偉大な関数を寛大に私に提供しました。 私の問題は、私はプログラミングで現在非常にお粗末なので、私はそれを十分に変更するように見えることはできません4戦略テスターです。 テスト目的では、異なる通貨で異なる状況下でのトレードの計算を行うために、1つの通貨だけで十分です。 このニーズに合わせてラルフの作品を変更することは可能でしょうか。 ありがとうございます。 ファイル: ralph.txt 2 kb ralphronnquist 2007.10.04 03:20 #385 原理的には、「EURCHF」という文字列を「EURUSD」に変更すればよいのです。すなわち、ロング「EURUSD」対ショート「EURUSD」で動作させるためです。 mish 2007.10.04 03:27 #386 試してみました ご返答ありがとうございました。しかし、私は無駄に試してみました。あなたが提供したコードは、私と私のガールフレンドがプログラミングについていかに知らないかについて多くを教えてくれました! ありがとうございました。 ralphronnquist 2007.10.04 03:58 #387 うーん。私が前もって見ることができる唯一の「悪さ」はテスト「v == cut」であり、2つの倍数を等しいかどうか比較します。おそらく、完全な$の金額だけを見る方がうまくいくので、"euprofit", "ecprofit", "cut" と "v" を "int" 型に変更するのでしょうか? NTrader 2007.10.04 06:57 #388 NTrader: 些細な質問です。新しいPersonal Indicatorを初めて書いています。start{} メソッドでPrint("...")コマンドを使用して作成したログを見ることができません。MetaTrader 4のどこで見ることができますか? OK、Comment() コマンドを使う... spiritbreezer 2007.10.04 06:57 #389 ダンボです 皆さん、こんにちは。 このスレッドは、プログラミングについて何も知らない私のような人間にとって、とても素晴らしいスレッドです。このスレッドには多くの有用な情報と、私がコピーして遊ぶことができる多くの小さなコードの断片があります。 私は価格に基づいてEAを作りたい。次のように伝えるには、コードに何を入力すればよいのでしょうか。 1)1時間足チャートの20:00の価格を見て、100smaとの関係を見るEAにしたい。 2)価格が100smaより上にある場合、あるレベルで2つの買い注文をオープンさせたい。 3)これらのレベルは16:00のローソク足の終値に基づいているので、16:00のローソク足が1.2000なら、1.1120と1.2080で買い注文を出すようにする。 ストップ、トレイリングストップ、プロフィットレベルは全てこのスレッドから取ったコードで作業しています。だから私はそれらを投稿した人々に感謝します。I どなたか助けてくだされば、一生恩に着せます。 よろしくお願いします。 スーザン 削除済み 2007.10.04 07:12 #390 ヘルプ 皆さん、こんにちは。 EAを作成しようとしたところ、以下のようなエラーメッセージが表示されました。 '\end_of_program' - ending bracket '}' expected C:\...\My_First_EA.mq4(96,1) ダブルクリックでその行まで行き、その前の開始終了括弧で確認 しましたが、まだどこを間違えたのか分かりません。 同じインディケータをベースにした2つ目のEAを試したのですが、同じエラーメッセージでした。 ありがとうございました。 1...323334353637383940414243444546...347 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ミッシュ
ちょっと時間があったので、あなたの意図を理解した上で、その意図を汲み取るようにしました。
ありがとうございました
ralph.ronnquistさん、ありがとうございます。
これらの機能はまさに私が必要としていたものであり、同じ機能を求めている他の人々にも役立つと思います。
私はそれが努力を要するので、そうでなければ、あなたにもっと早く感謝することに巻き込まれた。
strategy testerで 動作するように関数を変更する簡単な方法はありますか? テスターで1つの通貨で作業した結果は、私が正しい計算をするために必要なものを非常に大まかに模倣している以外は、ほとんど役に立たないことは分かっていますが、どんな助けもありがたく、私は決して短時間でコードを解決しなかったでしょう。
DT_ZZ.mq4ベースのEA
ちょっと悩んでいることがあります。
DT_ZZ.mq4というインジケータを持っているのですが、見たところ非常に期待できそうです。このインジケータが再描画することは知っていますが、その仕組みは以下の通りです。
矢印とセクションが等しい場合、その後、バーが閉じるのを待ち、それに応じて購入/販売します。
どなたか、お手伝いしていただけませんか?(コードは下に貼ってあります)
//| DT_ZZ.mq4 |
//+------------------------------------------------------------------+
// Roshによる最適化
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Green(インジケーターカラー1グリーン
#property indicator_color2 ブルー
#property indicator_color3 赤色
//---- インジケーターのパラメーター
extern int ExtDepth=12;
extern int calculateLevel=2;
//---- インジケータ・バッファ
double zzL[];
double zzH[];
double zz[];
//+------------------------------------------------------------------+
//| カスタムインジケータ初期化関数
//+------------------------------------------------------------------+
int init()
{
// IndicatorBuffers(3);
//描画設定
SetIndexStyle(0,DRAW_SECTION)を設定します。
SetIndexStyle(1,DRAW_ARROW)。
SetIndexStyle(2,DRAW_ARROW)を設定します。
SetIndexArrow(1,159)を設定します。
SetIndexArrow(2,159)を設定します。
//---- インジケータバッファのマッピング
SetIndexBuffer(0,zz)を設定します。
SetIndexBuffer(1,zzH)を設定します。
SetIndexBuffer(2,zzL)を設定します。
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0); SetIndexEmptyValue(1,0.0);
SetIndexEmptyValue(2,0.0);
//---- インジケーターショートネーム
IndicatorShortName("DT_ZZ("+ExtDepth+")")とします。
//---- 初期化完了
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int i,shift,pos,lasthighpos,lastlowpos,curhighpos,curlowpos;
double curlow,curhigh,lasthigh,lastlow;
double min, max;
int counted_bars=IndicatorCounted();
if (counted_bars==0)
{
ArrayInitialize(zz,0.0);
ArrayInitialize(zzL,0.0);
ArrayInitialize(zzH,0.0);
lasthighpos=Bars; lastlowpos=Bars;
lastlow=Low;lasthigh=High。
Print("limit=",Bars-ExtDepth)。
for(shift=Bars-ExtDepth; shift>=0; shift--)
{
curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift)とします。
curlow=Low[curlowpos]。
curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift)とします。
curhigh=High[curhighpos]となります。
//------------------------------------------------
if( curlow>=lastlow ) { lastlow=curlow; }.
さもなくば
{
//????????
if( lasthighpos>curlowpos )
{
zzL[curlowpos]=curlow;
///*
min=100000; pos=lasthighpos;
for(i=lasthighpos; i>=curlowpos; i--)
{
if (zzL==0.0) continue;
if (zzL<min) { min=zzL; pos=i; }.
zz=0.0;
}
zz[pos]=minとする。
//*/
}
lastlowpos=curlowpos;
lastlow=curlowです。
}
//--- 高い
if( curhigh<=lasthigh ) { lasthigh=curhigh;}。
さもなくば
{
// ?????????
if( lastlowpos>curhighpos )
{
zzH[curhighpos]=curhigh;
///*
max=-100000; pos=lastlowpos;
for(i=lastlowpos; i>=curhighpos;i--)。
{
if (zzH==0.0) continue;
if (zzH>max) { max=zzH; pos=i; }.
zz=0.0;
}
zz[pos]=maxとする。
//*/
}
lasthighpos=curhighpos;
lasthigh=curhigh。
}
zz[0]=Close[0]とする。
}
//----------------------------------------------------------------------
}
さもなくば
{
int pos2;
i=0;
while (pos2<calculateLevel && i<Bars-1)
{
if (zz!=0 && (zzH!=0||zzL!=0)) pos2++;
i++;
}
pos2=i-1;
for (i=pos2-1;i>=0;i--)
{
zzH=0;
zzL=0
zz=0;
}
if (zzH[pos2]!=0)
{
lasthighpos=pos2;
lasthigh=High[pos2]。
lastlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,pos2)。
lastlow=Low[lastlowpos]。
}
さもなくば
{
lastlowpos=pos2;
lastlow=Low[pos2];
lasthighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,pos2);
lasthigh=High[lasthighpos]。
}
//------------------------- ????????? ??????
Print("limit=",pos2-1)。
for(shift=pos2-1; shift>=0; shift--)
{
curlowpos=Lowest(NULL,0,MODE_LOW,ExtDepth,shift)とします。
curlow=Low[curlowpos]。
curhighpos=Highest(NULL,0,MODE_HIGH,ExtDepth,shift)とします。
curhigh=High[curhighpos]となります。
//------------------------------------------------
if( curlow>=lastlow ) { lastlow=curlow; }.
さもなくば
{
//????????
if( lasthighpos>curlowpos )
{
zzL[curlowpos]=curlow;
///*
min=100000; pos=lasthighpos;
for(i=lasthighpos; i>=curlowpos; i--)
{
if (zzL==0.0) continue;
if (zzL<min) { min=zzL; pos=i; }.
zz=0.0;
}
zz[pos]=min;
//*/
}
lastlowpos=curlowpos;
lastlow=curlowです。
}
//--- 高い
if( curhigh<=lasthigh ) { lasthigh=curhigh;}。
さもなくば
{
// ?????????
if( lastlowpos>curhighpos )
{
zzH[curhighpos]=curhigh;
///*
max=-100000; pos=lastlowpos;
for(i=lastlowpos; i>=curhighpos;i--)。
{
if (zzH==0.0) continue;
if (zzH>max) { max=zzH; pos=i; }.
zz=0.0;
}
zz[pos]=maxとする。
//*/
}
lasthighpos=curhighpos;
lasthigh=curhigh。
}
}
//------------------------- ????????? ??????
zz[0]=Close[0]とする。
}
return(0);
}
//+------------------------------------------------------------------+ストラテジーテスターを 変更することはできますか?
ralph.ronnquist
は、その使用を必要とする多くの人々が恩恵を受けるかもしれない偉大な関数を寛大に私に提供しました。
私の問題は、私はプログラミングで現在非常にお粗末なので、私はそれを十分に変更するように見えることはできません4戦略テスターです。
テスト目的では、異なる通貨で異なる状況下でのトレードの計算を行うために、1つの通貨だけで十分です。
このニーズに合わせてラルフの作品を変更することは可能でしょうか。
ありがとうございます。
原理的には、「EURCHF」という文字列を「EURUSD」に変更すればよいのです。すなわち、ロング「EURUSD」対ショート「EURUSD」で動作させるためです。
試してみました
ご返答ありがとうございました。しかし、私は無駄に試してみました。あなたが提供したコードは、私と私のガールフレンドがプログラミングについていかに知らないかについて多くを教えてくれました!
ありがとうございました。
うーん。私が前もって見ることができる唯一の「悪さ」はテスト「v == cut」であり、2つの倍数を等しいかどうか比較します。おそらく、完全な$の金額だけを見る方がうまくいくので、"euprofit", "ecprofit", "cut" と "v" を "int" 型に変更するのでしょうか?
些細な質問です。新しいPersonal Indicatorを初めて書いています。start{} メソッドでPrint("...")コマンドを使用して作成したログを見ることができません。MetaTrader 4のどこで見ることができますか?
OK、Comment() コマンドを使う...
ダンボです
皆さん、こんにちは。
このスレッドは、プログラミングについて何も知らない私のような人間にとって、とても素晴らしいスレッドです。このスレッドには多くの有用な情報と、私がコピーして遊ぶことができる多くの小さなコードの断片があります。
私は価格に基づいてEAを作りたい。次のように伝えるには、コードに何を入力すればよいのでしょうか。
1)1時間足チャートの20:00の価格を見て、100smaとの関係を見るEAにしたい。
2)価格が100smaより上にある場合、あるレベルで2つの買い注文をオープンさせたい。
3)これらのレベルは16:00のローソク足の終値に基づいているので、16:00のローソク足が1.2000なら、1.1120と1.2080で買い注文を出すようにする。
ストップ、トレイリングストップ、プロフィットレベルは全てこのスレッドから取ったコードで作業しています。だから私はそれらを投稿した人々に感謝します。I
どなたか助けてくだされば、一生恩に着せます。
よろしくお願いします。
スーザン
ヘルプ
皆さん、こんにちは。
EAを作成しようとしたところ、以下のようなエラーメッセージが表示されました。
'\end_of_program' - ending bracket '}' expected C:\...\My_First_EA.mq4(96,1)
ダブルクリックでその行まで行き、その前の開始終了括弧で確認 しましたが、まだどこを間違えたのか分かりません。
同じインディケータをベースにした2つ目のEAを試したのですが、同じエラーメッセージでした。
ありがとうございました。