コーディングの方法は? - ページ 39

 

ミッシュ

ちょっと時間があったので、あなたの意図を理解した上で、その意図を汲み取るようにしました。

ファイル:
advicerr.txt  2 kb
 

ありがとうございました

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つの通貨だけで十分です。

このニーズに合わせてラルフの作品を変更することは可能でしょうか。

ありがとうございます。

ファイル:
ralph.txt  2 kb
 

原理的には、「EURCHF」という文字列を「EURUSD」に変更すればよいのです。すなわち、ロング「EURUSD」対ショート「EURUSD」で動作させるためです。

 

試してみました

ご返答ありがとうございました。しかし、私は無駄に試してみました。あなたが提供したコードは、私と私のガールフレンドがプログラミングについていかに知らないかについて多くを教えてくれました!

ありがとうございました。

 

うーん。私が前もって見ることができる唯一の「悪さ」はテスト「v == cut」であり、2つの倍数を等しいかどうか比較します。おそらく、完全な$の金額だけを見る方がうまくいくので、"euprofit", "ecprofit", "cut" と "v" を "int" 型に変更するのでしょうか?

 
NTrader:
些細な質問です。新しい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を試したのですが、同じエラーメッセージでした。

ありがとうございました。