Konstantin Nikitin: 私の5セントを入れておきます。今は時間がないんです。しかし、同じようなパネルを家庭で実現する、そんなアイデアもあるのです。ですから、単にクロスでポジションを閉じるだけ でなく(必要ですが)、マークをつけてロットを指定し、このホールセール・クローズを行うのが良いと思います。そのため、ポジションを持ったまま、より柔軟に仕事ができるようになり、また、その一部を閉鎖することになります。
//====================================================================================================================
NEW_WINDOW, W_NAME, "Main form 1", W_ICON, 12, W_TYPE, SETTINGS, ALWAYS_ON_TOP, OOI,
//----------------------------------------------------------------------------------//----------------------------------------------------------------------------------
GROUP, A,
__, BUTTON,"BUY",text,N_COLOR,(int)clrBlue, GAP,50, BUTTON,"SELL", text,N_COLOR,(int)clrRed,
END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y,"MF", 10,
i,BUTTONS, PARAM_TYPE,_BOOL, TEXT_FONT,"Times New Roman", W,100, H,34, FONT_SIZE,11, END,
//----------------------------------------------------------------------------------
GROUP, A,
__,V_BOX,"V1",W,860, _,H,248,_,N_FRAME,1,_,NP_FRAME,1,
END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y,"MF", 50,
//----------------------------------------------------------------------------------//----------------------------------------------------------------------------------//Объявляем таблицу://----------------------------------------------------------------------------------
GROUP,"Orders table", IS_TABLE,
__, T_HEADER, "#",W,20,_,H,30, C_HEADER, "Order", C_HEADER, "Opening Time",W,90, C_HEADER, "Type", W,90, C_HEADER, "Volume", W,90, C_HEADER, "Symbol", W,90,
C_HEADER, "Price", W,90,
C_HEADER, "Comission", W,90, C_HEADER, "Swap", W,90, C_HEADER, "PnL", W,90, C_HEADER, "Close", W,40,
__, R_HEADER,"1", CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"2",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"3",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"4",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"5",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"6",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"7",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"8",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"9",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"10",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"11",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"12",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"13",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"14",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"15",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"16",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"17",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"18",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"19",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"20",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
__, R_HEADER,"21",CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, CELL, A, I_BUTTON, A,
END_GROUP,
//------------------------------------
i,AT, LEFT_TOP, 0,0,
i, IN, "V1",
//-----------
i, Y_GAP,-1,
i, X_GAP,-1,
//-----------
i, IS_ZEBRA_STYLE,
i, DnD_RECIEVER,
i, R_HEADERS, W,20, N_COLOR,(int)C'0,235,0', END,
i, C_HEADERS, H,30, END,
i, CELLS, H,25, END,
i, C_HEADERS, DnD_ON, DnD_FUNCTION, ROTATE_COLOMNS, END,
i, I_BUTTONS, C_FUNCTION, DELETES_ROW, text,HIDE,1, N_FRAME,1,A_FRAME,1, NP_FRAME,1, AP_FRAME,1, N_LABEL,745, END,
i, IS_DINAMIC,
//----------------------------------------------------------------------------------"Order", H,30,
//----------------------------------------------------------------------------------
END_WINDOW,
//====================================================================================================================
そして、ディンテーブルのある窓を確保する。
インターフェイスファイルの中で、ユーザーはこのようなコードを得ます。
//=====================================================================================================================//WINDOW: Main form 1 | element: BUTTON | name: BUY | Location: Window's Main Frame//=====================================================================================================================case BUTTON3____BUY:
//------------------------------------------------------------------------------------------------------//What to do when button pressed or released?//------------------------------------------------------------------------------------------------------switch((int)action)
{
case pressed: break;
case released: break;
}
//------------------------------------------------------------------------------------------------------//Your comment://------------------------------------------------------------------------------------------------------break;
//=====================================================================================================================//WINDOW: Main form 1 | element: BUTTON | name: SELL | Location: Window's Main Frame//=====================================================================================================================case BUTTON4____SELL:
//------------------------------------------------------------------------------------------------------//What to do when button pressed or released?//------------------------------------------------------------------------------------------------------switch((int)action)
{
case pressed: break;
case released: break;
}
//------------------------------------------------------------------------------------------------------//Your comment://------------------------------------------------------------------------------------------------------break;
//=====================================================================================================================//WINDOW: Main form 1 | element: I_BUTTON | name: 1_Close | Location: Window's Main Frame | Table: 300000007//=====================================================================================================================case I_BUTTON14___Close:
//------------------------------------------------------------------------------------------------------//What to do when button pressed or released?//------------------------------------------------------------------------------------------------------switch((int)action)
{
case pressed: break;
case released: break;
}
//------------------------------------------------------------------------------------------------------//Your comment://------------------------------------------------------------------------------------------------------break;
}
}
//=================================================================================================================
デモとして添付したエンジンのバージョンで作業してください。
とてもわかりやすいですね。もし、あなたのアプローチが私の考えるように機能するならば、ダイナミックテーブルでもタイマーによる位置値の更新でも問題はないでしょう。ピーター、どうして最初からごちゃごちゃ言うんだ(笑)。
ヴァシリイ 結論を急がないことが肝心です。あなたのためでも私のためでもない))。
私の5セントを入れておきます。今は時間がないんです。しかし、同じようなパネルを家庭で実現する、そんなアイデアもあるのです。ですから、単にクロスでポジションを閉じるだけ でなく(必要ですが)、マークをつけてロットを指定し、このホールセール・クローズを行うのが良いと思います。そのため、ポジションを持ったまま、より柔軟に仕事ができるようになり、また、その一部を閉鎖することになります。
できるんです。
ピーターさん、タイマーの中にforループを作って、未決済の注文を調べて、注文リストの変更をテーブルに送ってください。また、テーブルの注文利益も動的に変化させるようにします。
Vasilyさん、このコードをテストEAファイルに貼り付けてください(古い関数の代わりにtickとtimerの関数です)
あと、External Connectionファイルの68行目と114行目を入れ替える必要があります。
ちょっとだけ混ざってる。OrderOpenTime() の代わりにOrderOpenPrice() を入れてください。
問題なく使えるはずです。確認してください。
データ(モデル)とビューを分離し、モデルの変更や特定のモデルフィールドを特定のビューにサブスクライブするために、オブザーバーパターンを使用します。
しかし、そのようなライブラリのユーザーは、オブジェクト指向を考え、提案されたオブジェクト構造にEAデータを押し込む必要があります(そうそう、インターフェースを構築するためには、そのライブラリ/フレームワークのメソッドを学ぶ必要があるのです)。そして、多くの人はOOPについて何も知らない。
でも、ペテロは何も学ぶ必要はないと言っていますよ。生成されたハンドラの既成スプールにグローバル変 数を貼り付けるだけで、インタフェースは動作します。はい、神対応です!「棚用の板を作り、説明書通りにつなげて本を並べる」のではなく、「棚を描いて、その上に本を並べる」のです。コードレス・ドゥ・モア((c)/JQueryなら)
明らかに製品のポジショニングに問題がある。もし、そうだとしたら?おい、プログラマー!お金を稼ぎたいですか?良さそうなものは売ってもいいのでは!?インターフェイスのないExpert Advisorを100本ほど持っていって、インターフェイス付きで売る。)
まあ、コントロールのハンドラが「はみ出る」というインターフェイスファイルの欠点もあるのですが、静的なものですからね。私は頭を働かせて、テンプレートとして動作し、入力パラメータを介してユーザー/プログラムデータを受け入れる新しいハンドラタイプを作成する必要があります。
え、キャノンをするわけでもなく...。
大丈夫、リハスタがコノワザをやってくれる。)))
データ(モデル)とビューを分離し、モデルの変更や特定のモデルフィールドを特定のビューにサブスクライブするために、オブザーバーパターンを使用します。
しかし、そのようなライブラリのユーザーは、オブジェクト指向を考え、提案されたオブジェクト構造にEAデータを押し込む必要があります(そうそう、インターフェースを構築するためには、そのライブラリ/フレームワークのメソッドを学ぶ必要があるのです)。そして、多くの人はOOPについて何も知らない。
でも、ペテロは何も学ぶ必要はないと言っていますよ。生成されたハンドラの既成スプールにグローバル変 数を貼り付けるだけで、インタフェースは動作します。はい、神対応です!「棚用の板を作り、説明書通りにつなげて本を並べる」のではなく、「棚を描いて、その上に本を並べる」のです。コードレス・ドゥ・モア((c)/JQueryなら)
明らかに製品のポジショニングに問題がある。もし、そうだとしたら?おい、プログラマー!お金を稼ぎたいですか?良さそうなものは売ってもいいのでは!?インターフェイスのないExpert Advisorを100本ほど持っていって、インターフェイス付きで売る。)
まあ、コントロールのハンドラが「はみ出る」というインターフェイスファイルの欠点もあるのですが、静的なものですからね。私は頭を働かせて、テンプレートとして動作し、入力パラメータを介してユーザー/プログラムデータを受け入れる新しいハンドラタイプを作成する必要があります。
最初はまたネガキャンのバッチかと思ったが、よく読んでみるとそうでもないらしい。感情だけでいい。
このコンストラクタは、アルゴリズム取引に熱心な人を対象としています。グラフライブラリの勉強に時間をとられることなく、このコードだけで構成できるのは理にかなっている。
そして、ディンテーブルのある窓を確保する。
インターフェイスファイルの中で、ユーザーはこのようなコードを得ます。
そして、ボタンのクリックイベントに対して、何をどのように行うかを決定します。
次のダイナミックテーブルは、さらに面白いものになるでしょう。セルには、入力フィールド、ポップアップリスト、チェックボックス、ボタン、ラジオボタン、プログレスバー、および+/-ボタン付きの入力フィールドが用意されています。
厄介なのは、こうしたテーブルのダイナミズムです。結局、要素へのアクセスやその値の取得は、特定のパラメータに縛られることなく、行のレイアウトに依存することになります。