bool Trade (int signal)
{
FindOrders();
if(signal == SIGNAL_BUY) // Если сигнал на покупку и открытых ордеров нет..if(!OpenBuy()) // открываем лимитный ордер на покупкуreturn(false);
if(signal == SIGNAL_SELL) // Если сигнал на продажу и открытых ордеров нет..if(!OpenSell())
return(false); // открываем лимитный ордер на продажу
OrdersModifying(sl, tp); - ТУТ НЕ ВЪЕЗЖАЮ КАК БЫТЬreturn(true);
}
OrderModify(OrderTicket(),OrderLots(),Stop_loss,OrderTakeProfit(), 0,CLR_NONE)を実行。
待って、じゃあ、あなたはたくさん......0。
ありがとうございます!!!!
ここで考えるのは......。
この行は、"modify "関数のものです。自分で書いたのではなく、既製のものを挿入したのですが、うまくいきました。"0 "は現在の位置サイズを意味するのでしょうか? しかし、私はむしろそれを値に固定したいです。
OrderModify(OrderTicket(),OrderLots(),Stop_loss,OrderTakeProfit(), 0,CLR_NONE)を実行。
ストップ、だからロットが0になる。
no lots in modify :))))) なぜか初値が ついてる...。
修正でロットがない :))))) なぜか始値がある・・・。
そうか、コピー&ペーストの時に混同してしまったんだ、コメントでのペーストに慣れない、ヘルプからコピーするとリンクとしてペーストされるんだ。
自分の場合、パラメータが多い関数を入れるときは、ヘルプからコピーして、パラメータを必要なものに1つずつ置き換えて、混乱しないようにしています。
皆様へ
PFG FX traider(最新版)をダウンロードし、起動。インジケータを作ろうとした。
さっそく2つのパズルを。
1.インジケータは エディタの下から見えるし、開くこともできるのですが、ファイルシステム上に見当たりません。まったく、検索しても出てきません。
2.インジケータがファイルを開き、ティックを書き込む。書き込んでクラッシュしてしまうのですが、ファイルも見つかりません!!!!
どうしてこんなことになるのでしょうか? Windows 7です。
兄弟よ、初心者の努力を無視してはいけない
アーカイブに表示するような既成のスクリプト(のようなもの)が必要です。
の動きを、勢いと時間によってフィルタリングしたスケジュールです。
例えば、14:00に動き出し、14:45に終了した場合。
そして、移動量は410ポイント(5桁計算)でした。
では、そのような動きを「過去に」チャート上に視覚的にマークするようなスクリプトはないのでしょうか?
と、フォースタイム値を独立して挿入することが可能であること。
______
その方法をアドバイスしてくれる支店や場所を示してください。
プログラミングでは--アリストテレスではないが、そのようなスクリプトを作ることは難しくないのではないだろうか。
___
発見されたと思われること、そして最も重要なこと-時間や強度によるフィルターのパラメータ-を共有する準備ができています。
皆様へ
PFG FX traider(最新版)をダウンロードし、起動。インジケータを作ろうとした。
さっそく2つのパズルを。
1.インジケータはエディタの下から見えるし、開くこともできるのですが、ファイルシステム上に見当たりません。まったく、検索しても出てきません。
2.インジケータがファイルを開き、ティックを書き込む。書き込んでクラッシュしてしまうのですが、ファイルも見つかりません!!!!
どうしてこんなことになるのでしょうか? Windows 7です。
Semesterでは、一部のファイルがターミナルに配置されないことがありますが、D: \Usersuser nameAppData⇄Local⇄Program Files, then the name of the terminal
複数の端末を異なるディレクトリにインストールしている場合や、端末内にインジケーターやEAなどのユーザーファイルが大量に蓄積されている場合などによく起こります。
兄弟よ、初心者の努力を無視してはいけない
アーカイブに表示するような既成のスクリプト(のようなもの)が必要です。
の動きを、勢いと時間によってフィルタリングしたスケジュールです。
例えば、14:00に動き出し、14:45に終了した場合。
そして、移動量は410ポイント(5桁計算)でした。
では、そのような動きを「過去に」チャート上に視覚的にマークするようなスクリプトはないのでしょうか?
と、力覚値を独立して挿入できるようにしました。
______
その方法をアドバイスしてくれる支店や場所を示してください。
プログラミングでは--アリストテレスではないが、そのようなスクリプトを作ることは難しくないのではないだろうか。
___
発見されたと思われること、そして最も重要なこと-時間や強度によるフィルターのパラメータ-を共有する準備ができています。
スクリプトに何を求めているのか、まったくわからない。
ヘルプは緊急に必要です、私は完全に混乱しています。ここでは、取引機能と注文変更機能を紹介します。
void OrdersModifying(double& sl, double& tp) { int total = OrdersTotal() - 1; sl = 0; tp = 0; for(int i=total; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true) // Если ордер есть и он выбран.. { if(g_type == OP_BUY) { if(i_sl != 0) // Если входной параметр стоп-лосса не равен 0, то.. sl = NormalizeDouble(OrderOpenPrice() - i_sl*pt,Digits); // Получаем значение стоп-лосса для выбранного ордера if(i_tp != 0) // Если входной параметр тейкпрофита не равен 0, то.. tp = NormalizeDouble(OrderOpenPrice() + i_tp*pt,Digits); // Получаем значение тейкпрофита для выбранного ордера } if(g_type == OP_SELL) { if(i_sl != 0) // Если входной параметр стоп-лосса не равен 0, то.. sl = NormalizeDouble(OrderOpenPrice() + i_sl*pt,Digits); // Получаем значение стоп-лосса для выбранного ордера if(i_tp != 0) // Если входной параметр тейкпрофита не равен 0, то.. tp = NormalizeDouble(OrderOpenPrice() - i_tp*pt,Digits); // Получаем значение тейкпрофита для выбранного ордера } if(sl != 0 || tp != 0) // Если полученные значения sl и tp не равныы 0, то.. { OrderModify(g_ticket,OrderOpenPrice(),sl,tp,OrderOpenTime() + 86400,Lime); // Модифицируем ордер } } } }
bool OpenBuy() { g_ticket = -1; string myNote = "сов баянул"; if(GetPriceToInput() < Ask) { g_ticket = OrderSend(Symbol(),OP_BUYLIMIT,0.1,GetPriceToInput(),3,0,0,myNote,myMagic,0,Blue); } if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true) return(true); }
bool OpenSell() { g_ticket = -1; string myNote = "сов шортанул"; if(GetPriceToInput() > Bid) { g_ticket = OrderSend(Symbol(),OP_SELLLIMIT,0.1,GetPriceToInput(),3,0,0,myNote,myMagic,0,Red); } if(g_ticket > 0 && OrderSelect(g_ticket,SELECT_BY_TICKET,MODE_TRADES) == true) return(true); }
現在、オーダーモディフィケーションが機能していないのですが、いくつかの機能が1つになっているときはすべて機能していたのですが。でも、利便性を考えて、すべての機能を分離してほしいんです。一般的には、注文を修正するための関数OrdersModifyingが 欲しいです。論理的には貼り付けたTrade 関数に貼り付けるべきと理解していますが、関数OrdersModifyingから 2つの パラメータslと tpを この関数に渡さなければならないのです。
OrdersModifying 関数のパラメータに slと tpの 変数を正しく 渡しましたか?
ヘルプは緊急に必要です、私は完全に混乱しています。ここでは、取引機能と注文変更機能を紹介します。
現在、オーダーモディフィケーションが機能していないのですが、いくつかの機能が1つになっているときはすべて機能していたのですが。でも、利便性を考えて、すべての機能を分離してほしいんです。一般的には、注文を修正するための関数OrdersModifyingが 欲しいです。論理的には貼り付けたTrade 関数に貼り付けるべきと理解していますが、関数OrdersModifyingから 2つの パラメータslと tpを この関数に渡さなければならないのです。
OrdersModifying 関数のパラメータに slと tpの 変数を正しく 渡しましたか?
まず、sl = 0; tp = 0; と行い、次に if(sl != 0 || tp != 0) とします。
Vitaly そこがポイントです。見てください。
最初にsl =0; tp =0; そして、ユーザーが入力したi_slと i_tpを 元に、すでに順番が決まっているであろうslと tpの 正規化した値を求めます。そして、slとtpが 0に等しくないか、つまり、関数の最初に宣言した後に変更されたかをチェックし、次に、slと tpが0に等しいかどうかをチェックします。注文を変更します。
また、slとtpが 0に等しい場合は、これらのパラメータが計算 されていないことを意味します......。ということです。これらの変数の値を得れば、すぐにゼロ以外の値になり、順序を修正することができるのだが......。意味があるのでしょうか?