[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 984

 
gyvenor:

ありがとうございます。

このテーブルにインジケータ値を持つ列を追加することは可能でしょうか?例えば、あるバーのMA値など。それとも、上下方向のフラクタルがあるのでしょうか?

MAやフラクタルは、Excel自体で、セルに数式を貼り付けて行うことができます。
 

こんにちは。1987年のチャンピオンシップで伝説的な勝利を収めたL.Williamsの取引履歴が 公開されているかどうか、教えてください。見てもらうと面白いかもしれません)。

 
Techno:
適切な報告書を添付してください。それよりも、完全なレポートを、見てください。

シンボルマーク EURUSD (ユーロ vs 米ドル)
期間 30分(M30) 1999.01.06 15:30 ~ 2010.11.09 21:59
モデル 始値による(バー始値制御が明示されているExpert Advisorのみ)
パラメータ
歴史に残るバー 143757 モデル化されたダニ 287336 シミュレーション品質 非対称性
チャートの不一致エラー 0
初回入金額 1000000.00
当期純利益 23885.09 利益合計 50787.58 全損 -26902.49
収益性 1.89 期待されるペイオフ 2.66
絶対値ドローダウン 73.00 最大ドローダウン 355.90 (0.03%) 相対的ドローダウン 0.03% (355.90)
総取引高 8996 ショートポジション(勝率) 0 (0.00%) ロングポジション(勝率) 8996 (87.36%)
利益を得た取引(全体の割合) 7859 (87.36%) 損失取引(全体に占める割合) 1137 (12.64%)
最大 儲け話 10.50 負け組み -40.40
平均値 得な話 6.46 ディールロス -23.66
最大 れんしょう 110 (730.00) 継続的損失(ロス) 5 (-125.00)
最大 継続的な利益(勝利数) 730.00 (110) 連続損失(損失数) -125.00 (5)
平均値 連勝 9 継続的な損失 1
グラフ
時間 タイプ ご注文 ボリューム 価格 S / L T / P
 

M1オールティックとM30の差はわずかです。

シンボルマーク EURUSD (ユーロ vs 米ドル)
期間 1分(M1) 1999.10.01 03:17 ~ 2010.11.09 21:06
モデル すべてのティック(利用可能な最小のすべての時間枠に基づく最も正確な方法)
パラメータ
歴史に残るバー 3798097 モデル化されたダニ 37584894 モデリング品質 25.00%
チャートの不一致エラー 0
初回入金額 1000000.00
当期純利益 19436.09 利益合計 42746.64 全損 -23310.55
収益性 1.83 期待されるペイオフ 2.57
アブソリュートドローダウン 6.00 最大ドローダウン 254.80 (0.03%) 相対的ドローダウン 0.03% (254.80)
総取引高 7566 ショートポジション(勝率) 0 (0.00%) ロングポジション(勝率) 7566 (87.09%)
利益を得た取引(全体の割合) 6589 (87.09%) 損失取引(全体に占める割合) 977 (12.91%)
最大 儲け話 10.50 負け組み -40.40
平均値 得な話 6.49 ディールロス -23.86
最大 れんしょう 62 (410.00) 継続的損失(ロス) 5 (-125.00)
最大 継続的な利益(勝利数) 410.00 (62) 連続損失(損失数) -125.00 (5)
平均値 連勝 9 継続的な損失 1
グラフ

 

こんにちは。

このEAを1つのアカウントで、異なるペアで動作させる必要があります。しかし、残念ながら、少なくとも1つの取引が開かれている場合、EAはシグナルがあっても、他のペアの取引を開くことはありません。何が間違いなのか?理解するのを助けてくれ!

それともう一つ質問なのですが、EAをチャートに貼り付ける際、既に他のペアに適用している場合、設定でMagicを変更する必要はあるのでしょうか?

以下はそのコードです。


// ミューウイングス・クロッシング


extern int Magic = 227 ; //個体番号//.
extern double Lots =0.1 ;
extern int Slip = 5 ; //Slip/.


//時刻設定用データ

extern string OpenTime = "01:05-23:05";

//------------------------------------------------------------------// //
//インジケータ // //
//------------------------------------------------------------------// //
extern string Indicator1 = "MA-Slow" ; // // //
extern int MAPeriod1 = 55 ; //周期 //.
extern int int MA1_shift = 0 ;
EXTERNAL STRING INDICATOR2 = "MA-FAST" ; // // //
extern int int MAperiod2 = 13 ; //周期 //.
extern inttern MA2_shift = 0 ;

//------------------------------------------------------------------/////////////
int tiket1 , tiket2 , cnt;
int start()
{
//---------------------------------------------------------------------------------------------------------------//
double MA1 =iMA(NULL,0,MAPeriod1,MA1_shift,MODE_LWMA,PRICE_MEDIAN,0); //MAインジケーターを計算する
//Print("ma1=====",MA1);
double MA2 =iMA(NULL,0,MAperiod2,MA2_shift,MODE_LWMA,PRICE_CLOSE,0); //MAインジケーターを計算する。
//Print("ma2=====",MA2);

文字列 OTA[];
文字列 OTI[];
split(OTA, OpenTime, ";");

datetime tm0 = CurTime();
datetime tm1, tm2;

bool cond = falseです。

int cnt = ArraySize(OTA);
for (int i=0; i < cnt; i++) {.
split(OTI, OTA[i], "-")
if (ArraySize(OTI) != 2) continue;

tm1 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " + OTI[0]);
tm2 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " + OTI[1])。

cond = cond || (tm1 <= tm0 && tm0 < tm2)
}



{
if(OrdersTotal()==0)
{
if((MA2>MA1)&&(Close[0]>MA2))
{
tiket1=OrderSend(Symbol()、OP_BUY、Lots、NormalizeDouble(Ask、Digits)、Slip、0、0、NULL、Magic、0、CLR_NONE)
}


if((MA2<MA1)&&(Close[0]<MA2))
{
tiket2=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE).のようになります。
}
}

if(OrdersTotal()==1)
{
if((MA2>MA1)&&(Close[0]>MA2 ))
{
OrderClose(tiket2,Lots,Ask,Slip,Red)です。
}

if((MA2<MA1)&&(Close[0]<MA2)))
{
OrderClose(tiket1,Lots,Bid,Slip,Red)です。
}
}
}
}

void split(文字列& arr[], 文字列 str, 文字列 sym)
{
ArrayResize(arr, 0)を使用します。
文字列の項目です。
int pos, size;

int len = StringLen(str);
for (int i=0; i < len;) {.
pos = StringFind(str, sym, i);
if (pos == -1) pos = len;

item = StringSubstr(str, i, pos-i);
item = StringTrimLeft(item)とする。
item = StringTrimRight(item)とする。

size = ArraySize(arr);
ArrayResize(arr, size+1)。
arr[size] = item;

i = pos+1 とする。
}
}

 
marten82:

こんにちは。

extern string OpenTime = "01:05-23:05";

//------------------------------------------------------------------// //
//インジケータ // //
//------------------------------------------------------------------// //
extern string Indicator1 = "MA-Slow" ; // // //
extern int MAPeriod1 = 55 ; //周期 //.
extern int int MA1_shift = 0 ;
EXTERNAL STRING INDICATOR2 = "MA-FAST" ; // // //
extern int int MAperiod2 = 13 ; //周期 //.
extern inttern MA2_shift = 0 ;

//------------------------------------------------------------------/////////////
int tiket1 , tiket2 , cnt;
int start()
{
//---------------------------------------------------------------------------------------------------------------//
double MA1 =iMA(NULL,0,MAPeriod1,MA1_shift,MODE_LWMA,PRICE_MEDIAN,0); //MAインジケーターを計算する
//Print("ma1=====",MA1);
double MA2 =iMA(NULL,0,MAperiod2,MA2_shift,MODE_LWMA,PRICE_CLOSE,0); //MAインジケーターを計算する。
//Print("ma2=====",MA2);

文字列 OTA[];
文字列 OTI[];
split(OTA, OpenTime, ";");

datetime tm0 = CurTime();
datetime tm1, tm2;

bool cond = falseです。

int cnt = ArraySize(OTA);
for (int i=0; i < cnt; i++) {.
split(OTI, OTA[i], "-");
if (ArraySize(OTI) != 2) continue;

tm1 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " + OTI[0]);
tm2 = StrToTime(TimeToStr(CurTime(), TIME_DATE) + " + OTI[1])。

cond = cond || (tm1 <= tm0 && tm0 < tm2)
}



{
if(OrdersTotal()==0)
{
.
if((MA2>MA1)&&(Close[0]>MA2))
{
tiket1=OrderSend(Symbol()、OP_BUY、Lots、NormalizeDouble(Ask、Digits)、Slip、0、0、NULL、Magic、0、CLR_NONE)
}


if((MA2<MA1)&&(Close[0]<MA2)))
{
tiket2=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,0,0,NULL,Magic,0,CLR_NONE).のようになります。
}
}

if(OrdersTotal()==1))
{。
if((MA2>MA1)&&(Close[0]>MA2 ))
{
OrderClose(tiket2,Lots,Ask,Slip,Red)です。
}

if((MA2<MA1)&&(Close[0]<MA2)))
{
OrderClose(tiket1,Lots,Bid,Slip,Red)です。
}
}
}
}

void split(文字列& arr[], 文字列 str, 文字列 sym)
{
ArrayResize(arr, 0)を使用します。
文字列の項目です。
int pos, size;

int len = StringLen(str);
for (int i=0; i < len;) {.
pos = StringFind(str, sym, i);
if (pos == -1) pos = len;

item = StringSubstr(str, i, pos-i);
item = StringTrimLeft(item)とする。
item = StringTrimRight(item)とする。

size = ArraySize(arr);
ArrayResize(arr, size+1)。
arr[size] = item;

i = pos+1 とする。
}
}


赤色で強調されているところだと思います。
 
-marten82:

こんにちは。

このEAを1つのアカウントで、異なるペアで動作させる必要があります。しかし、残念ながら、少なくとも1つの取引が開かれている場合、EAはシグナルがあっても、他のペアの取引を開くことはありません。何が間違いなのか?理解するのを助けてくれ!

それともう一つ質問なのですが、EAをチャートに貼り付ける際、既に他のペアに適用している場合、設定でMagicを変更する必要はあるのでしょうか?

以下はそのコードです。


...
if(OrdersTotal()==0)

....
ここに悪の根源がある。
 
paukas:
ここに悪の根源がある。
と推測していました。正しい条件を教えていただけませんか?何かがうまくいっていないからだ。
 

私はEAが頑なに21.45より早いログを拒否していることを良い感じを持って、すべてがコードで正しいですし、それ上の制限はありませんが...理由はそこにplzかもしれないものを参照してください?を再起動したところ、1回目の実行でその日の最初の記録が出て、また1回目の実行で......という具合です。 何かキャッシュされているような気がするのですが、何でしょう?



 
asc9:

って感じなんだけど、何がいけないのかよくわからない......きっとダメなんだ......。を再起動したところ、1回目の実行でその日の最初の記録が出て、また1回目の実行で......という具合です。何かキャッシュされているような気がするのですが、何でしょうか?




最初の条件があるからだと思います。Hour()<=22を試してみてください。